{"version":3,"file":"vendor-recharts.26ae6e0965d967b5ce31.hashedasset.js","mappings":"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","sources":["webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/cartesian/Area.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/cartesian/CartesianAxis.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/cartesian/CartesianGrid.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/cartesian/ErrorBar.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/cartesian/Line.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/cartesian/XAxis.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/cartesian/YAxis.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/util/getEveryNthWithCondition.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/util/TickUtils.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/cartesian/getTicks.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/cartesian/getEquidistantTicks.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/chart/AreaChart.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/chart/LineChart.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/util/CssPrefixUtils.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/cartesian/Brush.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/util/IfOverflowMatches.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/cartesian/ReferenceDot.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/cartesian/ReferenceLine.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/cartesian/ReferenceArea.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/util/DetectReferenceElementsDomain.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/util/Events.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/chart/AccessibilityManager.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/shape/Cross.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/util/cursor/getCursorPoints.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/component/Cursor.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/util/cursor/getCursorRectangle.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/chart/generateCategoricalChart.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/component/Label.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/component/LabelList.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/component/DefaultLegendContent.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/component/Legend.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/util/ReduceCSSCalc.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/component/Text.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/component/DefaultTooltipContent.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/util/tooltip/translate.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/component/TooltipBoundingBox.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/component/Tooltip.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/container/Layer.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/container/Surface.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/util/calculateViewBox.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/context/chartLayoutContext.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/shape/Curve.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/shape/Dot.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/shape/Rectangle.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/shape/Sector.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/shape/Symbols.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/shape/Trapezoid.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/util/ActiveShapeUtils.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/component/Cell.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/util/BarUtils.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/cartesian/Bar.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/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.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/util/ChartUtils.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/util/DOMUtils.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/util/DataUtils.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/util/Global.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/util/LogUtils.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/util/PolarUtils.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/util/ReactUtils.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/util/ShallowEqual.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/util/getLegendProps.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/util/payload/getUniqPayload.js","webpack://@octopusdeploy/octopus-deploy-portal/../../node_modules/.pnpm/recharts@2.15.1_react-dom@17.0.2_react@17.0.2__react@17.0.2/node_modules/recharts/es6/util/types.js"],"sourcesContent":["var _excluded = [\"layout\", \"type\", \"stroke\", \"connectNulls\", \"isRange\", \"ref\"],\n _excluded2 = [\"key\"];\nvar _Area;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Area\n */\nimport React, { PureComponent } from 'react';\nimport clsx from 'clsx';\nimport Animate from 'react-smooth';\nimport isFunction from 'lodash/isFunction';\nimport max from 'lodash/max';\nimport isNil from 'lodash/isNil';\nimport isNan from 'lodash/isNaN';\nimport isEqual from 'lodash/isEqual';\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, hasClipDot } from '../util/ReactUtils';\nexport var Area = /*#__PURE__*/function (_PureComponent) {\n function Area() {\n var _this;\n _classCallCheck(this, Area);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Area, [].concat(args));\n _defineProperty(_this, \"state\", {\n isAnimationFinished: true\n });\n _defineProperty(_this, \"id\", uniqueId('recharts-area-'));\n _defineProperty(_this, \"handleAnimationEnd\", function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n _this.setState({\n isAnimationFinished: true\n });\n if (isFunction(onAnimationEnd)) {\n onAnimationEnd();\n }\n });\n _defineProperty(_this, \"handleAnimationStart\", function () {\n var onAnimationStart = _this.props.onAnimationStart;\n _this.setState({\n isAnimationFinished: false\n });\n if (isFunction(onAnimationStart)) {\n onAnimationStart();\n }\n });\n return _this;\n }\n _inherits(Area, _PureComponent);\n return _createClass(Area, [{\n key: \"renderDots\",\n value: function renderDots(needClip, clipDot, clipPathId) {\n var isAnimationActive = this.props.isAnimationActive;\n var isAnimationFinished = this.state.isAnimationFinished;\n if (isAnimationActive && !isAnimationFinished) {\n return null;\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, false);\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 index: i,\n cx: entry.x,\n cy: entry.y,\n dataKey: dataKey,\n value: entry.value,\n payload: entry.payload,\n points: points\n });\n return Area.renderDotItem(dot, dotProps);\n });\n var dotsProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipDot ? '' : 'dots-').concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-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 var maxY = max(points.map(function (entry) {\n return entry.y || 0;\n }));\n if (isNumber(baseLine) && typeof baseLine === 'number') {\n maxY = Math.max(baseLine, maxY);\n } else if (baseLine && Array.isArray(baseLine) && baseLine.length) {\n maxY = Math.max(max(baseLine.map(function (entry) {\n return entry.y || 0;\n })), maxY);\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 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 var maxX = max(points.map(function (entry) {\n return entry.x || 0;\n }));\n if (isNumber(baseLine) && typeof baseLine === 'number') {\n maxX = Math.max(baseLine, maxX);\n } else if (baseLine && Array.isArray(baseLine) && baseLine.length) {\n maxX = Math.max(max(baseLine.map(function (entry) {\n return entry.x || 0;\n })), maxX);\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 return null;\n }\n }, {\n key: \"renderClipRect\",\n value: function renderClipRect(alpha) {\n var layout = this.props.layout;\n if (layout === 'vertical') {\n return this.renderVerticalRect(alpha);\n }\n return this.renderHorizontalRect(alpha);\n }\n }, {\n key: \"renderAreaStatically\",\n value: function renderAreaStatically(points, baseLine, needClip, clipPathId) {\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, _excluded);\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, false), {\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, false), {\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 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;\n // 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 if (prevPoints) {\n var prevPointsDiffFactor = prevPoints.length / points.length;\n // update animtaion\n var stepPoints = points.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n if (prevPoints[prevPointIndex]) {\n var prev = prevPoints[prevPointIndex];\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n }\n return entry;\n });\n var stepBaseLine;\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 stepBaseLine = _interpolator(t);\n } else {\n stepBaseLine = baseLine.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\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 return entry;\n });\n }\n return _this2.renderAreaStatically(stepPoints, stepBaseLine, needClip, clipPathId);\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 if (isAnimationActive && points && points.length && (!prevPoints && totalLength > 0 || !isEqual(prevPoints, points) || !isEqual(prevBaseLine, baseLine))) {\n return this.renderAreaWithAnimation(needClip, clipPathId);\n }\n return this.renderAreaStatically(points, baseLine, needClip, clipPathId);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _filterProps;\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 if (hide || !points || !points.length) {\n return null;\n }\n var isAnimationFinished = this.state.isAnimationFinished;\n var hasSinglePoint = points.length === 1;\n var layerClass = clsx('recharts-area', className);\n var needClipX = xAxis && xAxis.allowDataOverflow;\n var needClipY = yAxis && yAxis.allowDataOverflow;\n var needClip = needClipX || needClipY;\n var clipPathId = isNil(id) ? this.id : id;\n var _ref2 = (_filterProps = filterProps(dot, false)) !== null && _filterProps !== void 0 ? _filterProps : {\n r: 3,\n strokeWidth: 2\n },\n _ref2$r = _ref2.r,\n r = _ref2$r === void 0 ? 3 : _ref2$r,\n _ref2$strokeWidth = _ref2.strokeWidth,\n strokeWidth = _ref2$strokeWidth === void 0 ? 2 : _ref2$strokeWidth;\n var _ref3 = hasClipDot(dot) ? dot : {},\n _ref3$clipDot = _ref3.clipDot,\n clipDot = _ref3$clipDot === void 0 ? true : _ref3$clipDot;\n var dotSize = r * 2 + strokeWidth;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClipX || needClipY ? /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: needClipX ? left : left - width / 2,\n y: needClipY ? top : top - height / 2,\n width: needClipX ? width : width * 2,\n height: needClipY ? height : height * 2\n })), !clipDot && /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-dots-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left - dotSize / 2,\n y: top - dotSize / 2,\n width: width + dotSize,\n height: height + dotSize\n }))) : null, !hasSinglePoint ? this.renderArea(needClip, clipPathId) : null, (dot || hasSinglePoint) && this.renderDots(needClip, clipDot, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, points));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curPoints: nextProps.points,\n curBaseLine: nextProps.baseLine,\n prevPoints: prevState.curPoints,\n prevBaseLine: prevState.curBaseLine\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 return null;\n }\n }]);\n}(PureComponent);\n_Area = Area;\n_defineProperty(Area, \"displayName\", 'Area');\n_defineProperty(Area, \"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_defineProperty(Area, \"getBaseValue\", function (props, item, xAxis, yAxis) {\n var layout = props.layout,\n chartBaseValue = props.baseValue;\n var itemBaseValue = item.props.baseValue;\n\n // The baseValue can be defined both on the AreaChart as well as on the Area.\n // The value for the item takes precedence.\n var baseValue = itemBaseValue !== null && itemBaseValue !== void 0 ? itemBaseValue : chartBaseValue;\n if (isNumber(baseValue) && typeof baseValue === 'number') {\n return baseValue;\n }\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n var domain = numericAxis.scale.domain();\n if (numericAxis.type === 'number') {\n var domainMax = Math.max(domain[0], domain[1]);\n var domainMin = Math.min(domain[0], domain[1]);\n if (baseValue === 'dataMin') {\n return domainMin;\n }\n if (baseValue === 'dataMax') {\n return domainMax;\n }\n return domainMax < 0 ? domainMax : Math.max(Math.min(domain[0], domain[1]), 0);\n }\n if (baseValue === 'dataMin') {\n return domain[0];\n }\n if (baseValue === 'dataMax') {\n return domain[1];\n }\n return domain[0];\n});\n_defineProperty(Area, \"getComposedData\", function (_ref4) {\n var props = _ref4.props,\n item = _ref4.item,\n xAxis = _ref4.xAxis,\n yAxis = _ref4.yAxis,\n xAxisTicks = _ref4.xAxisTicks,\n yAxisTicks = _ref4.yAxisTicks,\n bandSize = _ref4.bandSize,\n dataKey = _ref4.dataKey,\n stackedData = _ref4.stackedData,\n dataStartIndex = _ref4.dataStartIndex,\n displayedData = _ref4.displayedData,\n offset = _ref4.offset;\n var layout = props.layout;\n var hasStack = stackedData && stackedData.length;\n var baseValue = _Area.getBaseValue(props, item, xAxis, yAxis);\n var isHorizontalLayout = layout === 'horizontal';\n var isRange = false;\n var points = displayedData.map(function (entry, index) {\n var value;\n if (hasStack) {\n value = stackedData[dataStartIndex + index];\n } else {\n value = getValueByDataKey(entry, dataKey);\n if (!Array.isArray(value)) {\n value = [baseValue, value];\n } else {\n isRange = true;\n }\n }\n var isBreakPoint = value[1] == null || hasStack && getValueByDataKey(entry, dataKey) == null;\n if (isHorizontalLayout) {\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 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 if (hasStack || isRange) {\n baseLine = points.map(function (entry) {\n var x = Array.isArray(entry.value) ? entry.value[0] : null;\n if (isHorizontalLayout) {\n return {\n x: entry.x,\n y: x != null && entry.y != null ? yAxis.scale(x) : null\n };\n }\n return {\n x: x != null ? xAxis.scale(x) : null,\n y: entry.y\n };\n });\n } else {\n baseLine = isHorizontalLayout ? yAxis.scale(baseValue) : xAxis.scale(baseValue);\n }\n return _objectSpread({\n points: points,\n baseLine: baseLine,\n layout: layout,\n isRange: isRange\n }, offset);\n});\n_defineProperty(Area, \"renderDotItem\", function (option, props) {\n var dotItem;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n dotItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n dotItem = option(props);\n } else {\n var className = clsx('recharts-area-dot', typeof option !== 'boolean' ? option.className : '');\n var key = props.key,\n rest = _objectWithoutProperties(props, _excluded2);\n dotItem = /*#__PURE__*/React.createElement(Dot, _extends({}, rest, {\n key: key,\n className: className\n }));\n }\n return dotItem;\n});","var _excluded = [\"viewBox\"],\n _excluded2 = [\"viewBox\"],\n _excluded3 = [\"ticks\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Cartesian Axis\n */\nimport React, { Component } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport get from 'lodash/get';\nimport clsx from 'clsx';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { Label } from '../component/Label';\nimport { isNumber } from '../util/DataUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nimport { getTicks } from './getTicks';\n\n/** The orientation of the axis in correspondence to the chart */\n\n/** A unit to be appended to a value */\n\n/** The formatter function of tick */\n\nexport var CartesianAxis = /*#__PURE__*/function (_Component) {\n function CartesianAxis(props) {\n var _this;\n _classCallCheck(this, CartesianAxis);\n _this = _callSuper(this, CartesianAxis, [props]);\n _this.state = {\n fontSize: '',\n letterSpacing: ''\n };\n return _this;\n }\n _inherits(CartesianAxis, _Component);\n return _createClass(CartesianAxis, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(_ref, nextState) {\n var viewBox = _ref.viewBox,\n restProps = _objectWithoutProperties(_ref, _excluded);\n // props.viewBox is sometimes generated every time -\n // check that specially as object equality is likely to fail\n var _this$props = this.props,\n viewBoxOld = _this$props.viewBox,\n restPropsOld = _objectWithoutProperties(_this$props, _excluded2);\n return !shallowEqual(viewBox, viewBoxOld) || !shallowEqual(restProps, restPropsOld) || !shallowEqual(nextState, this.state);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var htmlLayer = this.layerReference;\n if (!htmlLayer) return;\n var tick = htmlLayer.getElementsByClassName('recharts-cartesian-axis-tick-value')[0];\n if (tick) {\n this.setState({\n fontSize: window.getComputedStyle(tick).fontSize,\n letterSpacing: window.getComputedStyle(tick).letterSpacing\n });\n }\n }\n\n /**\n * Calculate the coordinates of endpoints in ticks\n * @param {Object} data The data of a simple tick\n * @return {Object} (x1, y1): The coordinate of endpoint close to tick text\n * (x2, y2): The coordinate of endpoint close to axis\n */\n }, {\n key: \"getTickLineCoord\",\n value: function getTickLineCoord(data) {\n var _this$props2 = this.props,\n x = _this$props2.x,\n y = _this$props2.y,\n width = _this$props2.width,\n height = _this$props2.height,\n orientation = _this$props2.orientation,\n tickSize = _this$props2.tickSize,\n mirror = _this$props2.mirror,\n tickMargin = _this$props2.tickMargin;\n var x1, x2, y1, y2, tx, ty;\n var sign = mirror ? -1 : 1;\n var finalTickSize = data.tickSize || tickSize;\n var tickCoord = isNumber(data.tickCoord) ? data.tickCoord : data.coordinate;\n switch (orientation) {\n case 'top':\n x1 = x2 = data.coordinate;\n y2 = y + +!mirror * height;\n y1 = y2 - sign * finalTickSize;\n ty = y1 - sign * tickMargin;\n tx = tickCoord;\n break;\n case 'left':\n y1 = y2 = data.coordinate;\n x2 = x + +!mirror * width;\n x1 = x2 - sign * finalTickSize;\n tx = x1 - sign * tickMargin;\n ty = tickCoord;\n break;\n case 'right':\n y1 = y2 = data.coordinate;\n x2 = x + +mirror * width;\n x1 = x2 + sign * finalTickSize;\n tx = x1 + sign * tickMargin;\n ty = tickCoord;\n break;\n default:\n x1 = x2 = data.coordinate;\n y2 = y + +mirror * height;\n y1 = y2 + sign * finalTickSize;\n ty = y1 + sign * tickMargin;\n tx = tickCoord;\n break;\n }\n return {\n line: {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n },\n tick: {\n x: tx,\n y: ty\n }\n };\n }\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor() {\n var _this$props3 = this.props,\n orientation = _this$props3.orientation,\n mirror = _this$props3.mirror;\n var textAnchor;\n switch (orientation) {\n case 'left':\n textAnchor = mirror ? 'start' : 'end';\n break;\n case 'right':\n textAnchor = mirror ? 'end' : 'start';\n break;\n default:\n textAnchor = 'middle';\n break;\n }\n return textAnchor;\n }\n }, {\n key: \"getTickVerticalAnchor\",\n value: function getTickVerticalAnchor() {\n var _this$props4 = this.props,\n orientation = _this$props4.orientation,\n mirror = _this$props4.mirror;\n var verticalAnchor = 'end';\n switch (orientation) {\n case 'left':\n case 'right':\n verticalAnchor = 'middle';\n break;\n case 'top':\n verticalAnchor = mirror ? 'start' : 'end';\n break;\n default:\n verticalAnchor = mirror ? 'end' : 'start';\n break;\n }\n return verticalAnchor;\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props5 = this.props,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height,\n orientation = _this$props5.orientation,\n mirror = _this$props5.mirror,\n axisLine = _this$props5.axisLine;\n var props = _objectSpread(_objectSpread(_objectSpread({}, filterProps(this.props, false)), filterProps(axisLine, false)), {}, {\n fill: 'none'\n });\n if (orientation === 'top' || orientation === 'bottom') {\n var needHeight = +(orientation === 'top' && !mirror || orientation === 'bottom' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x,\n y1: y + needHeight * height,\n x2: x + width,\n y2: y + needHeight * height\n });\n } else {\n var needWidth = +(orientation === 'left' && !mirror || orientation === 'right' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x + needWidth * width,\n y1: y,\n x2: x + needWidth * width,\n y2: y + height\n });\n }\n return /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: clsx('recharts-cartesian-axis-line', get(axisLine, 'className'))\n }));\n }\n }, {\n key: \"renderTicks\",\n value:\n /**\n * render the ticks\n * @param {Array} ticks The ticks to actually render (overrides what was passed in props)\n * @param {string} fontSize Fontsize to consider for tick spacing\n * @param {string} letterSpacing Letterspacing to consider for tick spacing\n * @return {ReactComponent} renderedTicks\n */\n function renderTicks(ticks, fontSize, letterSpacing) {\n var _this2 = this;\n var _this$props6 = this.props,\n tickLine = _this$props6.tickLine,\n stroke = _this$props6.stroke,\n tick = _this$props6.tick,\n tickFormatter = _this$props6.tickFormatter,\n unit = _this$props6.unit;\n var finalTicks = getTicks(_objectSpread(_objectSpread({}, this.props), {}, {\n ticks: ticks\n }), fontSize, letterSpacing);\n var textAnchor = this.getTickTextAnchor();\n var verticalAnchor = this.getTickVerticalAnchor();\n var axisProps = filterProps(this.props, false);\n var customTickProps = filterProps(tick, false);\n var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {\n fill: 'none'\n }, filterProps(tickLine, false));\n var items = finalTicks.map(function (entry, i) {\n var _this2$getTickLineCoo = _this2.getTickLineCoord(entry),\n lineCoord = _this2$getTickLineCoo.line,\n tickCoord = _this2$getTickLineCoo.tick;\n var tickProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n textAnchor: textAnchor,\n verticalAnchor: verticalAnchor\n }, axisProps), {}, {\n stroke: 'none',\n fill: stroke\n }, customTickProps), tickCoord), {}, {\n index: i,\n payload: entry,\n visibleTicksCount: finalTicks.length,\n tickFormatter: tickFormatter\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-cartesian-axis-tick\",\n key: \"tick-\".concat(entry.value, \"-\").concat(entry.coordinate, \"-\").concat(entry.tickCoord)\n }, adaptEventsOfChild(_this2.props, entry, i)), tickLine && /*#__PURE__*/React.createElement(\"line\", _extends({}, tickLineProps, lineCoord, {\n className: clsx('recharts-cartesian-axis-tick-line', get(tickLine, 'className'))\n })), tick && CartesianAxis.renderTickItem(tick, tickProps, \"\".concat(isFunction(tickFormatter) ? tickFormatter(entry.value, i) : entry.value).concat(unit || '')));\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n var _this$props7 = this.props,\n axisLine = _this$props7.axisLine,\n width = _this$props7.width,\n height = _this$props7.height,\n ticksGenerator = _this$props7.ticksGenerator,\n className = _this$props7.className,\n hide = _this$props7.hide;\n if (hide) {\n return null;\n }\n var _this$props8 = this.props,\n ticks = _this$props8.ticks,\n noTicksProps = _objectWithoutProperties(_this$props8, _excluded3);\n var finalTicks = ticks;\n if (isFunction(ticksGenerator)) {\n finalTicks = ticks && ticks.length > 0 ? ticksGenerator(this.props) : ticksGenerator(noTicksProps);\n }\n if (width <= 0 || height <= 0 || !finalTicks || !finalTicks.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-cartesian-axis', className),\n ref: function ref(_ref2) {\n _this3.layerReference = _ref2;\n }\n }, axisLine && this.renderAxisLine(), this.renderTicks(finalTicks, this.state.fontSize, this.state.letterSpacing), Label.renderCallByParent(this.props));\n }\n }], [{\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n tickItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = /*#__PURE__*/React.createElement(Text, _extends({}, props, {\n className: \"recharts-cartesian-axis-tick-value\"\n }), value);\n }\n return tickItem;\n }\n }]);\n}(Component);\n_defineProperty(CartesianAxis, \"displayName\", 'CartesianAxis');\n_defineProperty(CartesianAxis, \"defaultProps\", {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n viewBox: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n // The orientation of axis\n orientation: 'bottom',\n // The ticks\n ticks: [],\n stroke: '#666',\n tickLine: true,\n axisLine: true,\n tick: true,\n mirror: false,\n minTickGap: 5,\n // The width or height of tick\n tickSize: 6,\n tickMargin: 2,\n interval: 'preserveEnd'\n});","var _excluded = [\"x1\", \"y1\", \"x2\", \"y2\", \"key\"],\n _excluded2 = [\"offset\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\n/**\n * @fileOverview Cartesian Grid\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport { warn } from '../util/LogUtils';\nimport { isNumber } from '../util/DataUtils';\nimport { filterProps } from '../util/ReactUtils';\nimport { getCoordinatesOfGrid, getTicksOfAxis } from '../util/ChartUtils';\nimport { getTicks } from './getTicks';\nimport { CartesianAxis } from './CartesianAxis';\nimport { useArbitraryXAxis, useChartHeight, useChartWidth, useOffset, useYAxisWithFiniteDomainOrRandom } from '../context/chartLayoutContext';\n\n/**\n * The arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Render a group of error bar\n */\nimport React from 'react';\nimport invariant from 'tiny-invariant';\nimport { Layer } from '../container/Layer';\nimport { filterProps } from '../util/ReactUtils';\n// eslint-disable-next-line react/prefer-stateless-function -- requires static defaultProps\nexport var ErrorBar = /*#__PURE__*/function (_React$Component) {\n function ErrorBar() {\n _classCallCheck(this, ErrorBar);\n return _callSuper(this, ErrorBar, arguments);\n }\n _inherits(ErrorBar, _React$Component);\n return _createClass(ErrorBar, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n offset = _this$props.offset,\n layout = _this$props.layout,\n width = _this$props.width,\n dataKey = _this$props.dataKey,\n data = _this$props.data,\n dataPointFormatter = _this$props.dataPointFormatter,\n xAxis = _this$props.xAxis,\n yAxis = _this$props.yAxis,\n others = _objectWithoutProperties(_this$props, _excluded);\n var svgProps = filterProps(others, false);\n !!(this.props.direction === 'x' && xAxis.type !== 'number') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ErrorBar requires Axis type property to be \"number\".') : invariant(false) : void 0;\n var errorBars = data.map(function (entry) {\n var _dataPointFormatter = dataPointFormatter(entry, dataKey),\n x = _dataPointFormatter.x,\n y = _dataPointFormatter.y,\n value = _dataPointFormatter.value,\n errorVal = _dataPointFormatter.errorVal;\n if (!errorVal) {\n return null;\n }\n var lineCoordinates = [];\n var lowBound, highBound;\n if (Array.isArray(errorVal)) {\n var _errorVal = _slicedToArray(errorVal, 2);\n lowBound = _errorVal[0];\n highBound = _errorVal[1];\n } else {\n lowBound = highBound = errorVal;\n }\n if (layout === 'vertical') {\n // error bar for horizontal charts, the y is fixed, x is a range value\n var scale = xAxis.scale;\n var yMid = y + offset;\n var yMin = yMid + width;\n var yMax = yMid - width;\n var xMin = scale(value - lowBound);\n var xMax = scale(value + highBound);\n\n // the right line of |--|\n lineCoordinates.push({\n x1: xMax,\n y1: yMin,\n x2: xMax,\n y2: yMax\n });\n // the middle line of |--|\n lineCoordinates.push({\n x1: xMin,\n y1: yMid,\n x2: xMax,\n y2: yMid\n });\n // the left line of |--|\n lineCoordinates.push({\n x1: xMin,\n y1: yMin,\n x2: xMin,\n y2: yMax\n });\n } else if (layout === 'horizontal') {\n // error bar for horizontal charts, the x is fixed, y is a range value\n var _scale = yAxis.scale;\n var xMid = x + offset;\n var _xMin = xMid - width;\n var _xMax = xMid + width;\n var _yMin = _scale(value - lowBound);\n var _yMax = _scale(value + highBound);\n\n // the top line\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMax,\n x2: _xMax,\n y2: _yMax\n });\n // the middle line\n lineCoordinates.push({\n x1: xMid,\n y1: _yMin,\n x2: xMid,\n y2: _yMax\n });\n // the bottom line\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMin,\n x2: _xMax,\n y2: _yMin\n });\n }\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-errorBar\",\n key: \"bar-\".concat(lineCoordinates.map(function (c) {\n return \"\".concat(c.x1, \"-\").concat(c.x2, \"-\").concat(c.y1, \"-\").concat(c.y2);\n }))\n }, svgProps), lineCoordinates.map(function (coordinates) {\n return /*#__PURE__*/React.createElement(\"line\", _extends({}, coordinates, {\n key: \"line-\".concat(coordinates.x1, \"-\").concat(coordinates.x2, \"-\").concat(coordinates.y1, \"-\").concat(coordinates.y2)\n }));\n }));\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-errorBars\"\n }, errorBars);\n }\n }]);\n}(React.Component);\n_defineProperty(ErrorBar, \"defaultProps\", {\n stroke: 'black',\n strokeWidth: 1.5,\n width: 5,\n offset: 0,\n layout: 'horizontal'\n});\n_defineProperty(ErrorBar, \"displayName\", 'ErrorBar');","var _excluded = [\"type\", \"layout\", \"connectNulls\", \"ref\"],\n _excluded2 = [\"key\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Line\n */\nimport React, { PureComponent } from 'react';\nimport Animate from 'react-smooth';\nimport isFunction from 'lodash/isFunction';\nimport isNil from 'lodash/isNil';\nimport isEqual from 'lodash/isEqual';\nimport clsx from 'clsx';\nimport { Curve } from '../shape/Curve';\nimport { Dot } from '../shape/Dot';\nimport { Layer } from '../container/Layer';\nimport { LabelList } from '../component/LabelList';\nimport { ErrorBar } from './ErrorBar';\nimport { uniqueId, interpolateNumber } from '../util/DataUtils';\nimport { findAllByType, filterProps, hasClipDot } from '../util/ReactUtils';\nimport { Global } from '../util/Global';\nimport { getCateCoordinateOfLine, getValueByDataKey } from '../util/ChartUtils';\nexport var Line = /*#__PURE__*/function (_PureComponent) {\n function Line() {\n var _this;\n _classCallCheck(this, Line);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Line, [].concat(args));\n _defineProperty(_this, \"state\", {\n isAnimationFinished: true,\n totalLength: 0\n });\n _defineProperty(_this, \"generateSimpleStrokeDasharray\", function (totalLength, length) {\n return \"\".concat(length, \"px \").concat(totalLength - length, \"px\");\n });\n _defineProperty(_this, \"getStrokeDasharray\", function (length, totalLength, lines) {\n var lineLength = lines.reduce(function (pre, next) {\n return pre + next;\n });\n\n // if lineLength is 0 return the default when no strokeDasharray is provided\n if (!lineLength) {\n return _this.generateSimpleStrokeDasharray(totalLength, length);\n }\n var count = Math.floor(length / lineLength);\n var remainLength = length % lineLength;\n var restLength = totalLength - length;\n var remainLines = [];\n for (var i = 0, sum = 0; i < lines.length; sum += lines[i], ++i) {\n if (sum + lines[i] > remainLength) {\n remainLines = [].concat(_toConsumableArray(lines.slice(0, i)), [remainLength - sum]);\n break;\n }\n }\n var emptyLines = remainLines.length % 2 === 0 ? [0, restLength] : [restLength];\n return [].concat(_toConsumableArray(Line.repeat(lines, count)), _toConsumableArray(remainLines), emptyLines).map(function (line) {\n return \"\".concat(line, \"px\");\n }).join(', ');\n });\n _defineProperty(_this, \"id\", uniqueId('recharts-line-'));\n _defineProperty(_this, \"pathRef\", function (node) {\n _this.mainCurve = node;\n });\n _defineProperty(_this, \"handleAnimationEnd\", function () {\n _this.setState({\n isAnimationFinished: true\n });\n if (_this.props.onAnimationEnd) {\n _this.props.onAnimationEnd();\n }\n });\n _defineProperty(_this, \"handleAnimationStart\", function () {\n _this.setState({\n isAnimationFinished: false\n });\n if (_this.props.onAnimationStart) {\n _this.props.onAnimationStart();\n }\n });\n return _this;\n }\n _inherits(Line, _PureComponent);\n return _createClass(Line, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!this.props.isAnimationActive) {\n return;\n }\n var totalLength = this.getTotalLength();\n this.setState({\n totalLength: totalLength\n });\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n if (!this.props.isAnimationActive) {\n return;\n }\n var totalLength = this.getTotalLength();\n if (totalLength !== this.state.totalLength) {\n this.setState({\n totalLength: totalLength\n });\n }\n }\n }, {\n key: \"getTotalLength\",\n value: function getTotalLength() {\n var curveDom = this.mainCurve;\n try {\n return curveDom && curveDom.getTotalLength && curveDom.getTotalLength() || 0;\n } catch (err) {\n return 0;\n }\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar(needClip, clipPathId) {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n var _this$props = this.props,\n points = _this$props.points,\n xAxis = _this$props.xAxis,\n yAxis = _this$props.yAxis,\n layout = _this$props.layout,\n children = _this$props.children;\n var errorBarItems = findAllByType(children, ErrorBar);\n if (!errorBarItems) {\n return null;\n }\n var dataPointFormatter = function dataPointFormatter(dataPoint, dataKey) {\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: dataPoint.value,\n errorVal: getValueByDataKey(dataPoint.payload, dataKey)\n };\n };\n var errorBarProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, errorBarProps, errorBarItems.map(function (item) {\n return /*#__PURE__*/React.cloneElement(item, {\n key: \"bar-\".concat(item.props.dataKey),\n data: points,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: layout,\n dataPointFormatter: dataPointFormatter\n });\n }));\n }\n }, {\n key: \"renderDots\",\n value: function renderDots(needClip, clipDot, clipPathId) {\n var isAnimationActive = this.props.isAnimationActive;\n if (isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n var _this$props2 = this.props,\n dot = _this$props2.dot,\n points = _this$props2.points,\n dataKey = _this$props2.dataKey;\n var lineProps = filterProps(this.props, false);\n var customDotProps = filterProps(dot, true);\n var dots = points.map(function (entry, i) {\n var dotProps = _objectSpread(_objectSpread(_objectSpread({\n key: \"dot-\".concat(i),\n r: 3\n }, lineProps), customDotProps), {}, {\n value: entry.value,\n dataKey: dataKey,\n cx: entry.x,\n cy: entry.y,\n index: i,\n payload: entry.payload\n });\n return Line.renderDotItem(dot, dotProps);\n });\n var dotsProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipDot ? '' : 'dots-').concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-line-dots\",\n key: \"dots\"\n }, dotsProps), dots);\n }\n }, {\n key: \"renderCurveStatically\",\n value: function renderCurveStatically(points, needClip, clipPathId, props) {\n var _this$props3 = this.props,\n type = _this$props3.type,\n layout = _this$props3.layout,\n connectNulls = _this$props3.connectNulls,\n ref = _this$props3.ref,\n others = _objectWithoutProperties(_this$props3, _excluded);\n var curveProps = _objectSpread(_objectSpread(_objectSpread({}, filterProps(others, true)), {}, {\n fill: 'none',\n className: 'recharts-line-curve',\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null,\n points: points\n }, props), {}, {\n type: type,\n layout: layout,\n connectNulls: connectNulls\n });\n return /*#__PURE__*/React.createElement(Curve, _extends({}, curveProps, {\n pathRef: this.pathRef\n }));\n }\n }, {\n key: \"renderCurveWithAnimation\",\n value: function renderCurveWithAnimation(needClip, clipPathId) {\n var _this2 = this;\n var _this$props4 = this.props,\n points = _this$props4.points,\n strokeDasharray = _this$props4.strokeDasharray,\n isAnimationActive = _this$props4.isAnimationActive,\n animationBegin = _this$props4.animationBegin,\n animationDuration = _this$props4.animationDuration,\n animationEasing = _this$props4.animationEasing,\n animationId = _this$props4.animationId,\n animateNewValues = _this$props4.animateNewValues,\n width = _this$props4.width,\n height = _this$props4.height;\n var _this$state = this.state,\n prevPoints = _this$state.prevPoints,\n totalLength = _this$state.totalLength;\n return /*#__PURE__*/React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"line-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n if (prevPoints) {\n var prevPointsDiffFactor = prevPoints.length / points.length;\n var stepData = points.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n if (prevPoints[prevPointIndex]) {\n var prev = prevPoints[prevPointIndex];\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n }\n\n // magic number of faking previous x and y location\n if (animateNewValues) {\n var _interpolatorX = interpolateNumber(width * 2, entry.x);\n var _interpolatorY = interpolateNumber(height / 2, entry.y);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: _interpolatorX(t),\n y: _interpolatorY(t)\n });\n }\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: entry.x,\n y: entry.y\n });\n });\n return _this2.renderCurveStatically(stepData, needClip, clipPathId);\n }\n var interpolator = interpolateNumber(0, totalLength);\n var curLength = interpolator(t);\n var currentStrokeDasharray;\n if (strokeDasharray) {\n var lines = \"\".concat(strokeDasharray).split(/[,\\s]+/gim).map(function (num) {\n return parseFloat(num);\n });\n currentStrokeDasharray = _this2.getStrokeDasharray(curLength, totalLength, lines);\n } else {\n currentStrokeDasharray = _this2.generateSimpleStrokeDasharray(totalLength, curLength);\n }\n return _this2.renderCurveStatically(points, needClip, clipPathId, {\n strokeDasharray: currentStrokeDasharray\n });\n });\n }\n }, {\n key: \"renderCurve\",\n value: function renderCurve(needClip, clipPathId) {\n var _this$props5 = this.props,\n points = _this$props5.points,\n isAnimationActive = _this$props5.isAnimationActive;\n var _this$state2 = this.state,\n prevPoints = _this$state2.prevPoints,\n totalLength = _this$state2.totalLength;\n if (isAnimationActive && points && points.length && (!prevPoints && totalLength > 0 || !isEqual(prevPoints, points))) {\n return this.renderCurveWithAnimation(needClip, clipPathId);\n }\n return this.renderCurveStatically(points, needClip, clipPathId);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _filterProps;\n var _this$props6 = this.props,\n hide = _this$props6.hide,\n dot = _this$props6.dot,\n points = _this$props6.points,\n className = _this$props6.className,\n xAxis = _this$props6.xAxis,\n yAxis = _this$props6.yAxis,\n top = _this$props6.top,\n left = _this$props6.left,\n width = _this$props6.width,\n height = _this$props6.height,\n isAnimationActive = _this$props6.isAnimationActive,\n id = _this$props6.id;\n if (hide || !points || !points.length) {\n return null;\n }\n var isAnimationFinished = this.state.isAnimationFinished;\n var hasSinglePoint = points.length === 1;\n var layerClass = clsx('recharts-line', className);\n var needClipX = xAxis && xAxis.allowDataOverflow;\n var needClipY = yAxis && yAxis.allowDataOverflow;\n var needClip = needClipX || needClipY;\n var clipPathId = isNil(id) ? this.id : id;\n var _ref2 = (_filterProps = filterProps(dot, false)) !== null && _filterProps !== void 0 ? _filterProps : {\n r: 3,\n strokeWidth: 2\n },\n _ref2$r = _ref2.r,\n r = _ref2$r === void 0 ? 3 : _ref2$r,\n _ref2$strokeWidth = _ref2.strokeWidth,\n strokeWidth = _ref2$strokeWidth === void 0 ? 2 : _ref2$strokeWidth;\n var _ref3 = hasClipDot(dot) ? dot : {},\n _ref3$clipDot = _ref3.clipDot,\n clipDot = _ref3$clipDot === void 0 ? true : _ref3$clipDot;\n var dotSize = r * 2 + strokeWidth;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClipX || needClipY ? /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: needClipX ? left : left - width / 2,\n y: needClipY ? top : top - height / 2,\n width: needClipX ? width : width * 2,\n height: needClipY ? height : height * 2\n })), !clipDot && /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-dots-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left - dotSize / 2,\n y: top - dotSize / 2,\n width: width + dotSize,\n height: height + dotSize\n }))) : null, !hasSinglePoint && this.renderCurve(needClip, clipPathId), this.renderErrorBar(needClip, clipPathId), (hasSinglePoint || dot) && this.renderDots(needClip, clipDot, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, points));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curPoints: nextProps.points,\n prevPoints: prevState.curPoints\n };\n }\n if (nextProps.points !== prevState.curPoints) {\n return {\n curPoints: nextProps.points\n };\n }\n return null;\n }\n }, {\n key: \"repeat\",\n value: function repeat(lines, count) {\n var linesUnit = lines.length % 2 !== 0 ? [].concat(_toConsumableArray(lines), [0]) : lines;\n var result = [];\n for (var i = 0; i < count; ++i) {\n result = [].concat(_toConsumableArray(result), _toConsumableArray(linesUnit));\n }\n return result;\n }\n }, {\n key: \"renderDotItem\",\n value: function renderDotItem(option, props) {\n var dotItem;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n dotItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n dotItem = option(props);\n } else {\n var key = props.key,\n dotProps = _objectWithoutProperties(props, _excluded2);\n var className = clsx('recharts-line-dot', typeof option !== 'boolean' ? option.className : '');\n dotItem = /*#__PURE__*/React.createElement(Dot, _extends({\n key: key\n }, dotProps, {\n className: className\n }));\n }\n return dotItem;\n }\n }]);\n}(PureComponent);\n_defineProperty(Line, \"displayName\", 'Line');\n_defineProperty(Line, \"defaultProps\", {\n xAxisId: 0,\n yAxisId: 0,\n connectNulls: false,\n activeDot: true,\n dot: true,\n legendType: 'line',\n stroke: '#3182bd',\n strokeWidth: 1,\n fill: '#fff',\n points: [],\n isAnimationActive: !Global.isSsr,\n animateNewValues: true,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease',\n hide: false,\n label: false\n});\n/**\n * Compose the data of each group\n * @param {Object} props The props from the component\n * @param {Object} xAxis The configuration of x-axis\n * @param {Object} yAxis The configuration of y-axis\n * @param {String} dataKey The unique key of a group\n * @return {Array} Composed data\n */\n_defineProperty(Line, \"getComposedData\", function (_ref4) {\n var props = _ref4.props,\n xAxis = _ref4.xAxis,\n yAxis = _ref4.yAxis,\n xAxisTicks = _ref4.xAxisTicks,\n yAxisTicks = _ref4.yAxisTicks,\n dataKey = _ref4.dataKey,\n bandSize = _ref4.bandSize,\n displayedData = _ref4.displayedData,\n offset = _ref4.offset;\n var layout = props.layout;\n var points = displayedData.map(function (entry, index) {\n var value = getValueByDataKey(entry, dataKey);\n if (layout === 'horizontal') {\n return {\n x: getCateCoordinateOfLine({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n y: isNil(value) ? null : yAxis.scale(value),\n value: value,\n payload: entry\n };\n }\n return {\n x: isNil(value) ? null : xAxis.scale(value),\n y: getCateCoordinateOfLine({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n value: value,\n payload: entry\n };\n });\n return _objectSpread({\n points: points,\n layout: layout\n }, offset);\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/**\n * @fileOverview X Axis\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { useChartHeight, useChartWidth, useXAxisOrThrow } from '../context/chartLayoutContext';\nimport { CartesianAxis } from './CartesianAxis';\nimport { getTicksOfAxis } from '../util/ChartUtils';\n\n/** Define of XAxis props */\n\nfunction XAxisImpl(_ref) {\n var xAxisId = _ref.xAxisId;\n var width = useChartWidth();\n var height = useChartHeight();\n var axisOptions = useXAxisOrThrow(xAxisId);\n if (axisOptions == null) {\n return null;\n }\n return (\n /*#__PURE__*/\n // @ts-expect-error the axisOptions type is not exactly what CartesianAxis is expecting.\n React.createElement(CartesianAxis, _extends({}, axisOptions, {\n className: clsx(\"recharts-\".concat(axisOptions.axisType, \" \").concat(axisOptions.axisType), axisOptions.className),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n ticksGenerator: function ticksGenerator(axis) {\n return getTicksOfAxis(axis, true);\n }\n }))\n );\n}\n\n// eslint-disable-next-line react/prefer-stateless-function -- requires static defaultProps\nexport var XAxis = /*#__PURE__*/function (_React$Component) {\n function XAxis() {\n _classCallCheck(this, XAxis);\n return _callSuper(this, XAxis, arguments);\n }\n _inherits(XAxis, _React$Component);\n return _createClass(XAxis, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(XAxisImpl, this.props);\n }\n }]);\n}(React.Component);\n_defineProperty(XAxis, \"displayName\", 'XAxis');\n_defineProperty(XAxis, \"defaultProps\", {\n allowDecimals: true,\n hide: false,\n orientation: 'bottom',\n width: 0,\n height: 30,\n mirror: false,\n xAxisId: 0,\n tickCount: 5,\n type: 'category',\n padding: {\n left: 0,\n right: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false,\n allowDuplicatedCategory: true\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/**\n * @fileOverview Y Axis\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { useChartHeight, useChartWidth, useYAxisOrThrow } from '../context/chartLayoutContext';\nimport { CartesianAxis } from './CartesianAxis';\nimport { getTicksOfAxis } from '../util/ChartUtils';\nvar YAxisImpl = function YAxisImpl(_ref) {\n var yAxisId = _ref.yAxisId;\n var width = useChartWidth();\n var height = useChartHeight();\n var axisOptions = useYAxisOrThrow(yAxisId);\n if (axisOptions == null) {\n return null;\n }\n return (\n /*#__PURE__*/\n // @ts-expect-error the axisOptions type is not exactly what CartesianAxis is expecting.\n React.createElement(CartesianAxis, _extends({}, axisOptions, {\n className: clsx(\"recharts-\".concat(axisOptions.axisType, \" \").concat(axisOptions.axisType), axisOptions.className),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n ticksGenerator: function ticksGenerator(axis) {\n return getTicksOfAxis(axis, true);\n }\n }))\n );\n};\n\n// eslint-disable-next-line react/prefer-stateless-function -- requires static defaultProps\nexport var YAxis = /*#__PURE__*/function (_React$Component) {\n function YAxis() {\n _classCallCheck(this, YAxis);\n return _callSuper(this, YAxis, arguments);\n }\n _inherits(YAxis, _React$Component);\n return _createClass(YAxis, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(YAxisImpl, this.props);\n }\n }]);\n}(React.Component);\n_defineProperty(YAxis, \"displayName\", 'YAxis');\n_defineProperty(YAxis, \"defaultProps\", {\n allowDuplicatedCategory: true,\n allowDecimals: true,\n hide: false,\n orientation: 'left',\n width: 60,\n height: 0,\n mirror: false,\n yAxisId: 0,\n tickCount: 5,\n type: 'number',\n padding: {\n top: 0,\n bottom: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false\n});","/**\n * Given an array and a number N, return a new array which contains every nTh\n * element of the input array. For n below 1, an empty array is returned.\n * If isValid is provided, all candidates must suffice the condition, else undefined is returned.\n * @param {T[]} array An input array.\n * @param {integer} n A number\n * @param {Function} isValid A function to evaluate a candidate form the array\n * @returns {T[]} The result array of the same type as the input array.\n */\nexport function getEveryNthWithCondition(array, n, isValid) {\n if (n < 1) {\n return [];\n }\n if (n === 1 && isValid === undefined) {\n return array;\n }\n var result = [];\n for (var i = 0; i < array.length; i += n) {\n if (isValid === undefined || isValid(array[i]) === true) {\n result.push(array[i]);\n } else {\n return undefined;\n }\n }\n return result;\n}","import { getAngledRectangleWidth } from './CartesianUtils';\nimport { getEveryNthWithCondition } from './getEveryNthWithCondition';\nexport function getAngledTickWidth(contentSize, unitSize, angle) {\n var size = {\n width: contentSize.width + unitSize.width,\n height: contentSize.height + unitSize.height\n };\n return getAngledRectangleWidth(size, angle);\n}\nexport function getTickBoundaries(viewBox, sign, sizeKey) {\n var isWidth = sizeKey === 'width';\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n if (sign === 1) {\n return {\n start: isWidth ? x : y,\n end: isWidth ? x + width : y + height\n };\n }\n return {\n start: isWidth ? x + width : y + height,\n end: isWidth ? x : y\n };\n}\nexport function isVisible(sign, tickPosition, getSize, start, end) {\n /* Since getSize() is expensive (it reads the ticks' size from the DOM), we do this check first to avoid calculating\n * the tick's size. */\n if (sign * tickPosition < sign * start || sign * tickPosition > sign * end) {\n return false;\n }\n var size = getSize();\n return sign * (tickPosition - sign * size / 2 - start) >= 0 && sign * (tickPosition + sign * size / 2 - end) <= 0;\n}\nexport function getNumberIntervalTicks(ticks, interval) {\n return getEveryNthWithCondition(ticks, interval + 1);\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport isFunction from 'lodash/isFunction';\nimport { mathSign, isNumber } from '../util/DataUtils';\nimport { getStringSize } from '../util/DOMUtils';\nimport { Global } from '../util/Global';\nimport { isVisible, getTickBoundaries, getNumberIntervalTicks, getAngledTickWidth } from '../util/TickUtils';\nimport { getEquidistantTicks } from './getEquidistantTicks';\nfunction getTicksEnd(sign, boundaries, getTickSize, ticks, minTickGap) {\n var result = (ticks || []).slice();\n var len = result.length;\n var start = boundaries.start;\n var end = boundaries.end;\n var _loop = function _loop(i) {\n var entry = result[i];\n var size;\n var getSize = function getSize() {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n if (i === len - 1) {\n var gap = sign * (entry.coordinate + sign * getSize() / 2 - end);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap > 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n var isShow = isVisible(sign, entry.tickCoord, getSize, start, end);\n if (isShow) {\n end = entry.tickCoord - sign * (getSize() / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n };\n for (var i = len - 1; i >= 0; i--) {\n _loop(i);\n }\n return result;\n}\nfunction getTicksStart(sign, boundaries, getTickSize, ticks, minTickGap, preserveEnd) {\n var result = (ticks || []).slice();\n var len = result.length;\n var start = boundaries.start,\n end = boundaries.end;\n if (preserveEnd) {\n // Try to guarantee the tail to be displayed\n var tail = ticks[len - 1];\n var tailSize = getTickSize(tail, len - 1);\n var tailGap = sign * (tail.coordinate + sign * tailSize / 2 - end);\n result[len - 1] = tail = _objectSpread(_objectSpread({}, tail), {}, {\n tickCoord: tailGap > 0 ? tail.coordinate - tailGap * sign : tail.coordinate\n });\n var isTailShow = isVisible(sign, tail.tickCoord, function () {\n return tailSize;\n }, start, end);\n if (isTailShow) {\n end = tail.tickCoord - sign * (tailSize / 2 + minTickGap);\n result[len - 1] = _objectSpread(_objectSpread({}, tail), {}, {\n isShow: true\n });\n }\n }\n var count = preserveEnd ? len - 1 : len;\n var _loop2 = function _loop2(i) {\n var entry = result[i];\n var size;\n var getSize = function getSize() {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n if (i === 0) {\n var gap = sign * (entry.coordinate - sign * getSize() / 2 - start);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap < 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n var isShow = isVisible(sign, entry.tickCoord, getSize, start, end);\n if (isShow) {\n start = entry.tickCoord + sign * (getSize() / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n };\n for (var i = 0; i < count; i++) {\n _loop2(i);\n }\n return result;\n}\nexport function getTicks(props, fontSize, letterSpacing) {\n var tick = props.tick,\n ticks = props.ticks,\n viewBox = props.viewBox,\n minTickGap = props.minTickGap,\n orientation = props.orientation,\n interval = props.interval,\n tickFormatter = props.tickFormatter,\n unit = props.unit,\n angle = props.angle;\n if (!ticks || !ticks.length || !tick) {\n return [];\n }\n if (isNumber(interval) || Global.isSsr) {\n return getNumberIntervalTicks(ticks, typeof interval === 'number' && isNumber(interval) ? interval : 0);\n }\n var candidates = [];\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height';\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n }) : {\n width: 0,\n height: 0\n };\n var getTickSize = function getTickSize(content, index) {\n var value = isFunction(tickFormatter) ? tickFormatter(content.value, index) : content.value;\n // Recharts only supports angles when sizeKey === 'width'\n return sizeKey === 'width' ? getAngledTickWidth(getStringSize(value, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n }), unitSize, angle) : getStringSize(value, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n })[sizeKey];\n };\n var sign = ticks.length >= 2 ? mathSign(ticks[1].coordinate - ticks[0].coordinate) : 1;\n var boundaries = getTickBoundaries(viewBox, sign, sizeKey);\n if (interval === 'equidistantPreserveStart') {\n return getEquidistantTicks(sign, boundaries, getTickSize, ticks, minTickGap);\n }\n if (interval === 'preserveStart' || interval === 'preserveStartEnd') {\n candidates = getTicksStart(sign, boundaries, getTickSize, ticks, minTickGap, interval === 'preserveStartEnd');\n } else {\n candidates = getTicksEnd(sign, boundaries, getTickSize, ticks, minTickGap);\n }\n return candidates.filter(function (entry) {\n return entry.isShow;\n });\n}","import { isVisible } from '../util/TickUtils';\nimport { getEveryNthWithCondition } from '../util/getEveryNthWithCondition';\nexport function getEquidistantTicks(sign, boundaries, getTickSize, ticks, minTickGap) {\n var result = (ticks || []).slice();\n var initialStart = boundaries.start,\n end = boundaries.end;\n var index = 0;\n // Premature optimisation idea 1: Estimate a lower bound, and start from there.\n // For now, start from every tick\n var stepsize = 1;\n var start = initialStart;\n var _loop = function _loop() {\n // Given stepsize, evaluate whether every stepsize-th tick can be shown.\n // If it can not, then increase the stepsize by 1, and try again.\n\n var entry = ticks === null || ticks === void 0 ? void 0 : ticks[index];\n\n // Break condition - If we have evaluate all the ticks, then we are done.\n if (entry === undefined) {\n return {\n v: getEveryNthWithCondition(ticks, stepsize)\n };\n }\n\n // Check if the element collides with the next element\n var i = index;\n var size;\n var getSize = function getSize() {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n var tickCoord = entry.coordinate;\n // We will always show the first tick.\n var isShow = index === 0 || isVisible(sign, tickCoord, getSize, start, end);\n if (!isShow) {\n // Start all over with a larger stepsize\n index = 0;\n start = initialStart;\n stepsize += 1;\n }\n if (isShow) {\n // If it can be shown, update the start\n start = tickCoord + sign * (getSize() / 2 + minTickGap);\n index += stepsize;\n }\n },\n _ret;\n while (stepsize <= result.length) {\n _ret = _loop();\n if (_ret) return _ret.v;\n }\n return [];\n}","/**\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(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (!name) {\n return null;\n }\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var result = PREFIX_LIST.reduce(function (res, entry) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, entry + camelName, value));\n }, {});\n result[name] = value;\n return result;\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Brush\n */\nimport React, { PureComponent, Children } from 'react';\nimport clsx from 'clsx';\nimport { scalePoint } from 'victory-vendor/d3-scale';\nimport isFunction from 'lodash/isFunction';\nimport range from 'lodash/range';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { isNumber } from '../util/DataUtils';\nimport { generatePrefixStyle } from '../util/CssPrefixUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar createScale = function createScale(_ref) {\n var data = _ref.data,\n startIndex = _ref.startIndex,\n endIndex = _ref.endIndex,\n x = _ref.x,\n width = _ref.width,\n travellerWidth = _ref.travellerWidth;\n if (!data || !data.length) {\n return {};\n }\n var len = data.length;\n var scale = scalePoint().domain(range(0, len)).range([x, x + width - travellerWidth]);\n var scaleValues = scale.domain().map(function (entry) {\n return scale(entry);\n });\n return {\n isTextActive: false,\n isSlideMoving: false,\n isTravellerMoving: false,\n isTravellerFocused: false,\n startX: scale(startIndex),\n endX: scale(endIndex),\n scale: scale,\n scaleValues: scaleValues\n };\n};\nvar isTouch = function isTouch(e) {\n return e.changedTouches && !!e.changedTouches.length;\n};\nexport var Brush = /*#__PURE__*/function (_PureComponent) {\n function Brush(props) {\n var _this;\n _classCallCheck(this, Brush);\n _this = _callSuper(this, Brush, [props]);\n _defineProperty(_this, \"handleDrag\", function (e) {\n if (_this.leaveTimer) {\n clearTimeout(_this.leaveTimer);\n _this.leaveTimer = null;\n }\n if (_this.state.isTravellerMoving) {\n _this.handleTravellerMove(e);\n } else if (_this.state.isSlideMoving) {\n _this.handleSlideDrag(e);\n }\n });\n _defineProperty(_this, \"handleTouchMove\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleDrag(e.changedTouches[0]);\n }\n });\n _defineProperty(_this, \"handleDragEnd\", function () {\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: false\n }, function () {\n var _this$props = _this.props,\n endIndex = _this$props.endIndex,\n onDragEnd = _this$props.onDragEnd,\n startIndex = _this$props.startIndex;\n onDragEnd === null || onDragEnd === void 0 || onDragEnd({\n endIndex: endIndex,\n startIndex: startIndex\n });\n });\n _this.detachDragEndListener();\n });\n _defineProperty(_this, \"handleLeaveWrapper\", function () {\n if (_this.state.isTravellerMoving || _this.state.isSlideMoving) {\n _this.leaveTimer = window.setTimeout(_this.handleDragEnd, _this.props.leaveTimeOut);\n }\n });\n _defineProperty(_this, \"handleEnterSlideOrTraveller\", function () {\n _this.setState({\n isTextActive: true\n });\n });\n _defineProperty(_this, \"handleLeaveSlideOrTraveller\", function () {\n _this.setState({\n isTextActive: false\n });\n });\n _defineProperty(_this, \"handleSlideDragStart\", function (e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: true,\n slideMoveStartX: event.pageX\n });\n _this.attachDragEndListener();\n });\n _this.travellerDragStartHandlers = {\n startX: _this.handleTravellerDragStart.bind(_this, 'startX'),\n endX: _this.handleTravellerDragStart.bind(_this, 'endX')\n };\n _this.state = {};\n return _this;\n }\n _inherits(Brush, _PureComponent);\n return _createClass(Brush, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.leaveTimer) {\n clearTimeout(this.leaveTimer);\n this.leaveTimer = null;\n }\n this.detachDragEndListener();\n }\n }, {\n key: \"getIndex\",\n value: function getIndex(_ref2) {\n var startX = _ref2.startX,\n endX = _ref2.endX;\n var scaleValues = this.state.scaleValues;\n var _this$props2 = this.props,\n gap = _this$props2.gap,\n data = _this$props2.data;\n var lastIndex = data.length - 1;\n var min = Math.min(startX, endX);\n var max = Math.max(startX, endX);\n var minIndex = Brush.getIndexInRange(scaleValues, min);\n var maxIndex = Brush.getIndexInRange(scaleValues, max);\n return {\n startIndex: minIndex - minIndex % gap,\n endIndex: maxIndex === lastIndex ? lastIndex : maxIndex - maxIndex % gap\n };\n }\n }, {\n key: \"getTextOfTick\",\n value: function getTextOfTick(index) {\n var _this$props3 = this.props,\n data = _this$props3.data,\n tickFormatter = _this$props3.tickFormatter,\n dataKey = _this$props3.dataKey;\n var text = getValueByDataKey(data[index], dataKey, index);\n return isFunction(tickFormatter) ? tickFormatter(text, index) : text;\n }\n }, {\n key: \"attachDragEndListener\",\n value: function attachDragEndListener() {\n window.addEventListener('mouseup', this.handleDragEnd, true);\n window.addEventListener('touchend', this.handleDragEnd, true);\n window.addEventListener('mousemove', this.handleDrag, true);\n }\n }, {\n key: \"detachDragEndListener\",\n value: function detachDragEndListener() {\n window.removeEventListener('mouseup', this.handleDragEnd, true);\n window.removeEventListener('touchend', this.handleDragEnd, true);\n window.removeEventListener('mousemove', this.handleDrag, true);\n }\n }, {\n key: \"handleSlideDrag\",\n value: function handleSlideDrag(e) {\n var _this$state = this.state,\n slideMoveStartX = _this$state.slideMoveStartX,\n startX = _this$state.startX,\n endX = _this$state.endX;\n var _this$props4 = this.props,\n x = _this$props4.x,\n width = _this$props4.width,\n travellerWidth = _this$props4.travellerWidth,\n startIndex = _this$props4.startIndex,\n endIndex = _this$props4.endIndex,\n onChange = _this$props4.onChange;\n var delta = e.pageX - slideMoveStartX;\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - endX, x + width - travellerWidth - startX);\n } else if (delta < 0) {\n delta = Math.max(delta, x - startX, x - endX);\n }\n var newIndex = this.getIndex({\n startX: startX + delta,\n endX: endX + delta\n });\n if ((newIndex.startIndex !== startIndex || newIndex.endIndex !== endIndex) && onChange) {\n onChange(newIndex);\n }\n this.setState({\n startX: startX + delta,\n endX: endX + delta,\n slideMoveStartX: e.pageX\n });\n }\n }, {\n key: \"handleTravellerDragStart\",\n value: function handleTravellerDragStart(id, e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n this.setState({\n isSlideMoving: false,\n isTravellerMoving: true,\n movingTravellerId: id,\n brushMoveStartX: event.pageX\n });\n this.attachDragEndListener();\n }\n }, {\n key: \"handleTravellerMove\",\n value: function handleTravellerMove(e) {\n var _this$state2 = this.state,\n brushMoveStartX = _this$state2.brushMoveStartX,\n movingTravellerId = _this$state2.movingTravellerId,\n endX = _this$state2.endX,\n startX = _this$state2.startX;\n var prevValue = this.state[movingTravellerId];\n var _this$props5 = this.props,\n x = _this$props5.x,\n width = _this$props5.width,\n travellerWidth = _this$props5.travellerWidth,\n onChange = _this$props5.onChange,\n gap = _this$props5.gap,\n data = _this$props5.data;\n var params = {\n startX: this.state.startX,\n endX: this.state.endX\n };\n var delta = e.pageX - brushMoveStartX;\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - prevValue);\n } else if (delta < 0) {\n delta = Math.max(delta, x - prevValue);\n }\n params[movingTravellerId] = prevValue + delta;\n var newIndex = this.getIndex(params);\n var startIndex = newIndex.startIndex,\n endIndex = newIndex.endIndex;\n var isFullGap = function isFullGap() {\n var lastIndex = data.length - 1;\n if (movingTravellerId === 'startX' && (endX > startX ? startIndex % gap === 0 : endIndex % gap === 0) || endX < startX && endIndex === lastIndex || movingTravellerId === 'endX' && (endX > startX ? endIndex % gap === 0 : startIndex % gap === 0) || endX > startX && endIndex === lastIndex) {\n return true;\n }\n return false;\n };\n this.setState(_defineProperty(_defineProperty({}, movingTravellerId, prevValue + delta), \"brushMoveStartX\", e.pageX), function () {\n if (onChange) {\n if (isFullGap()) {\n onChange(newIndex);\n }\n }\n });\n }\n }, {\n key: \"handleTravellerMoveKeyboard\",\n value: function handleTravellerMoveKeyboard(direction, id) {\n var _this2 = this;\n // scaleValues are a list of coordinates. For example: [65, 250, 435, 620, 805, 990].\n var _this$state3 = this.state,\n scaleValues = _this$state3.scaleValues,\n startX = _this$state3.startX,\n endX = _this$state3.endX;\n // currentScaleValue refers to which coordinate the current traveller should be placed at.\n var currentScaleValue = this.state[id];\n var currentIndex = scaleValues.indexOf(currentScaleValue);\n if (currentIndex === -1) {\n return;\n }\n var newIndex = currentIndex + direction;\n if (newIndex === -1 || newIndex >= scaleValues.length) {\n return;\n }\n var newScaleValue = scaleValues[newIndex];\n\n // Prevent travellers from being on top of each other or overlapping\n if (id === 'startX' && newScaleValue >= endX || id === 'endX' && newScaleValue <= startX) {\n return;\n }\n this.setState(_defineProperty({}, id, newScaleValue), function () {\n _this2.props.onChange(_this2.getIndex({\n startX: _this2.state.startX,\n endX: _this2.state.endX\n }));\n });\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this$props6 = this.props,\n x = _this$props6.x,\n y = _this$props6.y,\n width = _this$props6.width,\n height = _this$props6.height,\n fill = _this$props6.fill,\n stroke = _this$props6.stroke;\n return /*#__PURE__*/React.createElement(\"rect\", {\n stroke: stroke,\n fill: fill,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderPanorama\",\n value: function renderPanorama() {\n var _this$props7 = this.props,\n x = _this$props7.x,\n y = _this$props7.y,\n width = _this$props7.width,\n height = _this$props7.height,\n data = _this$props7.data,\n children = _this$props7.children,\n padding = _this$props7.padding;\n var chartElement = Children.only(children);\n if (!chartElement) {\n return null;\n }\n return /*#__PURE__*/React.cloneElement(chartElement, {\n x: x,\n y: y,\n width: width,\n height: height,\n margin: padding,\n compact: true,\n data: data\n });\n }\n }, {\n key: \"renderTravellerLayer\",\n value: function renderTravellerLayer(travellerX, id) {\n var _data$startIndex,\n _data$endIndex,\n _this3 = this;\n var _this$props8 = this.props,\n y = _this$props8.y,\n travellerWidth = _this$props8.travellerWidth,\n height = _this$props8.height,\n traveller = _this$props8.traveller,\n ariaLabel = _this$props8.ariaLabel,\n data = _this$props8.data,\n startIndex = _this$props8.startIndex,\n endIndex = _this$props8.endIndex;\n var x = Math.max(travellerX, this.props.x);\n var travellerProps = _objectSpread(_objectSpread({}, filterProps(this.props, false)), {}, {\n x: x,\n y: y,\n width: travellerWidth,\n height: height\n });\n var ariaLabelBrush = ariaLabel || \"Min value: \".concat((_data$startIndex = data[startIndex]) === null || _data$startIndex === void 0 ? void 0 : _data$startIndex.name, \", Max value: \").concat((_data$endIndex = data[endIndex]) === null || _data$endIndex === void 0 ? void 0 : _data$endIndex.name);\n return /*#__PURE__*/React.createElement(Layer, {\n tabIndex: 0,\n role: \"slider\",\n \"aria-label\": ariaLabelBrush,\n \"aria-valuenow\": travellerX,\n className: \"recharts-brush-traveller\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.travellerDragStartHandlers[id],\n onTouchStart: this.travellerDragStartHandlers[id],\n onKeyDown: function onKeyDown(e) {\n if (!['ArrowLeft', 'ArrowRight'].includes(e.key)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n _this3.handleTravellerMoveKeyboard(e.key === 'ArrowRight' ? 1 : -1, id);\n },\n onFocus: function onFocus() {\n _this3.setState({\n isTravellerFocused: true\n });\n },\n onBlur: function onBlur() {\n _this3.setState({\n isTravellerFocused: false\n });\n },\n style: {\n cursor: 'col-resize'\n }\n }, Brush.renderTraveller(traveller, travellerProps));\n }\n }, {\n key: \"renderSlide\",\n value: function renderSlide(startX, endX) {\n var _this$props9 = this.props,\n y = _this$props9.y,\n height = _this$props9.height,\n stroke = _this$props9.stroke,\n travellerWidth = _this$props9.travellerWidth;\n var x = Math.min(startX, endX) + travellerWidth;\n var width = Math.max(Math.abs(endX - startX) - travellerWidth, 0);\n return /*#__PURE__*/React.createElement(\"rect\", {\n className: \"recharts-brush-slide\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.handleSlideDragStart,\n onTouchStart: this.handleSlideDragStart,\n style: {\n cursor: 'move'\n },\n stroke: \"none\",\n fill: stroke,\n fillOpacity: 0.2,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderText\",\n value: function renderText() {\n var _this$props10 = this.props,\n startIndex = _this$props10.startIndex,\n endIndex = _this$props10.endIndex,\n y = _this$props10.y,\n height = _this$props10.height,\n travellerWidth = _this$props10.travellerWidth,\n stroke = _this$props10.stroke;\n var _this$state4 = this.state,\n startX = _this$state4.startX,\n endX = _this$state4.endX;\n var offset = 5;\n var attrs = {\n pointerEvents: 'none',\n fill: stroke\n };\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-brush-texts\"\n }, /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"end\",\n verticalAnchor: \"middle\",\n x: Math.min(startX, endX) - offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(startIndex)), /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"start\",\n verticalAnchor: \"middle\",\n x: Math.max(startX, endX) + travellerWidth + offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(endIndex)));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props11 = this.props,\n data = _this$props11.data,\n className = _this$props11.className,\n children = _this$props11.children,\n x = _this$props11.x,\n y = _this$props11.y,\n width = _this$props11.width,\n height = _this$props11.height,\n alwaysShowText = _this$props11.alwaysShowText;\n var _this$state5 = this.state,\n startX = _this$state5.startX,\n endX = _this$state5.endX,\n isTextActive = _this$state5.isTextActive,\n isSlideMoving = _this$state5.isSlideMoving,\n isTravellerMoving = _this$state5.isTravellerMoving,\n isTravellerFocused = _this$state5.isTravellerFocused;\n if (!data || !data.length || !isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || width <= 0 || height <= 0) {\n return null;\n }\n var layerClass = clsx('recharts-brush', className);\n var isPanoramic = React.Children.count(children) === 1;\n var style = generatePrefixStyle('userSelect', 'none');\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass,\n onMouseLeave: this.handleLeaveWrapper,\n onTouchMove: this.handleTouchMove,\n style: style\n }, this.renderBackground(), isPanoramic && this.renderPanorama(), this.renderSlide(startX, endX), this.renderTravellerLayer(startX, 'startX'), this.renderTravellerLayer(endX, 'endX'), (isTextActive || isSlideMoving || isTravellerMoving || isTravellerFocused || alwaysShowText) && this.renderText());\n }\n }], [{\n key: \"renderDefaultTraveller\",\n value: function renderDefaultTraveller(props) {\n var x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n stroke = props.stroke;\n var lineY = Math.floor(y + height / 2) - 1;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n fill: stroke,\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY,\n x2: x + width - 1,\n y2: lineY,\n fill: \"none\",\n stroke: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY + 2,\n x2: x + width - 1,\n y2: lineY + 2,\n fill: \"none\",\n stroke: \"#fff\"\n }));\n }\n }, {\n key: \"renderTraveller\",\n value: function renderTraveller(option, props) {\n var rectangle;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rectangle = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n rectangle = option(props);\n } else {\n rectangle = Brush.renderDefaultTraveller(props);\n }\n return rectangle;\n }\n }, {\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var data = nextProps.data,\n width = nextProps.width,\n x = nextProps.x,\n travellerWidth = nextProps.travellerWidth,\n updateId = nextProps.updateId,\n startIndex = nextProps.startIndex,\n endIndex = nextProps.endIndex;\n if (data !== prevState.prevData || updateId !== prevState.prevUpdateId) {\n return _objectSpread({\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width\n }, data && data.length ? createScale({\n data: data,\n width: width,\n x: x,\n travellerWidth: travellerWidth,\n startIndex: startIndex,\n endIndex: endIndex\n }) : {\n scale: null,\n scaleValues: null\n });\n }\n if (prevState.scale && (width !== prevState.prevWidth || x !== prevState.prevX || travellerWidth !== prevState.prevTravellerWidth)) {\n prevState.scale.range([x, x + width - travellerWidth]);\n var scaleValues = prevState.scale.domain().map(function (entry) {\n return prevState.scale(entry);\n });\n return {\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width,\n startX: prevState.scale(nextProps.startIndex),\n endX: prevState.scale(nextProps.endIndex),\n scaleValues: scaleValues\n };\n }\n return null;\n }\n }, {\n key: \"getIndexInRange\",\n value: function getIndexInRange(valueRange, x) {\n var len = valueRange.length;\n var start = 0;\n var end = len - 1;\n while (end - start > 1) {\n var middle = Math.floor((start + end) / 2);\n if (valueRange[middle] > x) {\n end = middle;\n } else {\n start = middle;\n }\n }\n return x >= valueRange[end] ? end : start;\n }\n }]);\n}(PureComponent);\n_defineProperty(Brush, \"displayName\", 'Brush');\n_defineProperty(Brush, \"defaultProps\", {\n height: 40,\n travellerWidth: 5,\n gap: 1,\n fill: '#fff',\n stroke: '#666',\n padding: {\n top: 1,\n right: 1,\n bottom: 1,\n left: 1\n },\n leaveTimeOut: 1000,\n alwaysShowText: false\n});","export var ifOverflowMatches = function ifOverflowMatches(props, value) {\n var alwaysShow = props.alwaysShow;\n var ifOverflow = props.ifOverflow;\n if (alwaysShow) {\n ifOverflow = 'extendDomain';\n }\n return ifOverflow === value;\n};","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Reference Dot\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Dot } from '../shape/Dot';\nimport { Label } from '../component/Label';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { createLabeledScales } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar getCoordinate = function getCoordinate(props) {\n var x = props.x,\n y = props.y,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var result = scales.apply({\n x: x,\n y: y\n }, {\n bandAware: true\n });\n if (ifOverflowMatches(props, 'discard') && !scales.isInRange(result)) {\n return null;\n }\n return result;\n};\n\n// eslint-disable-next-line react/prefer-stateless-function -- requires static defaultProps\nexport var ReferenceDot = /*#__PURE__*/function (_React$Component) {\n function ReferenceDot() {\n _classCallCheck(this, ReferenceDot);\n return _callSuper(this, ReferenceDot, arguments);\n }\n _inherits(ReferenceDot, _React$Component);\n return _createClass(ReferenceDot, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n r = _this$props.r,\n alwaysShow = _this$props.alwaysShow,\n clipPathId = _this$props.clipPathId;\n var isX = isNumOrStr(x);\n var isY = isNumOrStr(y);\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n if (!isX || !isY) {\n return null;\n }\n var coordinate = getCoordinate(this.props);\n if (!coordinate) {\n return null;\n }\n var cx = coordinate.x,\n cy = coordinate.y;\n var _this$props2 = this.props,\n shape = _this$props2.shape,\n className = _this$props2.className;\n var clipPath = ifOverflowMatches(this.props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n var dotProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(this.props, true)), {}, {\n cx: cx,\n cy: cy\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-reference-dot', className)\n }, ReferenceDot.renderDot(shape, dotProps), Label.renderCallByParent(this.props, {\n x: cx - r,\n y: cy - r,\n width: 2 * r,\n height: 2 * r\n }));\n }\n }]);\n}(React.Component);\n_defineProperty(ReferenceDot, \"displayName\", 'ReferenceDot');\n_defineProperty(ReferenceDot, \"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_defineProperty(ReferenceDot, \"renderDot\", function (option, props) {\n var dot;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n dot = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, _extends({}, props, {\n cx: props.cx,\n cy: props.cy,\n className: \"recharts-reference-dot-dot\"\n }));\n }\n return dot;\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/**\n * @fileOverview Reference Line\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport some from 'lodash/some';\nimport clsx from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { createLabeledScales, rectWithCoords } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/ReactUtils';\nimport { useClipPathId, useViewBox, useXAxisOrThrow, useYAxisOrThrow } from '../context/chartLayoutContext';\n\n/**\n * This excludes `viewBox` prop from svg for two reasons:\n * 1. The components wants viewBox of object type, and svg wants string\n * - so there's a conflict, and the component will throw if it gets string\n * 2. Internally the component calls `filterProps` which filters the viewBox away anyway\n */\n\nvar renderLine = function renderLine(option, props) {\n var line;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n line = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n line = option(props);\n } else {\n line = /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: \"recharts-reference-line-line\"\n }));\n }\n return line;\n};\n// TODO: ScaleHelper\nexport var getEndPoints = function getEndPoints(scales, isFixedX, isFixedY, isSegment, viewBox, position, xAxisOrientation, yAxisOrientation, props) {\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n if (isFixedY) {\n var yCoord = props.y;\n var coord = scales.y.apply(yCoord, {\n position: position\n });\n if (ifOverflowMatches(props, 'discard') && !scales.y.isInRange(coord)) {\n return null;\n }\n var points = [{\n x: x + width,\n y: coord\n }, {\n x: x,\n y: coord\n }];\n return yAxisOrientation === 'left' ? points.reverse() : points;\n }\n if (isFixedX) {\n var xCoord = props.x;\n var _coord = scales.x.apply(xCoord, {\n position: position\n });\n if (ifOverflowMatches(props, 'discard') && !scales.x.isInRange(_coord)) {\n return null;\n }\n var _points = [{\n x: _coord,\n y: y + height\n }, {\n x: _coord,\n y: y\n }];\n return xAxisOrientation === 'top' ? _points.reverse() : _points;\n }\n if (isSegment) {\n var segment = props.segment;\n var _points2 = segment.map(function (p) {\n return scales.apply(p, {\n position: position\n });\n });\n if (ifOverflowMatches(props, 'discard') && some(_points2, function (p) {\n return !scales.isInRange(p);\n })) {\n return null;\n }\n return _points2;\n }\n return null;\n};\nfunction ReferenceLineImpl(props) {\n var fixedX = props.x,\n fixedY = props.y,\n segment = props.segment,\n xAxisId = props.xAxisId,\n yAxisId = props.yAxisId,\n shape = props.shape,\n className = props.className,\n alwaysShow = props.alwaysShow;\n var clipPathId = useClipPathId();\n var xAxis = useXAxisOrThrow(xAxisId);\n var yAxis = useYAxisOrThrow(yAxisId);\n var viewBox = useViewBox();\n if (!clipPathId || !viewBox) {\n return null;\n }\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var isX = isNumOrStr(fixedX);\n var isY = isNumOrStr(fixedY);\n var isSegment = segment && segment.length === 2;\n var endPoints = getEndPoints(scales, isX, isY, isSegment, viewBox, props.position, xAxis.orientation, yAxis.orientation, props);\n if (!endPoints) {\n return null;\n }\n var _endPoints = _slicedToArray(endPoints, 2),\n _endPoints$ = _endPoints[0],\n x1 = _endPoints$.x,\n y1 = _endPoints$.y,\n _endPoints$2 = _endPoints[1],\n x2 = _endPoints$2.x,\n y2 = _endPoints$2.y;\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n var lineProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), {}, {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-reference-line', className)\n }, renderLine(shape, lineProps), Label.renderCallByParent(props, rectWithCoords({\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n })));\n}\n\n// eslint-disable-next-line react/prefer-stateless-function -- requires static defaultProps\nexport var ReferenceLine = /*#__PURE__*/function (_React$Component) {\n function ReferenceLine() {\n _classCallCheck(this, ReferenceLine);\n return _callSuper(this, ReferenceLine, arguments);\n }\n _inherits(ReferenceLine, _React$Component);\n return _createClass(ReferenceLine, [{\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(ReferenceLineImpl, this.props);\n }\n }]);\n}(React.Component);\n_defineProperty(ReferenceLine, \"displayName\", 'ReferenceLine');\n_defineProperty(ReferenceLine, \"defaultProps\", {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n fill: 'none',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1,\n position: 'middle'\n});","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Reference Line\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { createLabeledScales, rectWithPoints } from '../util/CartesianUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nimport { Rectangle } from '../shape/Rectangle';\nimport { filterProps } from '../util/ReactUtils';\nvar getRect = function getRect(hasX1, hasX2, hasY1, hasY2, props) {\n var xValue1 = props.x1,\n xValue2 = props.x2,\n yValue1 = props.y1,\n yValue2 = props.y2,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n if (!xAxis || !yAxis) return null;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var p1 = {\n x: hasX1 ? scales.x.apply(xValue1, {\n position: 'start'\n }) : scales.x.rangeMin,\n y: hasY1 ? scales.y.apply(yValue1, {\n position: 'start'\n }) : scales.y.rangeMin\n };\n var p2 = {\n x: hasX2 ? scales.x.apply(xValue2, {\n position: 'end'\n }) : scales.x.rangeMax,\n y: hasY2 ? scales.y.apply(yValue2, {\n position: 'end'\n }) : scales.y.rangeMax\n };\n if (ifOverflowMatches(props, 'discard') && (!scales.isInRange(p1) || !scales.isInRange(p2))) {\n return null;\n }\n return rectWithPoints(p1, p2);\n};\n\n// eslint-disable-next-line react/prefer-stateless-function -- requires static defaultProps\nexport var ReferenceArea = /*#__PURE__*/function (_React$Component) {\n function ReferenceArea() {\n _classCallCheck(this, ReferenceArea);\n return _callSuper(this, ReferenceArea, arguments);\n }\n _inherits(ReferenceArea, _React$Component);\n return _createClass(ReferenceArea, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n x1 = _this$props.x1,\n x2 = _this$props.x2,\n y1 = _this$props.y1,\n y2 = _this$props.y2,\n className = _this$props.className,\n alwaysShow = _this$props.alwaysShow,\n clipPathId = _this$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 = this.props.shape;\n if (!hasX1 && !hasX2 && !hasY1 && !hasY2 && !shape) {\n return null;\n }\n var rect = getRect(hasX1, hasX2, hasY1, hasY2, this.props);\n if (!rect && !shape) {\n return null;\n }\n var clipPath = ifOverflowMatches(this.props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-reference-area', className)\n }, ReferenceArea.renderRect(shape, _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(this.props, true)), rect)), Label.renderCallByParent(this.props, rect));\n }\n }]);\n}(React.Component);\n_defineProperty(ReferenceArea, \"displayName\", 'ReferenceArea');\n_defineProperty(ReferenceArea, \"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_defineProperty(ReferenceArea, \"renderRect\", function (option, props) {\n var rect;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rect = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n rect = option(props);\n } else {\n rect = /*#__PURE__*/React.createElement(Rectangle, _extends({}, props, {\n className: \"recharts-reference-area-rect\"\n }));\n }\n return rect;\n});","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { ReferenceDot } from '../cartesian/ReferenceDot';\nimport { ReferenceLine } from '../cartesian/ReferenceLine';\nimport { ReferenceArea } from '../cartesian/ReferenceArea';\nimport { ifOverflowMatches } from './IfOverflowMatches';\nimport { findAllByType } from './ReactUtils';\nimport { isNumber } from './DataUtils';\nexport var detectReferenceElementsDomain = function detectReferenceElementsDomain(children, domain, axisId, axisType, specifiedTicks) {\n var lines = findAllByType(children, ReferenceLine);\n var dots = findAllByType(children, ReferenceDot);\n var elements = [].concat(_toConsumableArray(lines), _toConsumableArray(dots));\n var areas = findAllByType(children, ReferenceArea);\n var idKey = \"\".concat(axisType, \"Id\");\n var valueKey = axisType[0];\n var finalDomain = domain;\n if (elements.length) {\n finalDomain = elements.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[valueKey])) {\n var value = el.props[valueKey];\n return [Math.min(result[0], value), Math.max(result[1], value)];\n }\n return result;\n }, finalDomain);\n }\n if (areas.length) {\n var key1 = \"\".concat(valueKey, \"1\");\n var key2 = \"\".concat(valueKey, \"2\");\n finalDomain = areas.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[key1]) && isNumber(el.props[key2])) {\n var value1 = el.props[key1];\n var value2 = el.props[key2];\n return [Math.min(result[0], value1, value2), Math.max(result[1], value1, value2)];\n }\n return result;\n }, finalDomain);\n }\n if (specifiedTicks && specifiedTicks.length) {\n finalDomain = specifiedTicks.reduce(function (result, tick) {\n if (isNumber(tick)) {\n return [Math.min(result[0], tick), Math.max(result[1], tick)];\n }\n return result;\n }, finalDomain);\n }\n return finalDomain;\n};","import EventEmitter from 'eventemitter3';\nvar eventCenter = new EventEmitter();\nexport { eventCenter };\nexport var SYNC_EVENT = 'recharts.syncMouseEvents';","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nexport var AccessibilityManager = /*#__PURE__*/function () {\n function AccessibilityManager() {\n _classCallCheck(this, AccessibilityManager);\n _defineProperty(this, \"activeIndex\", 0);\n _defineProperty(this, \"coordinateList\", []);\n _defineProperty(this, \"layout\", 'horizontal');\n }\n return _createClass(AccessibilityManager, [{\n key: \"setDetails\",\n value: function setDetails(_ref) {\n var _ref2;\n var _ref$coordinateList = _ref.coordinateList,\n coordinateList = _ref$coordinateList === void 0 ? null : _ref$coordinateList,\n _ref$container = _ref.container,\n container = _ref$container === void 0 ? null : _ref$container,\n _ref$layout = _ref.layout,\n layout = _ref$layout === void 0 ? null : _ref$layout,\n _ref$offset = _ref.offset,\n offset = _ref$offset === void 0 ? null : _ref$offset,\n _ref$mouseHandlerCall = _ref.mouseHandlerCallback,\n mouseHandlerCallback = _ref$mouseHandlerCall === void 0 ? null : _ref$mouseHandlerCall;\n this.coordinateList = (_ref2 = coordinateList !== null && coordinateList !== void 0 ? coordinateList : this.coordinateList) !== null && _ref2 !== void 0 ? _ref2 : [];\n this.container = container !== null && container !== void 0 ? container : this.container;\n this.layout = layout !== null && layout !== void 0 ? layout : this.layout;\n this.offset = offset !== null && offset !== void 0 ? offset : this.offset;\n this.mouseHandlerCallback = mouseHandlerCallback !== null && mouseHandlerCallback !== void 0 ? mouseHandlerCallback : this.mouseHandlerCallback;\n\n // Keep activeIndex in the bounds between 0 and the last coordinate index\n this.activeIndex = Math.min(Math.max(this.activeIndex, 0), this.coordinateList.length - 1);\n }\n }, {\n key: \"focus\",\n value: function focus() {\n this.spoofMouse();\n }\n }, {\n key: \"keyboardEvent\",\n value: function keyboardEvent(e) {\n // The AccessibilityManager relies on the Tooltip component. When tooltips suddenly stop existing,\n // it can cause errors. We use this function to check. We don't want arrow keys to be processed\n // if there are no tooltips, since that will cause unexpected behavior of users.\n if (this.coordinateList.length === 0) {\n return;\n }\n switch (e.key) {\n case 'ArrowRight':\n {\n if (this.layout !== 'horizontal') {\n return;\n }\n this.activeIndex = Math.min(this.activeIndex + 1, this.coordinateList.length - 1);\n this.spoofMouse();\n break;\n }\n case 'ArrowLeft':\n {\n if (this.layout !== 'horizontal') {\n return;\n }\n this.activeIndex = Math.max(this.activeIndex - 1, 0);\n this.spoofMouse();\n break;\n }\n default:\n {\n break;\n }\n }\n }\n }, {\n key: \"setIndex\",\n value: function setIndex(newIndex) {\n this.activeIndex = newIndex;\n }\n }, {\n key: \"spoofMouse\",\n value: function spoofMouse() {\n var _window, _window2;\n if (this.layout !== 'horizontal') {\n return;\n }\n\n // This can happen when the tooltips suddenly stop existing as children of the component\n // That update doesn't otherwise fire events, so we have to double check here.\n if (this.coordinateList.length === 0) {\n return;\n }\n var _this$container$getBo = this.container.getBoundingClientRect(),\n x = _this$container$getBo.x,\n y = _this$container$getBo.y,\n height = _this$container$getBo.height;\n var coordinate = this.coordinateList[this.activeIndex].coordinate;\n var scrollOffsetX = ((_window = window) === null || _window === void 0 ? void 0 : _window.scrollX) || 0;\n var scrollOffsetY = ((_window2 = window) === null || _window2 === void 0 ? void 0 : _window2.scrollY) || 0;\n var pageX = x + coordinate + scrollOffsetX;\n var pageY = y + this.offset.top + height / 2 + scrollOffsetY;\n this.mouseHandlerCallback({\n pageX: pageX,\n pageY: pageY\n });\n }\n }]);\n}();","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"x\", \"y\", \"top\", \"left\", \"width\", \"height\", \"className\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\n/**\n * @fileOverview Cross\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { isNumber } from '../util/DataUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar getPath = function getPath(x, y, width, height, top, left) {\n return \"M\".concat(x, \",\").concat(top, \"v\").concat(height, \"M\").concat(left, \",\").concat(y, \"h\").concat(width);\n};\nexport var Cross = function Cross(_ref) {\n var _ref$x = _ref.x,\n x = _ref$x === void 0 ? 0 : _ref$x,\n _ref$y = _ref.y,\n y = _ref$y === void 0 ? 0 : _ref$y,\n _ref$top = _ref.top,\n top = _ref$top === void 0 ? 0 : _ref$top,\n _ref$left = _ref.left,\n left = _ref$left === void 0 ? 0 : _ref$left,\n _ref$width = _ref.width,\n width = _ref$width === void 0 ? 0 : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? 0 : _ref$height,\n className = _ref.className,\n rest = _objectWithoutProperties(_ref, _excluded);\n var props = _objectSpread({\n x: x,\n y: y,\n top: top,\n left: left,\n width: width,\n height: height\n }, rest);\n if (!isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || !isNumber(top) || !isNumber(left)) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: clsx('recharts-cross', className),\n d: getPath(x, y, width, height, top, left)\n }));\n};","import { polarToCartesian } from '../PolarUtils';\n/**\n * Only applicable for radial layouts\n * @param {Object} activeCoordinate ChartCoordinate\n * @returns {Object} RadialCursorPoints\n */\nexport function getRadialCursorPoints(activeCoordinate) {\n var cx = activeCoordinate.cx,\n cy = activeCoordinate.cy,\n radius = activeCoordinate.radius,\n startAngle = activeCoordinate.startAngle,\n endAngle = activeCoordinate.endAngle;\n var startPoint = polarToCartesian(cx, cy, radius, startAngle);\n var endPoint = polarToCartesian(cx, cy, radius, endAngle);\n return {\n points: [startPoint, endPoint],\n cx: cx,\n cy: cy,\n radius: radius,\n startAngle: startAngle,\n endAngle: endAngle\n };\n}","import { polarToCartesian } from '../PolarUtils';\nimport { getRadialCursorPoints } from './getRadialCursorPoints';\nexport function getCursorPoints(layout, activeCoordinate, offset) {\n var x1, y1, x2, y2;\n if (layout === 'horizontal') {\n x1 = activeCoordinate.x;\n x2 = x1;\n y1 = offset.top;\n y2 = offset.top + offset.height;\n } else if (layout === 'vertical') {\n y1 = activeCoordinate.y;\n y2 = y1;\n x1 = offset.left;\n x2 = offset.left + offset.width;\n } else if (activeCoordinate.cx != null && activeCoordinate.cy != null) {\n if (layout === 'centric') {\n var cx = activeCoordinate.cx,\n cy = activeCoordinate.cy,\n innerRadius = activeCoordinate.innerRadius,\n outerRadius = activeCoordinate.outerRadius,\n angle = activeCoordinate.angle;\n var innerPoint = polarToCartesian(cx, cy, innerRadius, angle);\n var outerPoint = polarToCartesian(cx, cy, outerRadius, angle);\n x1 = innerPoint.x;\n y1 = innerPoint.y;\n x2 = outerPoint.x;\n y2 = outerPoint.y;\n } else {\n return getRadialCursorPoints(activeCoordinate);\n }\n }\n return [{\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n }];\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { cloneElement, createElement, isValidElement } from 'react';\nimport clsx from 'clsx';\nimport { Curve } from '../shape/Curve';\nimport { Cross } from '../shape/Cross';\nimport { getCursorRectangle } from '../util/cursor/getCursorRectangle';\nimport { Rectangle } from '../shape/Rectangle';\nimport { getRadialCursorPoints } from '../util/cursor/getRadialCursorPoints';\nimport { Sector } from '../shape/Sector';\nimport { getCursorPoints } from '../util/cursor/getCursorPoints';\nimport { filterProps } from '../util/ReactUtils';\n/*\n * Cursor is the background, or a highlight,\n * that shows when user mouses over or activates\n * an area.\n *\n * It usually shows together with a tooltip\n * to emphasise which part of the chart does the tooltip refer to.\n */\nexport function Cursor(props) {\n var _element$props$cursor, _defaultProps;\n var element = props.element,\n tooltipEventType = props.tooltipEventType,\n isActive = props.isActive,\n activeCoordinate = props.activeCoordinate,\n activePayload = props.activePayload,\n offset = props.offset,\n activeTooltipIndex = props.activeTooltipIndex,\n tooltipAxisBandSize = props.tooltipAxisBandSize,\n layout = props.layout,\n chartName = props.chartName;\n var elementPropsCursor = (_element$props$cursor = element.props.cursor) !== null && _element$props$cursor !== void 0 ? _element$props$cursor : (_defaultProps = element.type.defaultProps) === null || _defaultProps === void 0 ? void 0 : _defaultProps.cursor;\n if (!element || !elementPropsCursor || !isActive || !activeCoordinate || chartName !== 'ScatterChart' && tooltipEventType !== 'axis') {\n return null;\n }\n var restProps;\n var cursorComp = Curve;\n if (chartName === 'ScatterChart') {\n restProps = activeCoordinate;\n cursorComp = Cross;\n } else if (chartName === 'BarChart') {\n restProps = getCursorRectangle(layout, activeCoordinate, offset, tooltipAxisBandSize);\n cursorComp = Rectangle;\n } else if (layout === 'radial') {\n var _getRadialCursorPoint = getRadialCursorPoints(activeCoordinate),\n cx = _getRadialCursorPoint.cx,\n cy = _getRadialCursorPoint.cy,\n radius = _getRadialCursorPoint.radius,\n startAngle = _getRadialCursorPoint.startAngle,\n endAngle = _getRadialCursorPoint.endAngle;\n restProps = {\n cx: cx,\n cy: cy,\n startAngle: startAngle,\n endAngle: endAngle,\n innerRadius: radius,\n outerRadius: radius\n };\n cursorComp = Sector;\n } else {\n restProps = {\n points: getCursorPoints(layout, activeCoordinate, offset)\n };\n cursorComp = Curve;\n }\n var cursorProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n stroke: '#ccc',\n pointerEvents: 'none'\n }, offset), restProps), filterProps(elementPropsCursor, false)), {}, {\n payload: activePayload,\n payloadIndex: activeTooltipIndex,\n className: clsx('recharts-tooltip-cursor', elementPropsCursor.className)\n });\n return /*#__PURE__*/isValidElement(elementPropsCursor) ? /*#__PURE__*/cloneElement(elementPropsCursor, cursorProps) : /*#__PURE__*/createElement(cursorComp, cursorProps);\n}","export function getCursorRectangle(layout, activeCoordinate, offset, tooltipAxisBandSize) {\n var halfSize = tooltipAxisBandSize / 2;\n return {\n stroke: 'none',\n fill: '#ccc',\n x: layout === 'horizontal' ? activeCoordinate.x - halfSize : offset.left + 0.5,\n y: layout === 'horizontal' ? offset.top + 0.5 : activeCoordinate.y - halfSize,\n width: layout === 'horizontal' ? tooltipAxisBandSize : offset.width - 1,\n height: layout === 'horizontal' ? offset.height - 1 : tooltipAxisBandSize\n };\n}","var _excluded = [\"item\"],\n _excluded2 = [\"children\", \"className\", \"width\", \"height\", \"style\", \"compact\", \"title\", \"desc\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React, { Component, cloneElement, isValidElement, forwardRef } from 'react';\nimport isNil from 'lodash/isNil';\nimport isFunction from 'lodash/isFunction';\nimport range from 'lodash/range';\nimport get from 'lodash/get';\nimport sortBy from 'lodash/sortBy';\nimport throttle from 'lodash/throttle';\nimport clsx from 'clsx';\n// eslint-disable-next-line no-restricted-imports\n\nimport invariant from 'tiny-invariant';\nimport { Surface } from '../container/Surface';\nimport { Layer } from '../container/Layer';\nimport { Tooltip } from '../component/Tooltip';\nimport { Legend } from '../component/Legend';\nimport { Dot } from '../shape/Dot';\nimport { isInRectangle } from '../shape/Rectangle';\nimport { filterProps, findAllByType, findChildByType, getDisplayName, getReactEventByType, isChildrenEqual, parseChildIndex, renderByOrder, validateWidthHeight } from '../util/ReactUtils';\nimport { Brush } from '../cartesian/Brush';\nimport { getOffset } from '../util/DOMUtils';\nimport { findEntryInArray, getAnyElementOfObject, hasDuplicate, isNumber, uniqueId } from '../util/DataUtils';\nimport { appendOffsetOfLegend, calculateActiveTickIndex, combineEventHandlers, getBandSizeOfAxis, getBarPosition, getBarSizeList, getDomainOfDataByKey, getDomainOfItemsWithSameAxis, getDomainOfStackGroups, getLegendProps, getMainColorOfGraphicItem, getStackedDataOfItem, getStackGroupsByAxisId, getTicksOfAxis, getTooltipItem, isCategoricalAxis, parseDomainOfCategoryAxis, parseErrorBarsOfAxis, parseSpecifiedDomain } from '../util/ChartUtils';\nimport { detectReferenceElementsDomain } from '../util/DetectReferenceElementsDomain';\nimport { inRangeOfSector, polarToCartesian } from '../util/PolarUtils';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { eventCenter, SYNC_EVENT } from '../util/Events';\nimport { adaptEventHandlers } from '../util/types';\nimport { AccessibilityManager } from './AccessibilityManager';\nimport { isDomainSpecifiedByUser } from '../util/isDomainSpecifiedByUser';\nimport { getActiveShapeIndexForTooltip, isFunnel, isPie, isScatter } from '../util/ActiveShapeUtils';\nimport { Cursor } from '../component/Cursor';\nimport { ChartLayoutContextProvider } from '../context/chartLayoutContext';\nvar ORIENT_MAP = {\n xAxis: ['bottom', 'top'],\n yAxis: ['left', 'right']\n};\nvar FULL_WIDTH_AND_HEIGHT = {\n width: '100%',\n height: '100%'\n};\nvar originCoordinate = {\n x: 0,\n y: 0\n};\n\n/**\n * This function exists as a temporary workaround.\n *\n * Why? generateCategoricalChart does not render `{children}` directly;\n * instead it passes them through `renderByOrder` function which reads their handlers.\n *\n * So, this is a handler that does nothing.\n * Once we get rid of `renderByOrder` and switch to JSX only, we can get rid of this handler too.\n *\n * @param {JSX} element as is in JSX\n * @returns {JSX} the same element\n */\nfunction renderAsIs(element) {\n return element;\n}\nvar calculateTooltipPos = function calculateTooltipPos(rangeObj, layout) {\n if (layout === 'horizontal') {\n return rangeObj.x;\n }\n if (layout === 'vertical') {\n return rangeObj.y;\n }\n if (layout === 'centric') {\n return rangeObj.angle;\n }\n return rangeObj.radius;\n};\nvar getActiveCoordinate = function getActiveCoordinate(layout, tooltipTicks, activeIndex, rangeObj) {\n var entry = tooltipTicks.find(function (tick) {\n return tick && tick.index === activeIndex;\n });\n if (entry) {\n if (layout === 'horizontal') {\n return {\n x: entry.coordinate,\n y: rangeObj.y\n };\n }\n if (layout === 'vertical') {\n return {\n x: rangeObj.x,\n y: entry.coordinate\n };\n }\n if (layout === 'centric') {\n var _angle = entry.coordinate;\n var _radius = rangeObj.radius;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, _radius, _angle)), {}, {\n angle: _angle,\n radius: _radius\n });\n }\n var radius = entry.coordinate;\n var angle = rangeObj.angle;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, radius, angle)), {}, {\n angle: angle,\n radius: radius\n });\n }\n return originCoordinate;\n};\nvar getDisplayedData = function getDisplayedData(data, _ref) {\n var graphicalItems = _ref.graphicalItems,\n dataStartIndex = _ref.dataStartIndex,\n dataEndIndex = _ref.dataEndIndex;\n var itemsData = (graphicalItems !== null && graphicalItems !== void 0 ? graphicalItems : []).reduce(function (result, child) {\n var itemData = child.props.data;\n if (itemData && itemData.length) {\n return [].concat(_toConsumableArray(result), _toConsumableArray(itemData));\n }\n return result;\n }, []);\n if (itemsData.length > 0) {\n return itemsData;\n }\n if (data && data.length && isNumber(dataStartIndex) && isNumber(dataEndIndex)) {\n return data.slice(dataStartIndex, dataEndIndex + 1);\n }\n return [];\n};\nfunction getDefaultDomainByAxisType(axisType) {\n return axisType === 'number' ? [0, 'auto'] : undefined;\n}\n\n/**\n * Get the content to be displayed in the tooltip\n * @param {Object} state Current state\n * @param {Array} chartData The data defined in chart\n * @param {Number} activeIndex Active index of data\n * @param {String} activeLabel Active label of data\n * @return {Array} The content of tooltip\n */\nvar getTooltipContent = function getTooltipContent(state, chartData, activeIndex, activeLabel) {\n var graphicalItems = state.graphicalItems,\n tooltipAxis = state.tooltipAxis;\n var displayedData = getDisplayedData(chartData, state);\n if (activeIndex < 0 || !graphicalItems || !graphicalItems.length || activeIndex >= displayedData.length) {\n return null;\n }\n // get data by activeIndex when the axis don't allow duplicated category\n return graphicalItems.reduce(function (result, child) {\n var _child$props$data;\n /**\n * Fixes: https://github.com/recharts/recharts/issues/3669\n * Defaulting to chartData below to fix an edge case where the tooltip does not include data from all charts\n * when a separate dataset is passed to chart prop data and specified on Line/Area/etc prop data\n */\n var data = (_child$props$data = child.props.data) !== null && _child$props$data !== void 0 ? _child$props$data : chartData;\n if (data && state.dataStartIndex + state.dataEndIndex !== 0 &&\n // https://github.com/recharts/recharts/issues/4717\n // The data is sliced only when the active index is within the start/end index range.\n state.dataEndIndex - state.dataStartIndex >= activeIndex) {\n data = data.slice(state.dataStartIndex, state.dataEndIndex + 1);\n }\n var payload;\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // graphic child has data props\n var entries = data === undefined ? displayedData : data;\n payload = findEntryInArray(entries, tooltipAxis.dataKey, activeLabel);\n } else {\n payload = data && data[activeIndex] || displayedData[activeIndex];\n }\n if (!payload) {\n return result;\n }\n return [].concat(_toConsumableArray(result), [getTooltipItem(child, payload)]);\n }, []);\n};\n\n/**\n * Returns tooltip data based on a mouse position (as a parameter or in state)\n * @param {Object} state current state\n * @param {Array} chartData the data defined in chart\n * @param {String} layout The layout type of chart\n * @param {Object} rangeObj { x, y } coordinates\n * @return {Object} Tooltip data data\n */\nvar getTooltipData = function getTooltipData(state, chartData, layout, rangeObj) {\n var rangeData = rangeObj || {\n x: state.chartX,\n y: state.chartY\n };\n var pos = calculateTooltipPos(rangeData, layout);\n var ticks = state.orderedTooltipTicks,\n axis = state.tooltipAxis,\n tooltipTicks = state.tooltipTicks;\n var activeIndex = calculateActiveTickIndex(pos, ticks, tooltipTicks, axis);\n if (activeIndex >= 0 && tooltipTicks) {\n var activeLabel = tooltipTicks[activeIndex] && tooltipTicks[activeIndex].value;\n var activePayload = getTooltipContent(state, chartData, activeIndex, activeLabel);\n var activeCoordinate = getActiveCoordinate(layout, ticks, activeIndex, rangeData);\n return {\n activeTooltipIndex: activeIndex,\n activeLabel: activeLabel,\n activePayload: activePayload,\n activeCoordinate: activeCoordinate\n };\n }\n return null;\n};\n\n/**\n * Get the configuration of axis by the options of axis instance\n * @param {Object} props Latest props\n * @param {Array} axes The instance of axes\n * @param {Array} graphicalItems The instances of item\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\nexport var getAxisMapByAxes = function getAxisMapByAxes(props, _ref2) {\n var axes = _ref2.axes,\n graphicalItems = _ref2.graphicalItems,\n axisType = _ref2.axisType,\n axisIdKey = _ref2.axisIdKey,\n stackGroups = _ref2.stackGroups,\n dataStartIndex = _ref2.dataStartIndex,\n dataEndIndex = _ref2.dataEndIndex;\n var layout = props.layout,\n children = props.children,\n stackOffset = props.stackOffset;\n var isCategorical = isCategoricalAxis(layout, axisType);\n\n // Eliminate duplicated axes\n return axes.reduce(function (result, child) {\n var _childProps$domain2;\n var childProps = child.type.defaultProps !== undefined ? _objectSpread(_objectSpread({}, child.type.defaultProps), child.props) : child.props;\n var type = childProps.type,\n dataKey = childProps.dataKey,\n allowDataOverflow = childProps.allowDataOverflow,\n allowDuplicatedCategory = childProps.allowDuplicatedCategory,\n scale = childProps.scale,\n ticks = childProps.ticks,\n includeHidden = childProps.includeHidden;\n var axisId = childProps[axisIdKey];\n if (result[axisId]) {\n return result;\n }\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems.filter(function (item) {\n var _defaultProps;\n var itemAxisId = axisIdKey in item.props ? item.props[axisIdKey] : (_defaultProps = item.type.defaultProps) === null || _defaultProps === void 0 ? void 0 : _defaultProps[axisIdKey];\n return itemAxisId === axisId;\n }),\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var domain, duplicateDomain, categoricalDomain;\n\n /*\n * This is a hack to short-circuit the domain creation here to enhance performance.\n * Usually, the data is used to determine the domain, but when the user specifies\n * a domain upfront (via props), there is no need to calculate the domain start and end,\n * which is very expensive for a larger amount of data.\n * The only thing that would prohibit short-circuiting is when the user doesn't allow data overflow,\n * because the axis is supposed to ignore the specified domain that way.\n */\n if (isDomainSpecifiedByUser(childProps.domain, allowDataOverflow, type)) {\n domain = parseSpecifiedDomain(childProps.domain, null, allowDataOverflow);\n /* The chart can be categorical and have the domain specified in numbers\n * we still need to calculate the categorical domain\n * TODO: refactor this more\n */\n if (isCategorical && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n }\n\n // if the domain is defaulted we need this for `originalDomain` as well\n var defaultDomain = getDefaultDomainByAxisType(type);\n\n // we didn't create the domain from user's props above, so we need to calculate it\n if (!domain || domain.length === 0) {\n var _childProps$domain;\n var childDomain = (_childProps$domain = childProps.domain) !== null && _childProps$domain !== void 0 ? _childProps$domain : defaultDomain;\n if (dataKey) {\n // has dataKey in \n domain = getDomainOfDataByKey(displayedData, dataKey, type);\n if (type === 'category' && isCategorical) {\n // the field type is category data and this axis is categorical axis\n var duplicate = hasDuplicate(domain);\n if (allowDuplicatedCategory && duplicate) {\n duplicateDomain = domain;\n // When category axis has duplicated text, serial numbers are used to generate scale\n domain = range(0, len);\n } else if (!allowDuplicatedCategory) {\n // remove duplicated category\n domain = parseDomainOfCategoryAxis(childDomain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n }\n } else if (type === 'category') {\n // the field type is category data and this axis is numerical axis\n if (!allowDuplicatedCategory) {\n domain = parseDomainOfCategoryAxis(childDomain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 || entry === '' || isNil(entry) ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n } else {\n // eliminate undefined or null or empty string\n domain = domain.filter(function (entry) {\n return entry !== '' && !isNil(entry);\n });\n }\n } else if (type === 'number') {\n // the field type is numerical\n var errorBarsDomain = parseErrorBarsOfAxis(displayedData, graphicalItems.filter(function (item) {\n var _defaultProps2, _defaultProps3;\n var itemAxisId = axisIdKey in item.props ? item.props[axisIdKey] : (_defaultProps2 = item.type.defaultProps) === null || _defaultProps2 === void 0 ? void 0 : _defaultProps2[axisIdKey];\n var itemHide = 'hide' in item.props ? item.props.hide : (_defaultProps3 = item.type.defaultProps) === null || _defaultProps3 === void 0 ? void 0 : _defaultProps3.hide;\n return itemAxisId === axisId && (includeHidden || !itemHide);\n }), dataKey, axisType, layout);\n if (errorBarsDomain) {\n domain = errorBarsDomain;\n }\n }\n if (isCategorical && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n } else if (isCategorical) {\n // the axis is a categorical axis\n domain = range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack && type === 'number') {\n // when stackOffset is 'expand', the domain may be calculated as [0, 1.000000000002]\n domain = stackOffset === 'expand' ? [0, 1] : getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n } else {\n domain = getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n var itemAxisId = axisIdKey in item.props ? item.props[axisIdKey] : item.type.defaultProps[axisIdKey];\n var itemHide = 'hide' in item.props ? item.props.hide : item.type.defaultProps.hide;\n return itemAxisId === axisId && (includeHidden || !itemHide);\n }), type, layout, true);\n }\n if (type === 'number') {\n // To detect wether there is any reference lines whose props alwaysShow is true\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType, ticks);\n if (childDomain) {\n domain = parseSpecifiedDomain(childDomain, domain, allowDataOverflow);\n }\n } else if (type === 'category' && childDomain) {\n var axisDomain = childDomain;\n var isDomainValid = domain.every(function (entry) {\n return axisDomain.indexOf(entry) >= 0;\n });\n if (isDomainValid) {\n domain = axisDomain;\n }\n }\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({}, childProps), {}, {\n axisType: axisType,\n domain: domain,\n categoricalDomain: categoricalDomain,\n duplicateDomain: duplicateDomain,\n originalDomain: (_childProps$domain2 = childProps.domain) !== null && _childProps$domain2 !== void 0 ? _childProps$domain2 : defaultDomain,\n isCategorical: isCategorical,\n layout: layout\n })));\n }, {});\n};\n\n/**\n * Get the configuration of axis by the options of item,\n * this kind of axis does not display in chart\n * @param {Object} props Latest props\n * @param {Array} graphicalItems The instances of item\n * @param {ReactElement} Axis Axis Component\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\nvar getAxisMapByItems = function getAxisMapByItems(props, _ref3) {\n var graphicalItems = _ref3.graphicalItems,\n Axis = _ref3.Axis,\n axisType = _ref3.axisType,\n axisIdKey = _ref3.axisIdKey,\n stackGroups = _ref3.stackGroups,\n dataStartIndex = _ref3.dataStartIndex,\n dataEndIndex = _ref3.dataEndIndex;\n var layout = props.layout,\n children = props.children;\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var isCategorical = isCategoricalAxis(layout, axisType);\n var index = -1;\n\n // The default type of x-axis is category axis,\n // The default contents of x-axis is the serial numbers of data\n // The default type of y-axis is number axis\n // The default contents of y-axis is the domain of data\n return graphicalItems.reduce(function (result, child) {\n var childProps = child.type.defaultProps !== undefined ? _objectSpread(_objectSpread({}, child.type.defaultProps), child.props) : child.props;\n var axisId = childProps[axisIdKey];\n var originalDomain = getDefaultDomainByAxisType('number');\n if (!result[axisId]) {\n index++;\n var domain;\n if (isCategorical) {\n domain = range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack) {\n domain = getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n } else {\n domain = parseSpecifiedDomain(originalDomain, getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n var _defaultProps4, _defaultProps5;\n var itemAxisId = axisIdKey in item.props ? item.props[axisIdKey] : (_defaultProps4 = item.type.defaultProps) === null || _defaultProps4 === void 0 ? void 0 : _defaultProps4[axisIdKey];\n var itemHide = 'hide' in item.props ? item.props.hide : (_defaultProps5 = item.type.defaultProps) === null || _defaultProps5 === void 0 ? void 0 : _defaultProps5.hide;\n return itemAxisId === axisId && !itemHide;\n }), 'number', layout), Axis.defaultProps.allowDataOverflow);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({\n axisType: axisType\n }, Axis.defaultProps), {}, {\n hide: true,\n orientation: get(ORIENT_MAP, \"\".concat(axisType, \".\").concat(index % 2), null),\n domain: domain,\n originalDomain: originalDomain,\n isCategorical: isCategorical,\n layout: layout\n // specify scale when no Axis\n // scale: isCategorical ? 'band' : 'linear',\n })));\n }\n return result;\n }, {});\n};\n\n/**\n * Get the configuration of all x-axis or y-axis\n * @param {Object} props Latest props\n * @param {String} axisType The type of axis\n * @param {React.ComponentType} [AxisComp] Axis Component\n * @param {Array} graphicalItems The instances of item\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\nvar getAxisMap = function getAxisMap(props, _ref4) {\n var _ref4$axisType = _ref4.axisType,\n axisType = _ref4$axisType === void 0 ? 'xAxis' : _ref4$axisType,\n AxisComp = _ref4.AxisComp,\n graphicalItems = _ref4.graphicalItems,\n stackGroups = _ref4.stackGroups,\n dataStartIndex = _ref4.dataStartIndex,\n dataEndIndex = _ref4.dataEndIndex;\n var children = props.children;\n var axisIdKey = \"\".concat(axisType, \"Id\");\n // Get all the instance of Axis\n var axes = findAllByType(children, AxisComp);\n var axisMap = {};\n if (axes && axes.length) {\n axisMap = getAxisMapByAxes(props, {\n axes: axes,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n } else if (graphicalItems && graphicalItems.length) {\n axisMap = getAxisMapByItems(props, {\n Axis: AxisComp,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n }\n return axisMap;\n};\nvar tooltipTicksGenerator = function tooltipTicksGenerator(axisMap) {\n var axis = getAnyElementOfObject(axisMap);\n var tooltipTicks = getTicksOfAxis(axis, false, true);\n return {\n tooltipTicks: tooltipTicks,\n orderedTooltipTicks: sortBy(tooltipTicks, function (o) {\n return o.coordinate;\n }),\n tooltipAxis: axis,\n tooltipAxisBandSize: getBandSizeOfAxis(axis, tooltipTicks)\n };\n};\n\n/**\n * Returns default, reset state for the categorical chart.\n * @param {Object} props Props object to use when creating the default state\n * @return {Object} Whole new state\n */\nexport var createDefaultState = function createDefaultState(props) {\n var children = props.children,\n defaultShowTooltip = props.defaultShowTooltip;\n var brushItem = findChildByType(children, Brush);\n var startIndex = 0;\n var endIndex = 0;\n if (props.data && props.data.length !== 0) {\n endIndex = props.data.length - 1;\n }\n if (brushItem && brushItem.props) {\n if (brushItem.props.startIndex >= 0) {\n startIndex = brushItem.props.startIndex;\n }\n if (brushItem.props.endIndex >= 0) {\n endIndex = brushItem.props.endIndex;\n }\n }\n return {\n chartX: 0,\n chartY: 0,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n activeTooltipIndex: -1,\n isTooltipActive: Boolean(defaultShowTooltip)\n };\n};\nvar hasGraphicalBarItem = function hasGraphicalBarItem(graphicalItems) {\n if (!graphicalItems || !graphicalItems.length) {\n return false;\n }\n return graphicalItems.some(function (item) {\n var name = getDisplayName(item && item.type);\n return name && name.indexOf('Bar') >= 0;\n });\n};\nvar getAxisNameByLayout = function getAxisNameByLayout(layout) {\n if (layout === 'horizontal') {\n return {\n numericAxisName: 'yAxis',\n cateAxisName: 'xAxis'\n };\n }\n if (layout === 'vertical') {\n return {\n numericAxisName: 'xAxis',\n cateAxisName: 'yAxis'\n };\n }\n if (layout === 'centric') {\n return {\n numericAxisName: 'radiusAxis',\n cateAxisName: 'angleAxis'\n };\n }\n return {\n numericAxisName: 'angleAxis',\n cateAxisName: 'radiusAxis'\n };\n};\n\n/**\n * Calculate the offset of main part in the svg element\n * @param {Object} params.props Latest props\n * @param {Array} params.graphicalItems The instances of item\n * @param {Object} params.xAxisMap The configuration of x-axis\n * @param {Object} params.yAxisMap The configuration of y-axis\n * @param {Object} prevLegendBBox The boundary box of legend\n * @return {Object} The offset of main part in the svg element\n */\nvar calculateOffset = function calculateOffset(_ref5, prevLegendBBox) {\n var props = _ref5.props,\n graphicalItems = _ref5.graphicalItems,\n _ref5$xAxisMap = _ref5.xAxisMap,\n xAxisMap = _ref5$xAxisMap === void 0 ? {} : _ref5$xAxisMap,\n _ref5$yAxisMap = _ref5.yAxisMap,\n yAxisMap = _ref5$yAxisMap === void 0 ? {} : _ref5$yAxisMap;\n var width = props.width,\n height = props.height,\n children = props.children;\n var margin = props.margin || {};\n var brushItem = findChildByType(children, Brush);\n var legendItem = findChildByType(children, Legend);\n var offsetH = Object.keys(yAxisMap).reduce(function (result, id) {\n var entry = yAxisMap[id];\n var orientation = entry.orientation;\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, result[orientation] + entry.width));\n }\n return result;\n }, {\n left: margin.left || 0,\n right: margin.right || 0\n });\n var offsetV = Object.keys(xAxisMap).reduce(function (result, id) {\n var entry = xAxisMap[id];\n var orientation = entry.orientation;\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, get(result, \"\".concat(orientation)) + entry.height));\n }\n return result;\n }, {\n top: margin.top || 0,\n bottom: margin.bottom || 0\n });\n var offset = _objectSpread(_objectSpread({}, offsetV), offsetH);\n var brushBottom = offset.bottom;\n if (brushItem) {\n offset.bottom += brushItem.props.height || Brush.defaultProps.height;\n }\n if (legendItem && prevLegendBBox) {\n // @ts-expect-error margin is optional in props but required in appendOffsetOfLegend\n offset = appendOffsetOfLegend(offset, graphicalItems, props, prevLegendBBox);\n }\n var offsetWidth = width - offset.left - offset.right;\n var offsetHeight = height - offset.top - offset.bottom;\n return _objectSpread(_objectSpread({\n brushBottom: brushBottom\n }, offset), {}, {\n // never return negative values for height and width\n width: Math.max(offsetWidth, 0),\n height: Math.max(offsetHeight, 0)\n });\n};\n// Determine the size of the axis, used for calculation of relative bar sizes\nvar getCartesianAxisSize = function getCartesianAxisSize(axisObj, axisName) {\n if (axisName === 'xAxis') {\n return axisObj[axisName].width;\n }\n if (axisName === 'yAxis') {\n return axisObj[axisName].height;\n }\n // This is only supported for Bar charts (i.e. charts with cartesian axes), so we should never get here\n return undefined;\n};\nexport var generateCategoricalChart = function generateCategoricalChart(_ref6) {\n var chartName = _ref6.chartName,\n GraphicalChild = _ref6.GraphicalChild,\n _ref6$defaultTooltipE = _ref6.defaultTooltipEventType,\n defaultTooltipEventType = _ref6$defaultTooltipE === void 0 ? 'axis' : _ref6$defaultTooltipE,\n _ref6$validateTooltip = _ref6.validateTooltipEventTypes,\n validateTooltipEventTypes = _ref6$validateTooltip === void 0 ? ['axis'] : _ref6$validateTooltip,\n axisComponents = _ref6.axisComponents,\n legendContent = _ref6.legendContent,\n formatAxisMap = _ref6.formatAxisMap,\n defaultProps = _ref6.defaultProps;\n var getFormatItems = function getFormatItems(props, currentState) {\n var graphicalItems = currentState.graphicalItems,\n stackGroups = currentState.stackGroups,\n offset = currentState.offset,\n updateId = currentState.updateId,\n dataStartIndex = currentState.dataStartIndex,\n dataEndIndex = currentState.dataEndIndex;\n var barSize = props.barSize,\n layout = props.layout,\n barGap = props.barGap,\n barCategoryGap = props.barCategoryGap,\n globalMaxBarSize = props.maxBarSize;\n var _getAxisNameByLayout = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout.numericAxisName,\n cateAxisName = _getAxisNameByLayout.cateAxisName;\n var hasBar = hasGraphicalBarItem(graphicalItems);\n var formattedItems = [];\n graphicalItems.forEach(function (item, index) {\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: [item],\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var itemProps = item.type.defaultProps !== undefined ? _objectSpread(_objectSpread({}, item.type.defaultProps), item.props) : item.props;\n var dataKey = itemProps.dataKey,\n childMaxBarSize = itemProps.maxBarSize;\n // axisId of the numerical axis\n var numericAxisId = itemProps[\"\".concat(numericAxisName, \"Id\")];\n // axisId of the categorical axis\n var cateAxisId = itemProps[\"\".concat(cateAxisName, \"Id\")];\n var axisObjInitialValue = {};\n var axisObj = axisComponents.reduce(function (result, entry) {\n var _item$type$displayNam, _item$type;\n // map of axisId to axis for a specific axis type\n var axisMap = currentState[\"\".concat(entry.axisType, \"Map\")];\n // axisId of axis we are currently computing\n var id = itemProps[\"\".concat(entry.axisType, \"Id\")];\n\n /**\n * tell the user in dev mode that their configuration is incorrect if we cannot find a match between\n * axisId on the chart and axisId on the axis. zAxis does not get passed in the map for ComposedChart,\n * leave it out of the check for now.\n */\n !(axisMap && axisMap[id] || entry.axisType === 'zAxis') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Specifying a(n) \".concat(entry.axisType, \"Id requires a corresponding \").concat(entry.axisType\n // @ts-expect-error we should stop reading data from ReactElements\n , \"Id on the targeted graphical component \").concat((_item$type$displayNam = item === null || item === void 0 || (_item$type = item.type) === null || _item$type === void 0 ? void 0 : _item$type.displayName) !== null && _item$type$displayNam !== void 0 ? _item$type$displayNam : '')) : invariant(false) : void 0;\n\n // the axis we are currently formatting\n var axis = axisMap[id];\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty(_defineProperty({}, entry.axisType, axis), \"\".concat(entry.axisType, \"Ticks\"), getTicksOfAxis(axis)));\n }, axisObjInitialValue);\n var cateAxis = axisObj[cateAxisName];\n var cateTicks = axisObj[\"\".concat(cateAxisName, \"Ticks\")];\n var stackedData = stackGroups && stackGroups[numericAxisId] && stackGroups[numericAxisId].hasStack && getStackedDataOfItem(item, stackGroups[numericAxisId].stackGroups);\n var itemIsBar = getDisplayName(item.type).indexOf('Bar') >= 0;\n var bandSize = getBandSizeOfAxis(cateAxis, cateTicks);\n var barPosition = [];\n var sizeList = hasBar && getBarSizeList({\n barSize: barSize,\n stackGroups: stackGroups,\n totalSize: getCartesianAxisSize(axisObj, cateAxisName)\n });\n if (itemIsBar) {\n var _ref7, _getBandSizeOfAxis;\n // If it is bar, calculate the position of bar\n var maxBarSize = isNil(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n var barBandSize = (_ref7 = (_getBandSizeOfAxis = getBandSizeOfAxis(cateAxis, cateTicks, true)) !== null && _getBandSizeOfAxis !== void 0 ? _getBandSizeOfAxis : maxBarSize) !== null && _ref7 !== void 0 ? _ref7 : 0;\n barPosition = getBarPosition({\n barGap: barGap,\n barCategoryGap: barCategoryGap,\n bandSize: barBandSize !== bandSize ? barBandSize : bandSize,\n sizeList: sizeList[cateAxisId],\n maxBarSize: maxBarSize\n });\n if (barBandSize !== bandSize) {\n barPosition = barPosition.map(function (pos) {\n return _objectSpread(_objectSpread({}, pos), {}, {\n position: _objectSpread(_objectSpread({}, pos.position), {}, {\n offset: pos.position.offset - barBandSize / 2\n })\n });\n });\n }\n }\n // @ts-expect-error we should stop reading data from ReactElements\n var composedFn = item && item.type && item.type.getComposedData;\n if (composedFn) {\n formattedItems.push({\n props: _objectSpread(_objectSpread({}, composedFn(_objectSpread(_objectSpread({}, axisObj), {}, {\n displayedData: displayedData,\n props: props,\n dataKey: dataKey,\n item: item,\n bandSize: bandSize,\n barPosition: barPosition,\n offset: offset,\n stackedData: stackedData,\n layout: layout,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))), {}, _defineProperty(_defineProperty(_defineProperty({\n key: item.key || \"item-\".concat(index)\n }, numericAxisName, axisObj[numericAxisName]), cateAxisName, axisObj[cateAxisName]), \"animationId\", updateId)),\n childIndex: parseChildIndex(item, props.children),\n item: item\n });\n }\n });\n return formattedItems;\n };\n\n /**\n * The AxisMaps are expensive to render on large data sets\n * so provide the ability to store them in state and only update them when necessary\n * they are dependent upon the start and end index of\n * the brush so it's important that this method is called _after_\n * the state is updated with any new start/end indices\n *\n * @param {Object} props The props object to be used for updating the axismaps\n * dataStartIndex: The start index of the data series when a brush is applied\n * dataEndIndex: The end index of the data series when a brush is applied\n * updateId: The update id\n * @param {Object} prevState Prev state\n * @return {Object} state New state to set\n */\n var updateStateOfAxisMapsOffsetAndStackGroups = function updateStateOfAxisMapsOffsetAndStackGroups(_ref8, prevState) {\n var props = _ref8.props,\n dataStartIndex = _ref8.dataStartIndex,\n dataEndIndex = _ref8.dataEndIndex,\n updateId = _ref8.updateId;\n if (!validateWidthHeight({\n props: props\n })) {\n return null;\n }\n var children = props.children,\n layout = props.layout,\n stackOffset = props.stackOffset,\n data = props.data,\n reverseStackOrder = props.reverseStackOrder;\n var _getAxisNameByLayout2 = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout2.numericAxisName,\n cateAxisName = _getAxisNameByLayout2.cateAxisName;\n var graphicalItems = findAllByType(children, GraphicalChild);\n var stackGroups = getStackGroupsByAxisId(data, graphicalItems, \"\".concat(numericAxisName, \"Id\"), \"\".concat(cateAxisName, \"Id\"), stackOffset, reverseStackOrder);\n var axisObj = axisComponents.reduce(function (result, entry) {\n var name = \"\".concat(entry.axisType, \"Map\");\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, name, getAxisMap(props, _objectSpread(_objectSpread({}, entry), {}, {\n graphicalItems: graphicalItems,\n stackGroups: entry.axisType === numericAxisName && stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))));\n }, {});\n var offset = calculateOffset(_objectSpread(_objectSpread({}, axisObj), {}, {\n props: props,\n graphicalItems: graphicalItems\n }), prevState === null || prevState === void 0 ? void 0 : prevState.legendBBox);\n Object.keys(axisObj).forEach(function (key) {\n axisObj[key] = formatAxisMap(props, axisObj[key], offset, key.replace('Map', ''), chartName);\n });\n var cateAxisMap = axisObj[\"\".concat(cateAxisName, \"Map\")];\n var ticksObj = tooltipTicksGenerator(cateAxisMap);\n var formattedGraphicalItems = getFormatItems(props, _objectSpread(_objectSpread({}, axisObj), {}, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId,\n graphicalItems: graphicalItems,\n stackGroups: stackGroups,\n offset: offset\n }));\n return _objectSpread(_objectSpread({\n formattedGraphicalItems: formattedGraphicalItems,\n graphicalItems: graphicalItems,\n offset: offset,\n stackGroups: stackGroups\n }, ticksObj), axisObj);\n };\n var CategoricalChartWrapper = /*#__PURE__*/function (_Component) {\n function CategoricalChartWrapper(_props) {\n var _props$id, _props$throttleDelay;\n var _this;\n _classCallCheck(this, CategoricalChartWrapper);\n _this = _callSuper(this, CategoricalChartWrapper, [_props]);\n _defineProperty(_this, \"eventEmitterSymbol\", Symbol('rechartsEventEmitter'));\n _defineProperty(_this, \"accessibilityManager\", new AccessibilityManager());\n _defineProperty(_this, \"handleLegendBBoxUpdate\", function (box) {\n if (box) {\n var _this$state = _this.state,\n dataStartIndex = _this$state.dataStartIndex,\n dataEndIndex = _this$state.dataEndIndex,\n updateId = _this$state.updateId;\n _this.setState(_objectSpread({\n legendBBox: box\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, _objectSpread(_objectSpread({}, _this.state), {}, {\n legendBBox: box\n }))));\n }\n });\n _defineProperty(_this, \"handleReceiveSyncEvent\", function (cId, data, emitter) {\n if (_this.props.syncId === cId) {\n if (emitter === _this.eventEmitterSymbol && typeof _this.props.syncMethod !== 'function') {\n return;\n }\n _this.applySyncEvent(data);\n }\n });\n _defineProperty(_this, \"handleBrushChange\", function (_ref9) {\n var startIndex = _ref9.startIndex,\n endIndex = _ref9.endIndex;\n // Only trigger changes if the extents of the brush have actually changed\n if (startIndex !== _this.state.dataStartIndex || endIndex !== _this.state.dataEndIndex) {\n var updateId = _this.state.updateId;\n _this.setState(function () {\n return _objectSpread({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n updateId: updateId\n }, _this.state));\n });\n _this.triggerSyncEvent({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n });\n }\n });\n /**\n * The handler of mouse entering chart\n * @param {Object} e Event object\n * @return {Null} null\n */\n _defineProperty(_this, \"handleMouseEnter\", function (e) {\n var mouse = _this.getMouseInfo(e);\n if (mouse) {\n var _nextState = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n _this.setState(_nextState);\n _this.triggerSyncEvent(_nextState);\n var onMouseEnter = _this.props.onMouseEnter;\n if (isFunction(onMouseEnter)) {\n onMouseEnter(_nextState, e);\n }\n }\n });\n _defineProperty(_this, \"triggeredAfterMouseMove\", function (e) {\n var mouse = _this.getMouseInfo(e);\n var nextState = mouse ? _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n }) : {\n isTooltipActive: false\n };\n _this.setState(nextState);\n _this.triggerSyncEvent(nextState);\n var onMouseMove = _this.props.onMouseMove;\n if (isFunction(onMouseMove)) {\n onMouseMove(nextState, e);\n }\n });\n /**\n * The handler of mouse entering a scatter\n * @param {Object} el The active scatter\n * @return {Object} no return\n */\n _defineProperty(_this, \"handleItemMouseEnter\", function (el) {\n _this.setState(function () {\n return {\n isTooltipActive: true,\n activeItem: el,\n activePayload: el.tooltipPayload,\n activeCoordinate: el.tooltipPosition || {\n x: el.cx,\n y: el.cy\n }\n };\n });\n });\n /**\n * The handler of mouse leaving a scatter\n * @return {Object} no return\n */\n _defineProperty(_this, \"handleItemMouseLeave\", function () {\n _this.setState(function () {\n return {\n isTooltipActive: false\n };\n });\n });\n /**\n * The handler of mouse moving in chart\n * @param {React.MouseEvent} e Event object\n * @return {void} no return\n */\n _defineProperty(_this, \"handleMouseMove\", function (e) {\n e.persist();\n _this.throttleTriggeredAfterMouseMove(e);\n });\n /**\n * The handler if mouse leaving chart\n * @param {Object} e Event object\n * @return {Null} no return\n */\n _defineProperty(_this, \"handleMouseLeave\", function (e) {\n _this.throttleTriggeredAfterMouseMove.cancel();\n var nextState = {\n isTooltipActive: false\n };\n _this.setState(nextState);\n _this.triggerSyncEvent(nextState);\n var onMouseLeave = _this.props.onMouseLeave;\n if (isFunction(onMouseLeave)) {\n onMouseLeave(nextState, e);\n }\n });\n _defineProperty(_this, \"handleOuterEvent\", function (e) {\n var eventName = getReactEventByType(e);\n var event = get(_this.props, \"\".concat(eventName));\n if (eventName && isFunction(event)) {\n var _mouse;\n var mouse;\n if (/.*touch.*/i.test(eventName)) {\n mouse = _this.getMouseInfo(e.changedTouches[0]);\n } else {\n mouse = _this.getMouseInfo(e);\n }\n event((_mouse = mouse) !== null && _mouse !== void 0 ? _mouse : {}, e);\n }\n });\n _defineProperty(_this, \"handleClick\", function (e) {\n var mouse = _this.getMouseInfo(e);\n if (mouse) {\n var _nextState2 = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n _this.setState(_nextState2);\n _this.triggerSyncEvent(_nextState2);\n var onClick = _this.props.onClick;\n if (isFunction(onClick)) {\n onClick(_nextState2, e);\n }\n }\n });\n _defineProperty(_this, \"handleMouseDown\", function (e) {\n var onMouseDown = _this.props.onMouseDown;\n if (isFunction(onMouseDown)) {\n var _nextState3 = _this.getMouseInfo(e);\n onMouseDown(_nextState3, e);\n }\n });\n _defineProperty(_this, \"handleMouseUp\", function (e) {\n var onMouseUp = _this.props.onMouseUp;\n if (isFunction(onMouseUp)) {\n var _nextState4 = _this.getMouseInfo(e);\n onMouseUp(_nextState4, e);\n }\n });\n _defineProperty(_this, \"handleTouchMove\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.throttleTriggeredAfterMouseMove(e.changedTouches[0]);\n }\n });\n _defineProperty(_this, \"handleTouchStart\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseDown(e.changedTouches[0]);\n }\n });\n _defineProperty(_this, \"handleTouchEnd\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseUp(e.changedTouches[0]);\n }\n });\n _defineProperty(_this, \"handleDoubleClick\", function (e) {\n var onDoubleClick = _this.props.onDoubleClick;\n if (isFunction(onDoubleClick)) {\n var _nextState5 = _this.getMouseInfo(e);\n onDoubleClick(_nextState5, e);\n }\n });\n _defineProperty(_this, \"handleContextMenu\", function (e) {\n var onContextMenu = _this.props.onContextMenu;\n if (isFunction(onContextMenu)) {\n var _nextState6 = _this.getMouseInfo(e);\n onContextMenu(_nextState6, e);\n }\n });\n _defineProperty(_this, \"triggerSyncEvent\", function (data) {\n if (_this.props.syncId !== undefined) {\n eventCenter.emit(SYNC_EVENT, _this.props.syncId, data, _this.eventEmitterSymbol);\n }\n });\n _defineProperty(_this, \"applySyncEvent\", function (data) {\n var _this$props = _this.props,\n layout = _this$props.layout,\n syncMethod = _this$props.syncMethod;\n var updateId = _this.state.updateId;\n var dataStartIndex = data.dataStartIndex,\n dataEndIndex = data.dataEndIndex;\n if (data.dataStartIndex !== undefined || data.dataEndIndex !== undefined) {\n _this.setState(_objectSpread({\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, _this.state)));\n } else if (data.activeTooltipIndex !== undefined) {\n var chartX = data.chartX,\n chartY = data.chartY;\n var activeTooltipIndex = data.activeTooltipIndex;\n var _this$state2 = _this.state,\n offset = _this$state2.offset,\n tooltipTicks = _this$state2.tooltipTicks;\n if (!offset) {\n return;\n }\n if (typeof syncMethod === 'function') {\n // Call a callback function. If there is an application specific algorithm\n activeTooltipIndex = syncMethod(tooltipTicks, data);\n } else if (syncMethod === 'value') {\n // Set activeTooltipIndex to the index with the same value as data.activeLabel\n // For loop instead of findIndex because the latter is very slow in some browsers\n activeTooltipIndex = -1; // in case we cannot find the element\n for (var i = 0; i < tooltipTicks.length; i++) {\n if (tooltipTicks[i].value === data.activeLabel) {\n activeTooltipIndex = i;\n break;\n }\n }\n }\n var viewBox = _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n });\n // When a categorical chart is combined with another chart, the value of chartX\n // and chartY may beyond the boundaries.\n var validateChartX = Math.min(chartX, viewBox.x + viewBox.width);\n var validateChartY = Math.min(chartY, viewBox.y + viewBox.height);\n var activeLabel = tooltipTicks[activeTooltipIndex] && tooltipTicks[activeTooltipIndex].value;\n var activePayload = getTooltipContent(_this.state, _this.props.data, activeTooltipIndex);\n var activeCoordinate = tooltipTicks[activeTooltipIndex] ? {\n x: layout === 'horizontal' ? tooltipTicks[activeTooltipIndex].coordinate : validateChartX,\n y: layout === 'horizontal' ? validateChartY : tooltipTicks[activeTooltipIndex].coordinate\n } : originCoordinate;\n _this.setState(_objectSpread(_objectSpread({}, data), {}, {\n activeLabel: activeLabel,\n activeCoordinate: activeCoordinate,\n activePayload: activePayload,\n activeTooltipIndex: activeTooltipIndex\n }));\n } else {\n _this.setState(data);\n }\n });\n _defineProperty(_this, \"renderCursor\", function (element) {\n var _element$props$active;\n var _this$state3 = _this.state,\n isTooltipActive = _this$state3.isTooltipActive,\n activeCoordinate = _this$state3.activeCoordinate,\n activePayload = _this$state3.activePayload,\n offset = _this$state3.offset,\n activeTooltipIndex = _this$state3.activeTooltipIndex,\n tooltipAxisBandSize = _this$state3.tooltipAxisBandSize;\n var tooltipEventType = _this.getTooltipEventType();\n // The cursor is a part of the Tooltip, and it should be shown (by default) when the Tooltip is active.\n var isActive = (_element$props$active = element.props.active) !== null && _element$props$active !== void 0 ? _element$props$active : isTooltipActive;\n var layout = _this.props.layout;\n var key = element.key || '_recharts-cursor';\n return /*#__PURE__*/React.createElement(Cursor, {\n key: key,\n activeCoordinate: activeCoordinate,\n activePayload: activePayload,\n activeTooltipIndex: activeTooltipIndex,\n chartName: chartName,\n element: element,\n isActive: isActive,\n layout: layout,\n offset: offset,\n tooltipAxisBandSize: tooltipAxisBandSize,\n tooltipEventType: tooltipEventType\n });\n });\n _defineProperty(_this, \"renderPolarAxis\", function (element, displayName, index) {\n var axisType = get(element, 'type.axisType');\n var axisMap = get(_this.state, \"\".concat(axisType, \"Map\"));\n var elementDefaultProps = element.type.defaultProps;\n var elementProps = elementDefaultProps !== undefined ? _objectSpread(_objectSpread({}, elementDefaultProps), element.props) : element.props;\n var axisOption = axisMap && axisMap[elementProps[\"\".concat(axisType, \"Id\")]];\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, axisOption), {}, {\n className: clsx(axisType, axisOption.className),\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n ticks: getTicksOfAxis(axisOption, true)\n }));\n });\n _defineProperty(_this, \"renderPolarGrid\", function (element) {\n var _element$props = element.props,\n radialLines = _element$props.radialLines,\n polarAngles = _element$props.polarAngles,\n polarRadius = _element$props.polarRadius;\n var _this$state4 = _this.state,\n radiusAxisMap = _this$state4.radiusAxisMap,\n angleAxisMap = _this$state4.angleAxisMap;\n var radiusAxis = getAnyElementOfObject(radiusAxisMap);\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n var cx = angleAxis.cx,\n cy = angleAxis.cy,\n innerRadius = angleAxis.innerRadius,\n outerRadius = angleAxis.outerRadius;\n return /*#__PURE__*/cloneElement(element, {\n polarAngles: Array.isArray(polarAngles) ? polarAngles : getTicksOfAxis(angleAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n polarRadius: Array.isArray(polarRadius) ? polarRadius : getTicksOfAxis(radiusAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n key: element.key || 'polar-grid',\n radialLines: radialLines\n });\n });\n /**\n * Draw legend\n * @return {ReactElement} The instance of Legend\n */\n _defineProperty(_this, \"renderLegend\", function () {\n var formattedGraphicalItems = _this.state.formattedGraphicalItems;\n var _this$props2 = _this.props,\n children = _this$props2.children,\n width = _this$props2.width,\n height = _this$props2.height;\n var margin = _this.props.margin || {};\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var props = getLegendProps({\n children: children,\n formattedGraphicalItems: formattedGraphicalItems,\n legendWidth: legendWidth,\n legendContent: legendContent\n });\n if (!props) {\n return null;\n }\n var item = props.item,\n otherProps = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/cloneElement(item, _objectSpread(_objectSpread({}, otherProps), {}, {\n chartWidth: width,\n chartHeight: height,\n margin: margin,\n onBBoxUpdate: _this.handleLegendBBoxUpdate\n }));\n });\n /**\n * Draw Tooltip\n * @return {ReactElement} The instance of Tooltip\n */\n _defineProperty(_this, \"renderTooltip\", function () {\n var _tooltipItem$props$ac;\n var _this$props3 = _this.props,\n children = _this$props3.children,\n accessibilityLayer = _this$props3.accessibilityLayer;\n var tooltipItem = findChildByType(children, Tooltip);\n if (!tooltipItem) {\n return null;\n }\n var _this$state5 = _this.state,\n isTooltipActive = _this$state5.isTooltipActive,\n activeCoordinate = _this$state5.activeCoordinate,\n activePayload = _this$state5.activePayload,\n activeLabel = _this$state5.activeLabel,\n offset = _this$state5.offset;\n\n // The user can set isActive on the Tooltip,\n // and we respect the user to enable customisation.\n // The Tooltip is active if the user has set isActive, or if the tooltip is active due to a mouse event.\n var isActive = (_tooltipItem$props$ac = tooltipItem.props.active) !== null && _tooltipItem$props$ac !== void 0 ? _tooltipItem$props$ac : isTooltipActive;\n return /*#__PURE__*/cloneElement(tooltipItem, {\n viewBox: _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n }),\n active: isActive,\n label: activeLabel,\n payload: isActive ? activePayload : [],\n coordinate: activeCoordinate,\n accessibilityLayer: accessibilityLayer\n });\n });\n _defineProperty(_this, \"renderBrush\", function (element) {\n var _this$props4 = _this.props,\n margin = _this$props4.margin,\n data = _this$props4.data;\n var _this$state6 = _this.state,\n offset = _this$state6.offset,\n dataStartIndex = _this$state6.dataStartIndex,\n dataEndIndex = _this$state6.dataEndIndex,\n updateId = _this$state6.updateId;\n\n // TODO: update brush when children update\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || '_recharts-brush',\n onChange: combineEventHandlers(_this.handleBrushChange, element.props.onChange),\n data: data,\n x: isNumber(element.props.x) ? element.props.x : offset.left,\n y: isNumber(element.props.y) ? element.props.y : offset.top + offset.height + offset.brushBottom - (margin.bottom || 0),\n width: isNumber(element.props.width) ? element.props.width : offset.width,\n startIndex: dataStartIndex,\n endIndex: dataEndIndex,\n updateId: \"brush-\".concat(updateId)\n });\n });\n _defineProperty(_this, \"renderReferenceElement\", function (element, displayName, index) {\n if (!element) {\n return null;\n }\n var _this2 = _this,\n clipPathId = _this2.clipPathId;\n var _this$state7 = _this.state,\n xAxisMap = _this$state7.xAxisMap,\n yAxisMap = _this$state7.yAxisMap,\n offset = _this$state7.offset;\n var elementDefaultProps = element.type.defaultProps || {};\n var _element$props2 = element.props,\n _element$props2$xAxis = _element$props2.xAxisId,\n xAxisId = _element$props2$xAxis === void 0 ? elementDefaultProps.xAxisId : _element$props2$xAxis,\n _element$props2$yAxis = _element$props2.yAxisId,\n yAxisId = _element$props2$yAxis === void 0 ? elementDefaultProps.yAxisId : _element$props2$yAxis;\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n xAxis: xAxisMap[xAxisId],\n yAxis: yAxisMap[yAxisId],\n viewBox: {\n x: offset.left,\n y: offset.top,\n width: offset.width,\n height: offset.height\n },\n clipPathId: clipPathId\n });\n });\n _defineProperty(_this, \"renderActivePoints\", function (_ref10) {\n var item = _ref10.item,\n activePoint = _ref10.activePoint,\n basePoint = _ref10.basePoint,\n childIndex = _ref10.childIndex,\n isRange = _ref10.isRange;\n var result = [];\n // item is not a React Element so we don't need to resolve defaultProps.\n var key = item.props.key;\n var itemItemProps = item.item.type.defaultProps !== undefined ? _objectSpread(_objectSpread({}, item.item.type.defaultProps), item.item.props) : item.item.props;\n var activeDot = itemItemProps.activeDot,\n dataKey = itemItemProps.dataKey;\n var dotProps = _objectSpread(_objectSpread({\n index: childIndex,\n dataKey: dataKey,\n cx: activePoint.x,\n cy: activePoint.y,\n r: 4,\n fill: getMainColorOfGraphicItem(item.item),\n strokeWidth: 2,\n stroke: '#fff',\n payload: activePoint.payload,\n value: activePoint.value\n }, filterProps(activeDot, false)), adaptEventHandlers(activeDot));\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, dotProps, \"\".concat(key, \"-activePoint-\").concat(childIndex)));\n if (basePoint) {\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, _objectSpread(_objectSpread({}, dotProps), {}, {\n cx: basePoint.x,\n cy: basePoint.y\n }), \"\".concat(key, \"-basePoint-\").concat(childIndex)));\n } else if (isRange) {\n result.push(null);\n }\n return result;\n });\n _defineProperty(_this, \"renderGraphicChild\", function (element, displayName, index) {\n var item = _this.filterFormatItem(element, displayName, index);\n if (!item) {\n return null;\n }\n var tooltipEventType = _this.getTooltipEventType();\n var _this$state8 = _this.state,\n isTooltipActive = _this$state8.isTooltipActive,\n tooltipAxis = _this$state8.tooltipAxis,\n activeTooltipIndex = _this$state8.activeTooltipIndex,\n activeLabel = _this$state8.activeLabel;\n var children = _this.props.children;\n var tooltipItem = findChildByType(children, Tooltip);\n // item is not a React Element so we don't need to resolve defaultProps\n var _item$props = item.props,\n points = _item$props.points,\n isRange = _item$props.isRange,\n baseLine = _item$props.baseLine;\n var itemItemProps = item.item.type.defaultProps !== undefined ? _objectSpread(_objectSpread({}, item.item.type.defaultProps), item.item.props) : item.item.props;\n var activeDot = itemItemProps.activeDot,\n hide = itemItemProps.hide,\n activeBar = itemItemProps.activeBar,\n activeShape = itemItemProps.activeShape;\n var hasActive = Boolean(!hide && isTooltipActive && tooltipItem && (activeDot || activeBar || activeShape));\n var itemEvents = {};\n if (tooltipEventType !== 'axis' && tooltipItem && tooltipItem.props.trigger === 'click') {\n itemEvents = {\n onClick: combineEventHandlers(_this.handleItemMouseEnter, element.props.onClick)\n };\n } else if (tooltipEventType !== 'axis') {\n itemEvents = {\n onMouseLeave: combineEventHandlers(_this.handleItemMouseLeave, element.props.onMouseLeave),\n onMouseEnter: combineEventHandlers(_this.handleItemMouseEnter, element.props.onMouseEnter)\n };\n }\n var graphicalItem = /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, item.props), itemEvents));\n function findWithPayload(entry) {\n // TODO needs to verify dataKey is Function\n return typeof tooltipAxis.dataKey === 'function' ? tooltipAxis.dataKey(entry.payload) : null;\n }\n if (hasActive) {\n if (activeTooltipIndex >= 0) {\n var activePoint, basePoint;\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // number transform to string\n var specifiedKey = typeof tooltipAxis.dataKey === 'function' ? findWithPayload : 'payload.'.concat(tooltipAxis.dataKey.toString());\n activePoint = findEntryInArray(points, specifiedKey, activeLabel);\n basePoint = isRange && baseLine && findEntryInArray(baseLine, specifiedKey, activeLabel);\n } else {\n activePoint = points === null || points === void 0 ? void 0 : points[activeTooltipIndex];\n basePoint = isRange && baseLine && baseLine[activeTooltipIndex];\n }\n if (activeShape || activeBar) {\n var activeIndex = element.props.activeIndex !== undefined ? element.props.activeIndex : activeTooltipIndex;\n return [/*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread(_objectSpread({}, item.props), itemEvents), {}, {\n activeIndex: activeIndex\n })), null, null];\n }\n if (!isNil(activePoint)) {\n return [graphicalItem].concat(_toConsumableArray(_this.renderActivePoints({\n item: item,\n activePoint: activePoint,\n basePoint: basePoint,\n childIndex: activeTooltipIndex,\n isRange: isRange\n })));\n }\n } else {\n var _this$getItemByXY;\n /**\n * We hit this block if consumer uses a Tooltip without XAxis and/or YAxis.\n * In which case, this.state.activeTooltipIndex never gets set\n * because the mouse events that trigger that value getting set never get trigged without the axis components.\n *\n * An example usage case is a FunnelChart\n */\n var _ref11 = (_this$getItemByXY = _this.getItemByXY(_this.state.activeCoordinate)) !== null && _this$getItemByXY !== void 0 ? _this$getItemByXY : {\n graphicalItem: graphicalItem\n },\n _ref11$graphicalItem = _ref11.graphicalItem,\n _ref11$graphicalItem$ = _ref11$graphicalItem.item,\n xyItem = _ref11$graphicalItem$ === void 0 ? element : _ref11$graphicalItem$,\n childIndex = _ref11$graphicalItem.childIndex;\n var elementProps = _objectSpread(_objectSpread(_objectSpread({}, item.props), itemEvents), {}, {\n activeIndex: childIndex\n });\n return [/*#__PURE__*/cloneElement(xyItem, elementProps), null, null];\n }\n }\n if (isRange) {\n return [graphicalItem, null, null];\n }\n return [graphicalItem, null];\n });\n _defineProperty(_this, \"renderCustomized\", function (element, displayName, index) {\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({\n key: \"recharts-customized-\".concat(index)\n }, _this.props), _this.state));\n });\n _defineProperty(_this, \"renderMap\", {\n CartesianGrid: {\n handler: renderAsIs,\n once: true\n },\n ReferenceArea: {\n handler: _this.renderReferenceElement\n },\n ReferenceLine: {\n handler: renderAsIs\n },\n ReferenceDot: {\n handler: _this.renderReferenceElement\n },\n XAxis: {\n handler: renderAsIs\n },\n YAxis: {\n handler: renderAsIs\n },\n Brush: {\n handler: _this.renderBrush,\n once: true\n },\n Bar: {\n handler: _this.renderGraphicChild\n },\n Line: {\n handler: _this.renderGraphicChild\n },\n Area: {\n handler: _this.renderGraphicChild\n },\n Radar: {\n handler: _this.renderGraphicChild\n },\n RadialBar: {\n handler: _this.renderGraphicChild\n },\n Scatter: {\n handler: _this.renderGraphicChild\n },\n Pie: {\n handler: _this.renderGraphicChild\n },\n Funnel: {\n handler: _this.renderGraphicChild\n },\n Tooltip: {\n handler: _this.renderCursor,\n once: true\n },\n PolarGrid: {\n handler: _this.renderPolarGrid,\n once: true\n },\n PolarAngleAxis: {\n handler: _this.renderPolarAxis\n },\n PolarRadiusAxis: {\n handler: _this.renderPolarAxis\n },\n Customized: {\n handler: _this.renderCustomized\n }\n });\n _this.clipPathId = \"\".concat((_props$id = _props.id) !== null && _props$id !== void 0 ? _props$id : uniqueId('recharts'), \"-clip\");\n\n // trigger 60fps\n _this.throttleTriggeredAfterMouseMove = throttle(_this.triggeredAfterMouseMove, (_props$throttleDelay = _props.throttleDelay) !== null && _props$throttleDelay !== void 0 ? _props$throttleDelay : 1000 / 60);\n _this.state = {};\n return _this;\n }\n _inherits(CategoricalChartWrapper, _Component);\n return _createClass(CategoricalChartWrapper, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props$margin$le, _this$props$margin$to;\n this.addListener();\n this.accessibilityManager.setDetails({\n container: this.container,\n offset: {\n left: (_this$props$margin$le = this.props.margin.left) !== null && _this$props$margin$le !== void 0 ? _this$props$margin$le : 0,\n top: (_this$props$margin$to = this.props.margin.top) !== null && _this$props$margin$to !== void 0 ? _this$props$margin$to : 0\n },\n coordinateList: this.state.tooltipTicks,\n mouseHandlerCallback: this.triggeredAfterMouseMove,\n layout: this.props.layout\n });\n this.displayDefaultTooltip();\n }\n }, {\n key: \"displayDefaultTooltip\",\n value: function displayDefaultTooltip() {\n var _this$props5 = this.props,\n children = _this$props5.children,\n data = _this$props5.data,\n height = _this$props5.height,\n layout = _this$props5.layout;\n var tooltipElem = findChildByType(children, Tooltip);\n // If the chart doesn't include a element, there's no tooltip to display\n if (!tooltipElem) {\n return;\n }\n var defaultIndex = tooltipElem.props.defaultIndex;\n\n // Protect against runtime errors\n if (typeof defaultIndex !== 'number' || defaultIndex < 0 || defaultIndex > this.state.tooltipTicks.length - 1) {\n return;\n }\n var activeLabel = this.state.tooltipTicks[defaultIndex] && this.state.tooltipTicks[defaultIndex].value;\n var activePayload = getTooltipContent(this.state, data, defaultIndex, activeLabel);\n var independentAxisCoord = this.state.tooltipTicks[defaultIndex].coordinate;\n var dependentAxisCoord = (this.state.offset.top + height) / 2;\n var isHorizontal = layout === 'horizontal';\n var activeCoordinate = isHorizontal ? {\n x: independentAxisCoord,\n y: dependentAxisCoord\n } : {\n y: independentAxisCoord,\n x: dependentAxisCoord\n };\n\n // Unlike other chart types, scatter plot's tooltip positions rely on both X and Y coordinates. Only the scatter plot\n // element knows its own Y coordinates.\n // If there's a scatter plot, we'll want to grab that element for an interrogation.\n var scatterPlotElement = this.state.formattedGraphicalItems.find(function (_ref12) {\n var item = _ref12.item;\n return item.type.name === 'Scatter';\n });\n if (scatterPlotElement) {\n activeCoordinate = _objectSpread(_objectSpread({}, activeCoordinate), scatterPlotElement.props.points[defaultIndex].tooltipPosition);\n activePayload = scatterPlotElement.props.points[defaultIndex].tooltipPayload;\n }\n var nextState = {\n activeTooltipIndex: defaultIndex,\n isTooltipActive: true,\n activeLabel: activeLabel,\n activePayload: activePayload,\n activeCoordinate: activeCoordinate\n };\n this.setState(nextState);\n this.renderCursor(tooltipElem);\n\n // Make sure that anyone who keyboard-only users who tab to the chart will start their\n // cursors at defaultIndex\n this.accessibilityManager.setIndex(defaultIndex);\n }\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate(prevProps, prevState) {\n if (!this.props.accessibilityLayer) {\n return null;\n }\n if (this.state.tooltipTicks !== prevState.tooltipTicks) {\n this.accessibilityManager.setDetails({\n coordinateList: this.state.tooltipTicks\n });\n }\n if (this.props.layout !== prevProps.layout) {\n this.accessibilityManager.setDetails({\n layout: this.props.layout\n });\n }\n if (this.props.margin !== prevProps.margin) {\n var _this$props$margin$le2, _this$props$margin$to2;\n this.accessibilityManager.setDetails({\n offset: {\n left: (_this$props$margin$le2 = this.props.margin.left) !== null && _this$props$margin$le2 !== void 0 ? _this$props$margin$le2 : 0,\n top: (_this$props$margin$to2 = this.props.margin.top) !== null && _this$props$margin$to2 !== void 0 ? _this$props$margin$to2 : 0\n }\n });\n }\n\n // Something has to be returned for getSnapshotBeforeUpdate\n return null;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n // Check to see if the Tooltip updated. If so, re-check default tooltip position\n if (!isChildrenEqual([findChildByType(prevProps.children, Tooltip)], [findChildByType(this.props.children, Tooltip)])) {\n this.displayDefaultTooltip();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.removeListener();\n this.throttleTriggeredAfterMouseMove.cancel();\n }\n }, {\n key: \"getTooltipEventType\",\n value: function getTooltipEventType() {\n var tooltipItem = findChildByType(this.props.children, Tooltip);\n if (tooltipItem && typeof tooltipItem.props.shared === 'boolean') {\n var eventType = tooltipItem.props.shared ? 'axis' : 'item';\n return validateTooltipEventTypes.indexOf(eventType) >= 0 ? eventType : defaultTooltipEventType;\n }\n return defaultTooltipEventType;\n }\n\n /**\n * Get the information of mouse in chart, return null when the mouse is not in the chart\n * @param {MousePointer} event The event object\n * @return {Object} Mouse data\n */\n }, {\n key: \"getMouseInfo\",\n value: function getMouseInfo(event) {\n if (!this.container) {\n return null;\n }\n var element = this.container;\n var boundingRect = element.getBoundingClientRect();\n var containerOffset = getOffset(boundingRect);\n var e = {\n chartX: Math.round(event.pageX - containerOffset.left),\n chartY: Math.round(event.pageY - containerOffset.top)\n };\n var scale = boundingRect.width / element.offsetWidth || 1;\n var rangeObj = this.inRange(e.chartX, e.chartY, scale);\n if (!rangeObj) {\n return null;\n }\n var _this$state9 = this.state,\n xAxisMap = _this$state9.xAxisMap,\n yAxisMap = _this$state9.yAxisMap;\n var tooltipEventType = this.getTooltipEventType();\n if (tooltipEventType !== 'axis' && xAxisMap && yAxisMap) {\n var xScale = getAnyElementOfObject(xAxisMap).scale;\n var yScale = getAnyElementOfObject(yAxisMap).scale;\n var xValue = xScale && xScale.invert ? xScale.invert(e.chartX) : null;\n var yValue = yScale && yScale.invert ? yScale.invert(e.chartY) : null;\n return _objectSpread(_objectSpread({}, e), {}, {\n xValue: xValue,\n yValue: yValue\n });\n }\n var toolTipData = getTooltipData(this.state, this.props.data, this.props.layout, rangeObj);\n if (toolTipData) {\n return _objectSpread(_objectSpread({}, e), toolTipData);\n }\n return null;\n }\n }, {\n key: \"inRange\",\n value: function inRange(x, y) {\n var scale = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var layout = this.props.layout;\n var scaledX = x / scale,\n scaledY = y / scale;\n if (layout === 'horizontal' || layout === 'vertical') {\n var offset = this.state.offset;\n var isInRange = scaledX >= offset.left && scaledX <= offset.left + offset.width && scaledY >= offset.top && scaledY <= offset.top + offset.height;\n return isInRange ? {\n x: scaledX,\n y: scaledY\n } : null;\n }\n var _this$state10 = this.state,\n angleAxisMap = _this$state10.angleAxisMap,\n radiusAxisMap = _this$state10.radiusAxisMap;\n if (angleAxisMap && radiusAxisMap) {\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n return inRangeOfSector({\n x: scaledX,\n y: scaledY\n }, angleAxis);\n }\n return null;\n }\n }, {\n key: \"parseEventsOfWrapper\",\n value: function parseEventsOfWrapper() {\n var children = this.props.children;\n var tooltipEventType = this.getTooltipEventType();\n var tooltipItem = findChildByType(children, Tooltip);\n var tooltipEvents = {};\n if (tooltipItem && tooltipEventType === 'axis') {\n if (tooltipItem.props.trigger === 'click') {\n tooltipEvents = {\n onClick: this.handleClick\n };\n } else {\n tooltipEvents = {\n onMouseEnter: this.handleMouseEnter,\n onDoubleClick: this.handleDoubleClick,\n onMouseMove: this.handleMouseMove,\n onMouseLeave: this.handleMouseLeave,\n onTouchMove: this.handleTouchMove,\n onTouchStart: this.handleTouchStart,\n onTouchEnd: this.handleTouchEnd,\n onContextMenu: this.handleContextMenu\n };\n }\n }\n\n // @ts-expect-error adaptEventHandlers expects DOM Event but generateCategoricalChart works with React UIEvents\n var outerEvents = adaptEventHandlers(this.props, this.handleOuterEvent);\n return _objectSpread(_objectSpread({}, outerEvents), tooltipEvents);\n }\n }, {\n key: \"addListener\",\n value: function addListener() {\n eventCenter.on(SYNC_EVENT, this.handleReceiveSyncEvent);\n }\n }, {\n key: \"removeListener\",\n value: function removeListener() {\n eventCenter.removeListener(SYNC_EVENT, this.handleReceiveSyncEvent);\n }\n }, {\n key: \"filterFormatItem\",\n value: function filterFormatItem(item, displayName, childIndex) {\n var formattedGraphicalItems = this.state.formattedGraphicalItems;\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var entry = formattedGraphicalItems[i];\n if (entry.item === item || entry.props.key === item.key || displayName === getDisplayName(entry.item.type) && childIndex === entry.childIndex) {\n return entry;\n }\n }\n return null;\n }\n }, {\n key: \"renderClipPath\",\n value: function renderClipPath() {\n var clipPathId = this.clipPathId;\n var _this$state$offset = this.state.offset,\n left = _this$state$offset.left,\n top = _this$state$offset.top,\n height = _this$state$offset.height,\n width = _this$state$offset.width;\n return /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: clipPathId\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left,\n y: top,\n height: height,\n width: width\n })));\n }\n }, {\n key: \"getXScales\",\n value: function getXScales() {\n var xAxisMap = this.state.xAxisMap;\n return xAxisMap ? Object.entries(xAxisMap).reduce(function (res, _ref13) {\n var _ref14 = _slicedToArray(_ref13, 2),\n axisId = _ref14[0],\n axisProps = _ref14[1];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getYScales\",\n value: function getYScales() {\n var yAxisMap = this.state.yAxisMap;\n return yAxisMap ? Object.entries(yAxisMap).reduce(function (res, _ref15) {\n var _ref16 = _slicedToArray(_ref15, 2),\n axisId = _ref16[0],\n axisProps = _ref16[1];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getXScaleByAxisId\",\n value: function getXScaleByAxisId(axisId) {\n var _this$state$xAxisMap;\n return (_this$state$xAxisMap = this.state.xAxisMap) === null || _this$state$xAxisMap === void 0 || (_this$state$xAxisMap = _this$state$xAxisMap[axisId]) === null || _this$state$xAxisMap === void 0 ? void 0 : _this$state$xAxisMap.scale;\n }\n }, {\n key: \"getYScaleByAxisId\",\n value: function getYScaleByAxisId(axisId) {\n var _this$state$yAxisMap;\n return (_this$state$yAxisMap = this.state.yAxisMap) === null || _this$state$yAxisMap === void 0 || (_this$state$yAxisMap = _this$state$yAxisMap[axisId]) === null || _this$state$yAxisMap === void 0 ? void 0 : _this$state$yAxisMap.scale;\n }\n }, {\n key: \"getItemByXY\",\n value: function getItemByXY(chartXY) {\n var _this$state11 = this.state,\n formattedGraphicalItems = _this$state11.formattedGraphicalItems,\n activeItem = _this$state11.activeItem;\n if (formattedGraphicalItems && formattedGraphicalItems.length) {\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var graphicalItem = formattedGraphicalItems[i];\n // graphicalItem is not a React Element so we don't need to resolve defaultProps\n var props = graphicalItem.props,\n item = graphicalItem.item;\n var itemProps = item.type.defaultProps !== undefined ? _objectSpread(_objectSpread({}, item.type.defaultProps), item.props) : item.props;\n var itemDisplayName = getDisplayName(item.type);\n if (itemDisplayName === 'Bar') {\n var activeBarItem = (props.data || []).find(function (entry) {\n return isInRectangle(chartXY, entry);\n });\n if (activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: activeBarItem\n };\n }\n } else if (itemDisplayName === 'RadialBar') {\n var _activeBarItem = (props.data || []).find(function (entry) {\n return inRangeOfSector(chartXY, entry);\n });\n if (_activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: _activeBarItem\n };\n }\n } else if (isFunnel(graphicalItem, activeItem) || isPie(graphicalItem, activeItem) || isScatter(graphicalItem, activeItem)) {\n var activeIndex = getActiveShapeIndexForTooltip({\n graphicalItem: graphicalItem,\n activeTooltipItem: activeItem,\n itemData: itemProps.data\n });\n var childIndex = itemProps.activeIndex === undefined ? activeIndex : itemProps.activeIndex;\n return {\n graphicalItem: _objectSpread(_objectSpread({}, graphicalItem), {}, {\n childIndex: childIndex\n }),\n payload: isScatter(graphicalItem, activeItem) ? itemProps.data[activeIndex] : graphicalItem.props.data[activeIndex]\n };\n }\n }\n }\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n if (!validateWidthHeight(this)) {\n return null;\n }\n var _this$props6 = this.props,\n children = _this$props6.children,\n className = _this$props6.className,\n width = _this$props6.width,\n height = _this$props6.height,\n style = _this$props6.style,\n compact = _this$props6.compact,\n title = _this$props6.title,\n desc = _this$props6.desc,\n others = _objectWithoutProperties(_this$props6, _excluded2);\n var attrs = filterProps(others, false);\n\n // The \"compact\" mode is mainly used as the panorama within Brush\n if (compact) {\n return /*#__PURE__*/React.createElement(ChartLayoutContextProvider, {\n state: this.state,\n width: this.props.width,\n height: this.props.height,\n clipPathId: this.clipPathId\n }, /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height,\n title: title,\n desc: desc\n }), this.renderClipPath(), renderByOrder(children, this.renderMap)));\n }\n if (this.props.accessibilityLayer) {\n var _this$props$tabIndex, _this$props$role;\n // Set tabIndex to 0 by default (can be overwritten)\n attrs.tabIndex = (_this$props$tabIndex = this.props.tabIndex) !== null && _this$props$tabIndex !== void 0 ? _this$props$tabIndex : 0;\n // Set role to img by default (can be overwritten)\n attrs.role = (_this$props$role = this.props.role) !== null && _this$props$role !== void 0 ? _this$props$role : 'application';\n attrs.onKeyDown = function (e) {\n _this3.accessibilityManager.keyboardEvent(e);\n // 'onKeyDown' is not currently a supported prop that can be passed through\n // if it's added, this should be added: this.props.onKeyDown(e);\n };\n attrs.onFocus = function () {\n _this3.accessibilityManager.focus();\n // 'onFocus' is not currently a supported prop that can be passed through\n // if it's added, the focus event should be forwarded to the prop\n };\n }\n var events = this.parseEventsOfWrapper();\n return /*#__PURE__*/React.createElement(ChartLayoutContextProvider, {\n state: this.state,\n width: this.props.width,\n height: this.props.height,\n clipPathId: this.clipPathId\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx('recharts-wrapper', className),\n style: _objectSpread({\n position: 'relative',\n cursor: 'default',\n width: width,\n height: height\n }, style)\n }, events, {\n ref: function ref(node) {\n _this3.container = node;\n }\n }), /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height,\n title: title,\n desc: desc,\n style: FULL_WIDTH_AND_HEIGHT\n }), this.renderClipPath(), renderByOrder(children, this.renderMap)), this.renderLegend(), this.renderTooltip()));\n }\n }]);\n }(Component);\n _defineProperty(CategoricalChartWrapper, \"displayName\", chartName);\n // todo join specific chart propTypes\n _defineProperty(CategoricalChartWrapper, \"defaultProps\", _objectSpread({\n layout: 'horizontal',\n stackOffset: 'none',\n barCategoryGap: '10%',\n barGap: 4,\n margin: {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n },\n reverseStackOrder: false,\n syncMethod: 'index'\n }, defaultProps));\n _defineProperty(CategoricalChartWrapper, \"getDerivedStateFromProps\", function (nextProps, prevState) {\n var dataKey = nextProps.dataKey,\n data = nextProps.data,\n children = nextProps.children,\n width = nextProps.width,\n height = nextProps.height,\n layout = nextProps.layout,\n stackOffset = nextProps.stackOffset,\n margin = nextProps.margin;\n var dataStartIndex = prevState.dataStartIndex,\n dataEndIndex = prevState.dataEndIndex;\n if (prevState.updateId === undefined) {\n var defaultState = createDefaultState(nextProps);\n return _objectSpread(_objectSpread(_objectSpread({}, defaultState), {}, {\n updateId: 0\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, defaultState), {}, {\n updateId: 0\n }), prevState)), {}, {\n prevDataKey: dataKey,\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n if (dataKey !== prevState.prevDataKey || data !== prevState.prevData || width !== prevState.prevWidth || height !== prevState.prevHeight || layout !== prevState.prevLayout || stackOffset !== prevState.prevStackOffset || !shallowEqual(margin, prevState.prevMargin)) {\n var _defaultState = createDefaultState(nextProps);\n\n // Fixes https://github.com/recharts/recharts/issues/2143\n var keepFromPrevState = {\n // (chartX, chartY) are (0,0) in default state, but we want to keep the last mouse position to avoid\n // any flickering\n chartX: prevState.chartX,\n chartY: prevState.chartY,\n // The tooltip should stay active when it was active in the previous render. If this is not\n // the case, the tooltip disappears and immediately re-appears, causing a flickering effect\n isTooltipActive: prevState.isTooltipActive\n };\n var updatesToState = _objectSpread(_objectSpread({}, getTooltipData(prevState, data, layout)), {}, {\n updateId: prevState.updateId + 1\n });\n var newState = _objectSpread(_objectSpread(_objectSpread({}, _defaultState), keepFromPrevState), updatesToState);\n return _objectSpread(_objectSpread(_objectSpread({}, newState), updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread({\n props: nextProps\n }, newState), prevState)), {}, {\n prevDataKey: dataKey,\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n if (!isChildrenEqual(children, prevState.prevChildren)) {\n var _brush$props$startInd, _brush$props, _brush$props$endIndex, _brush$props2;\n // specifically check for Brush - if it exists and the start and end indexes are different, re-render with the new ones\n var brush = findChildByType(children, Brush);\n var startIndex = brush ? (_brush$props$startInd = (_brush$props = brush.props) === null || _brush$props === void 0 ? void 0 : _brush$props.startIndex) !== null && _brush$props$startInd !== void 0 ? _brush$props$startInd : dataStartIndex : dataStartIndex;\n var endIndex = brush ? (_brush$props$endIndex = (_brush$props2 = brush.props) === null || _brush$props2 === void 0 ? void 0 : _brush$props2.endIndex) !== null && _brush$props$endIndex !== void 0 ? _brush$props$endIndex : dataEndIndex : dataEndIndex;\n var hasDifferentStartOrEndIndex = startIndex !== dataStartIndex || endIndex !== dataEndIndex;\n\n // update configuration in children\n var hasGlobalData = !isNil(data);\n var newUpdateId = hasGlobalData && !hasDifferentStartOrEndIndex ? prevState.updateId : prevState.updateId + 1;\n return _objectSpread(_objectSpread({\n updateId: newUpdateId\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, prevState), {}, {\n updateId: newUpdateId,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n }), prevState)), {}, {\n prevChildren: children,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n });\n }\n return null;\n });\n _defineProperty(CategoricalChartWrapper, \"renderActiveDot\", function (option, props, key) {\n var dot;\n if ( /*#__PURE__*/isValidElement(option)) {\n dot = /*#__PURE__*/cloneElement(option, props);\n } else if (isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, props);\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-active-dot\",\n key: key\n }, dot);\n });\n var CategoricalChart = /*#__PURE__*/forwardRef(function CategoricalChart(props, ref) {\n return /*#__PURE__*/React.createElement(CategoricalChartWrapper, _extends({}, props, {\n ref: ref\n }));\n });\n CategoricalChart.displayName = CategoricalChartWrapper.displayName;\n return CategoricalChart;\n};","import { isNumber } from './DataUtils';\n/**\n * Takes a domain and user props to determine whether he provided the domain via props or if we need to calculate it.\n * @param {AxisDomain} domain The potential domain from props\n * @param {Boolean} allowDataOverflow from props\n * @param {String} axisType from props\n * @returns {Boolean} `true` if domain is specified by user\n */\nexport function isDomainSpecifiedByUser(domain, allowDataOverflow, axisType) {\n if (axisType === 'number' && allowDataOverflow === true && Array.isArray(domain)) {\n var domainStart = domain === null || domain === void 0 ? void 0 : domain[0];\n var domainEnd = domain === null || domain === void 0 ? void 0 : domain[1];\n\n /*\n * The `isNumber` check is needed because the user could also provide strings like \"dataMin\" via the domain props.\n * In such case, we have to compute the domain from the data.\n */\n if (!!domainStart && !!domainEnd && isNumber(domainStart) && isNumber(domainEnd)) {\n return true;\n }\n }\n return false;\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"offset\"];\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { cloneElement, isValidElement, createElement } from 'react';\nimport isNil from 'lodash/isNil';\nimport isFunction from 'lodash/isFunction';\nimport isObject from 'lodash/isObject';\nimport clsx from 'clsx';\nimport { Text } from './Text';\nimport { findAllByType, filterProps } from '../util/ReactUtils';\nimport { isNumOrStr, isNumber, isPercent, getPercentValue, uniqueId, mathSign } from '../util/DataUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nvar getLabel = function getLabel(props) {\n var value = props.value,\n formatter = props.formatter;\n var label = isNil(props.children) ? value : props.children;\n if (isFunction(formatter)) {\n return formatter(label);\n }\n return label;\n};\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n};\nvar renderRadialLabel = function renderRadialLabel(labelProps, label, attrs) {\n var position = labelProps.position,\n viewBox = labelProps.viewBox,\n offset = labelProps.offset,\n className = labelProps.className;\n var _ref = viewBox,\n cx = _ref.cx,\n cy = _ref.cy,\n innerRadius = _ref.innerRadius,\n outerRadius = _ref.outerRadius,\n startAngle = _ref.startAngle,\n endAngle = _ref.endAngle,\n clockWise = _ref.clockWise;\n var radius = (innerRadius + outerRadius) / 2;\n var deltaAngle = getDeltaAngle(startAngle, endAngle);\n var sign = deltaAngle >= 0 ? 1 : -1;\n var labelAngle, direction;\n if (position === 'insideStart') {\n labelAngle = startAngle + sign * offset;\n direction = clockWise;\n } else if (position === 'insideEnd') {\n labelAngle = endAngle - sign * offset;\n direction = !clockWise;\n } else if (position === 'end') {\n labelAngle = endAngle + sign * offset;\n direction = clockWise;\n }\n direction = deltaAngle <= 0 ? direction : !direction;\n var startPoint = polarToCartesian(cx, cy, radius, labelAngle);\n var endPoint = polarToCartesian(cx, cy, radius, labelAngle + (direction ? 1 : -1) * 359);\n var path = \"M\".concat(startPoint.x, \",\").concat(startPoint.y, \"\\n A\").concat(radius, \",\").concat(radius, \",0,1,\").concat(direction ? 0 : 1, \",\\n \").concat(endPoint.x, \",\").concat(endPoint.y);\n var id = isNil(labelProps.id) ? uniqueId('recharts-radial-line-') : labelProps.id;\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, attrs, {\n dominantBaseline: \"central\",\n className: clsx('recharts-radial-bar-label', className)\n }), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: id,\n d: path\n })), /*#__PURE__*/React.createElement(\"textPath\", {\n xlinkHref: \"#\".concat(id)\n }, label));\n};\nvar getAttrsOfPolarLabel = function getAttrsOfPolarLabel(props) {\n var viewBox = props.viewBox,\n offset = props.offset,\n position = props.position;\n var _ref2 = viewBox,\n cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var midAngle = (startAngle + endAngle) / 2;\n if (position === 'outside') {\n var _polarToCartesian = polarToCartesian(cx, cy, outerRadius + offset, midAngle),\n _x = _polarToCartesian.x,\n _y = _polarToCartesian.y;\n return {\n x: _x,\n y: _y,\n textAnchor: _x >= cx ? 'start' : 'end',\n verticalAnchor: 'middle'\n };\n }\n if (position === 'center') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n }\n if (position === 'centerTop') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n if (position === 'centerBottom') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'end'\n };\n }\n var r = (innerRadius + outerRadius) / 2;\n var _polarToCartesian2 = polarToCartesian(cx, cy, r, midAngle),\n x = _polarToCartesian2.x,\n y = _polarToCartesian2.y;\n return {\n x: x,\n y: y,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n};\nvar getAttrsOfCartesianLabel = function getAttrsOfCartesianLabel(props) {\n var viewBox = props.viewBox,\n parentViewBox = props.parentViewBox,\n offset = props.offset,\n position = props.position;\n var _ref3 = viewBox,\n x = _ref3.x,\n y = _ref3.y,\n width = _ref3.width,\n height = _ref3.height;\n\n // Define vertical offsets and position inverts based on the value being positive or negative\n var verticalSign = height >= 0 ? 1 : -1;\n var verticalOffset = verticalSign * offset;\n var verticalEnd = verticalSign > 0 ? 'end' : 'start';\n var verticalStart = verticalSign > 0 ? 'start' : 'end';\n\n // Define horizontal offsets and position inverts based on the value being positive or negative\n var horizontalSign = width >= 0 ? 1 : -1;\n var horizontalOffset = horizontalSign * offset;\n var horizontalEnd = horizontalSign > 0 ? 'end' : 'start';\n var horizontalStart = horizontalSign > 0 ? 'start' : 'end';\n if (position === 'top') {\n var attrs = {\n x: x + width / 2,\n y: y - verticalSign * offset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n };\n return _objectSpread(_objectSpread({}, attrs), parentViewBox ? {\n height: Math.max(y - parentViewBox.y, 0),\n width: width\n } : {});\n }\n if (position === 'bottom') {\n var _attrs = {\n x: x + width / 2,\n y: y + height + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n };\n return _objectSpread(_objectSpread({}, _attrs), parentViewBox ? {\n height: Math.max(parentViewBox.y + parentViewBox.height - (y + height), 0),\n width: width\n } : {});\n }\n if (position === 'left') {\n var _attrs2 = {\n x: x - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs2), parentViewBox ? {\n width: Math.max(_attrs2.x - parentViewBox.x, 0),\n height: height\n } : {});\n }\n if (position === 'right') {\n var _attrs3 = {\n x: x + width + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs3), parentViewBox ? {\n width: Math.max(parentViewBox.x + parentViewBox.width - _attrs3.x, 0),\n height: height\n } : {});\n }\n var sizeAttrs = parentViewBox ? {\n width: width,\n height: height\n } : {};\n if (position === 'insideLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n if (position === 'insideRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n if (position === 'insideTop') {\n return _objectSpread({\n x: x + width / 2,\n y: y + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideBottom') {\n return _objectSpread({\n x: x + width / 2,\n y: y + height - verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (position === 'insideTopLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideTopRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideBottomLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (position === 'insideBottomRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (isObject(position) && (isNumber(position.x) || isPercent(position.x)) && (isNumber(position.y) || isPercent(position.y))) {\n return _objectSpread({\n x: x + getPercentValue(position.x, width),\n y: y + getPercentValue(position.y, height),\n textAnchor: 'end',\n verticalAnchor: 'end'\n }, sizeAttrs);\n }\n return _objectSpread({\n x: x + width / 2,\n y: y + height / 2,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n }, sizeAttrs);\n};\nvar isPolar = function isPolar(viewBox) {\n return 'cx' in viewBox && isNumber(viewBox.cx);\n};\nexport function Label(_ref4) {\n var _ref4$offset = _ref4.offset,\n offset = _ref4$offset === void 0 ? 5 : _ref4$offset,\n restProps = _objectWithoutProperties(_ref4, _excluded);\n var props = _objectSpread({\n offset: offset\n }, restProps);\n var viewBox = props.viewBox,\n position = props.position,\n value = props.value,\n children = props.children,\n content = props.content,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n textBreakAll = props.textBreakAll;\n if (!viewBox || isNil(value) && isNil(children) && ! /*#__PURE__*/isValidElement(content) && !isFunction(content)) {\n return null;\n }\n if ( /*#__PURE__*/isValidElement(content)) {\n return /*#__PURE__*/cloneElement(content, props);\n }\n var label;\n if (isFunction(content)) {\n label = /*#__PURE__*/createElement(content, props);\n if ( /*#__PURE__*/isValidElement(label)) {\n return label;\n }\n } else {\n label = getLabel(props);\n }\n var isPolarLabel = isPolar(viewBox);\n var attrs = filterProps(props, true);\n if (isPolarLabel && (position === 'insideStart' || position === 'insideEnd' || position === 'end')) {\n return renderRadialLabel(props, label, attrs);\n }\n var positionAttrs = isPolarLabel ? getAttrsOfPolarLabel(props) : getAttrsOfCartesianLabel(props);\n return /*#__PURE__*/React.createElement(Text, _extends({\n className: clsx('recharts-label', className)\n }, attrs, positionAttrs, {\n breakAll: textBreakAll\n }), label);\n}\nLabel.displayName = 'Label';\nvar parseViewBox = function parseViewBox(props) {\n var cx = props.cx,\n cy = props.cy,\n angle = props.angle,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n r = props.r,\n radius = props.radius,\n innerRadius = props.innerRadius,\n outerRadius = props.outerRadius,\n x = props.x,\n y = props.y,\n top = props.top,\n left = props.left,\n width = props.width,\n height = props.height,\n clockWise = props.clockWise,\n labelViewBox = props.labelViewBox;\n if (labelViewBox) {\n return labelViewBox;\n }\n if (isNumber(width) && isNumber(height)) {\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n }\n if (isNumber(top) && isNumber(left)) {\n return {\n x: top,\n y: left,\n width: width,\n height: height\n };\n }\n }\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: 0,\n height: 0\n };\n }\n if (isNumber(cx) && isNumber(cy)) {\n return {\n cx: cx,\n cy: cy,\n startAngle: startAngle || angle || 0,\n endAngle: endAngle || angle || 0,\n innerRadius: innerRadius || 0,\n outerRadius: outerRadius || radius || r || 0,\n clockWise: clockWise\n };\n }\n if (props.viewBox) {\n return props.viewBox;\n }\n return {};\n};\nvar parseLabel = function parseLabel(label, viewBox) {\n if (!label) {\n return null;\n }\n if (label === true) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox\n });\n }\n if (isNumOrStr(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox,\n value: label\n });\n }\n if ( /*#__PURE__*/isValidElement(label)) {\n if (label.type === Label) {\n return /*#__PURE__*/cloneElement(label, {\n key: 'label-implicit',\n viewBox: viewBox\n });\n }\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n if (isFunction(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n if (isObject(label)) {\n return /*#__PURE__*/React.createElement(Label, _extends({\n viewBox: viewBox\n }, label, {\n key: \"label-implicit\"\n }));\n }\n return null;\n};\nvar renderCallByParent = function renderCallByParent(parentProps, viewBox) {\n var checkPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (!parentProps || !parentProps.children && checkPropsLabel && !parentProps.label) {\n return null;\n }\n var children = parentProps.children;\n var parentViewBox = parseViewBox(parentProps);\n var explicitChildren = findAllByType(children, Label).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n viewBox: viewBox || parentViewBox,\n // eslint-disable-next-line react/no-array-index-key\n key: \"label-\".concat(index)\n });\n });\n if (!checkPropsLabel) {\n return explicitChildren;\n }\n var implicitLabel = parseLabel(parentProps.label, viewBox || parentViewBox);\n return [implicitLabel].concat(_toConsumableArray(explicitChildren));\n};\nLabel.parseViewBox = parseViewBox;\nLabel.renderCallByParent = renderCallByParent;","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"valueAccessor\"],\n _excluded2 = [\"data\", \"dataKey\", \"clockWise\", \"id\", \"textBreakAll\"];\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nimport React, { cloneElement } from 'react';\nimport isNil from 'lodash/isNil';\nimport isObject from 'lodash/isObject';\nimport isFunction from 'lodash/isFunction';\nimport last from 'lodash/last';\nimport { Label } from './Label';\nimport { Layer } from '../container/Layer';\nimport { findAllByType, filterProps } from '../util/ReactUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\nvar defaultAccessor = function defaultAccessor(entry) {\n return Array.isArray(entry.value) ? last(entry.value) : entry.value;\n};\nexport function LabelList(_ref) {\n var _ref$valueAccessor = _ref.valueAccessor,\n valueAccessor = _ref$valueAccessor === void 0 ? defaultAccessor : _ref$valueAccessor,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var data = restProps.data,\n dataKey = restProps.dataKey,\n clockWise = restProps.clockWise,\n id = restProps.id,\n textBreakAll = restProps.textBreakAll,\n others = _objectWithoutProperties(restProps, _excluded2);\n if (!data || !data.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-label-list\"\n }, data.map(function (entry, index) {\n var value = isNil(dataKey) ? valueAccessor(entry, index) : getValueByDataKey(entry && entry.payload, dataKey);\n var idProps = isNil(id) ? {} : {\n id: \"\".concat(id, \"-\").concat(index)\n };\n return /*#__PURE__*/React.createElement(Label, _extends({}, filterProps(entry, true), others, idProps, {\n parentViewBox: entry.parentViewBox,\n value: value,\n textBreakAll: textBreakAll,\n viewBox: Label.parseViewBox(isNil(clockWise) ? entry : _objectSpread(_objectSpread({}, entry), {}, {\n clockWise: clockWise\n })),\n key: \"label-\".concat(index) // eslint-disable-line react/no-array-index-key\n ,\n index: index\n }));\n }));\n}\nLabelList.displayName = 'LabelList';\nfunction parseLabelList(label, data) {\n if (!label) {\n return null;\n }\n if (label === true) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data\n });\n }\n if ( /*#__PURE__*/React.isValidElement(label) || isFunction(label)) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data,\n content: label\n });\n }\n if (isObject(label)) {\n return /*#__PURE__*/React.createElement(LabelList, _extends({\n data: data\n }, label, {\n key: \"labelList-implicit\"\n }));\n }\n return null;\n}\nfunction renderCallByParent(parentProps, data) {\n var checkPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (!parentProps || !parentProps.children && checkPropsLabel && !parentProps.label) {\n return null;\n }\n var children = parentProps.children;\n var explicitChildren = findAllByType(children, LabelList).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n data: data,\n // eslint-disable-next-line react/no-array-index-key\n key: \"labelList-\".concat(index)\n });\n });\n if (!checkPropsLabel) {\n return explicitChildren;\n }\n var implicitLabelList = parseLabelList(parentProps.label, data);\n return [implicitLabelList].concat(_toConsumableArray(explicitChildren));\n}\nLabelList.renderCallByParent = renderCallByParent;","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Default Legend Content\n */\nimport React, { PureComponent } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { warn } from '../util/LogUtils';\nimport { Surface } from '../container/Surface';\nimport { Symbols } from '../shape/Symbols';\nimport { adaptEventsOfChild } from '../util/types';\nvar SIZE = 32;\nexport var DefaultLegendContent = /*#__PURE__*/function (_PureComponent) {\n function DefaultLegendContent() {\n _classCallCheck(this, DefaultLegendContent);\n return _callSuper(this, DefaultLegendContent, arguments);\n }\n _inherits(DefaultLegendContent, _PureComponent);\n return _createClass(DefaultLegendContent, [{\n key: \"renderIcon\",\n value:\n /**\n * Render the path of icon\n * @param {Object} data Data of each legend item\n * @return {String} Path element\n */\n function renderIcon(data) {\n var inactiveColor = this.props.inactiveColor;\n var halfSize = SIZE / 2;\n var sixthSize = SIZE / 6;\n var thirdSize = SIZE / 3;\n var color = data.inactive ? inactiveColor : data.color;\n if (data.type === 'plainline') {\n return /*#__PURE__*/React.createElement(\"line\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n strokeDasharray: data.payload.strokeDasharray,\n x1: 0,\n y1: halfSize,\n x2: SIZE,\n y2: halfSize,\n className: \"recharts-legend-icon\"\n });\n }\n if (data.type === 'line') {\n return /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n d: \"M0,\".concat(halfSize, \"h\").concat(thirdSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n H\").concat(SIZE, \"M\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(thirdSize, \",\").concat(halfSize),\n className: \"recharts-legend-icon\"\n });\n }\n if (data.type === 'rect') {\n return /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"none\",\n fill: color,\n d: \"M0,\".concat(SIZE / 8, \"h\").concat(SIZE, \"v\").concat(SIZE * 3 / 4, \"h\").concat(-SIZE, \"z\"),\n className: \"recharts-legend-icon\"\n });\n }\n if ( /*#__PURE__*/React.isValidElement(data.legendIcon)) {\n var iconProps = _objectSpread({}, data);\n delete iconProps.legendIcon;\n return /*#__PURE__*/React.cloneElement(data.legendIcon, iconProps);\n }\n return /*#__PURE__*/React.createElement(Symbols, {\n fill: color,\n cx: halfSize,\n cy: halfSize,\n size: SIZE,\n sizeType: \"diameter\",\n type: data.type\n });\n }\n\n /**\n * Draw items of legend\n * @return {ReactElement} Items\n */\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this = this;\n var _this$props = this.props,\n payload = _this$props.payload,\n iconSize = _this$props.iconSize,\n layout = _this$props.layout,\n formatter = _this$props.formatter,\n inactiveColor = _this$props.inactiveColor;\n var viewBox = {\n x: 0,\n y: 0,\n width: SIZE,\n height: SIZE\n };\n var itemStyle = {\n display: layout === 'horizontal' ? 'inline-block' : 'block',\n marginRight: 10\n };\n var svgStyle = {\n display: 'inline-block',\n verticalAlign: 'middle',\n marginRight: 4\n };\n return payload.map(function (entry, i) {\n var finalFormatter = entry.formatter || formatter;\n var className = clsx(_defineProperty(_defineProperty({\n 'recharts-legend-item': true\n }, \"legend-item-\".concat(i), true), \"inactive\", entry.inactive));\n if (entry.type === 'none') {\n return null;\n }\n\n // Do not render entry.value as functions. Always require static string properties.\n var entryValue = !isFunction(entry.value) ? entry.value : null;\n warn(!isFunction(entry.value), \"The name property is also required when using a function for the dataKey of a chart's cartesian components. Ex: \" // eslint-disable-line max-len\n );\n var color = entry.inactive ? inactiveColor : entry.color;\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n className: className,\n style: itemStyle\n // eslint-disable-next-line react/no-array-index-key\n ,\n key: \"legend-item-\".concat(i)\n }, adaptEventsOfChild(_this.props, entry, i)), /*#__PURE__*/React.createElement(Surface, {\n width: iconSize,\n height: iconSize,\n viewBox: viewBox,\n style: svgStyle\n }, _this.renderIcon(entry)), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-legend-item-text\",\n style: {\n color: color\n }\n }, finalFormatter ? finalFormatter(entryValue, entry, i) : entryValue));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n payload = _this$props2.payload,\n layout = _this$props2.layout,\n align = _this$props2.align;\n if (!payload || !payload.length) {\n return null;\n }\n var finalStyle = {\n padding: 0,\n margin: 0,\n textAlign: layout === 'horizontal' ? align : 'left'\n };\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-default-legend\",\n style: finalStyle\n }, this.renderItems());\n }\n }]);\n}(PureComponent);\n_defineProperty(DefaultLegendContent, \"displayName\", 'Legend');\n_defineProperty(DefaultLegendContent, \"defaultProps\", {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'middle',\n inactiveColor: '#ccc'\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"ref\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\n/**\n * @fileOverview Legend\n */\nimport React, { PureComponent } from 'react';\nimport { DefaultLegendContent } from './DefaultLegendContent';\nimport { isNumber } from '../util/DataUtils';\nimport { getUniqPayload } from '../util/payload/getUniqPayload';\nfunction defaultUniqBy(entry) {\n return entry.value;\n}\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n if (typeof content === 'function') {\n return /*#__PURE__*/React.createElement(content, props);\n }\n var ref = props.ref,\n otherProps = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/React.createElement(DefaultLegendContent, otherProps);\n}\nvar EPS = 1;\nexport var Legend = /*#__PURE__*/function (_PureComponent) {\n function Legend() {\n var _this;\n _classCallCheck(this, Legend);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Legend, [].concat(args));\n _defineProperty(_this, \"lastBoundingBox\", {\n width: -1,\n height: -1\n });\n return _this;\n }\n _inherits(Legend, _PureComponent);\n return _createClass(Legend, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"getBBox\",\n value: function getBBox() {\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var box = this.wrapperNode.getBoundingClientRect();\n box.height = this.wrapperNode.offsetHeight;\n box.width = this.wrapperNode.offsetWidth;\n return box;\n }\n return null;\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var onBBoxUpdate = this.props.onBBoxUpdate;\n var box = this.getBBox();\n if (box) {\n if (Math.abs(box.width - this.lastBoundingBox.width) > EPS || Math.abs(box.height - this.lastBoundingBox.height) > EPS) {\n this.lastBoundingBox.width = box.width;\n this.lastBoundingBox.height = box.height;\n if (onBBoxUpdate) {\n onBBoxUpdate(box);\n }\n }\n } else if (this.lastBoundingBox.width !== -1 || this.lastBoundingBox.height !== -1) {\n this.lastBoundingBox.width = -1;\n this.lastBoundingBox.height = -1;\n if (onBBoxUpdate) {\n onBBoxUpdate(null);\n }\n }\n }\n }, {\n key: \"getBBoxSnapshot\",\n value: function getBBoxSnapshot() {\n if (this.lastBoundingBox.width >= 0 && this.lastBoundingBox.height >= 0) {\n return _objectSpread({}, this.lastBoundingBox);\n }\n return {\n width: 0,\n height: 0\n };\n }\n }, {\n key: \"getDefaultPosition\",\n value: function getDefaultPosition(style) {\n var _this$props = this.props,\n layout = _this$props.layout,\n align = _this$props.align,\n verticalAlign = _this$props.verticalAlign,\n margin = _this$props.margin,\n chartWidth = _this$props.chartWidth,\n chartHeight = _this$props.chartHeight;\n var hPos, vPos;\n if (!style || (style.left === undefined || style.left === null) && (style.right === undefined || style.right === null)) {\n if (align === 'center' && layout === 'vertical') {\n var box = this.getBBoxSnapshot();\n hPos = {\n left: ((chartWidth || 0) - box.width) / 2\n };\n } else {\n hPos = align === 'right' ? {\n right: margin && margin.right || 0\n } : {\n left: margin && margin.left || 0\n };\n }\n }\n if (!style || (style.top === undefined || style.top === null) && (style.bottom === undefined || style.bottom === null)) {\n if (verticalAlign === 'middle') {\n var _box = this.getBBoxSnapshot();\n vPos = {\n top: ((chartHeight || 0) - _box.height) / 2\n };\n } else {\n vPos = verticalAlign === 'bottom' ? {\n bottom: margin && margin.bottom || 0\n } : {\n top: margin && margin.top || 0\n };\n }\n }\n return _objectSpread(_objectSpread({}, hPos), vPos);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props2 = this.props,\n content = _this$props2.content,\n width = _this$props2.width,\n height = _this$props2.height,\n wrapperStyle = _this$props2.wrapperStyle,\n payloadUniqBy = _this$props2.payloadUniqBy,\n payload = _this$props2.payload;\n var outerStyle = _objectSpread(_objectSpread({\n position: 'absolute',\n width: width || 'auto',\n height: height || 'auto'\n }, this.getDefaultPosition(wrapperStyle)), wrapperStyle);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"recharts-legend-wrapper\",\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: getUniqPayload(payload, payloadUniqBy, defaultUniqBy)\n })));\n }\n }], [{\n key: \"getWithHeight\",\n value: function getWithHeight(item, chartWidth) {\n var _this$defaultProps$it = _objectSpread(_objectSpread({}, this.defaultProps), item.props),\n layout = _this$defaultProps$it.layout;\n if (layout === 'vertical' && isNumber(item.props.height)) {\n return {\n height: item.props.height\n };\n }\n if (layout === 'horizontal') {\n return {\n width: item.props.width || chartWidth\n };\n }\n return null;\n }\n }]);\n}(PureComponent);\n_defineProperty(Legend, \"displayName\", 'Legend');\n_defineProperty(Legend, \"defaultProps\", {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'bottom'\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar MULTIPLY_OR_DIVIDE_REGEX = /(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)([*/])(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)/;\nvar ADD_OR_SUBTRACT_REGEX = /(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)([+-])(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)/;\nvar CSS_LENGTH_UNIT_REGEX = /^px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q$/;\nvar NUM_SPLIT_REGEX = /(-?\\d+(?:\\.\\d+)?)([a-zA-Z%]+)?/;\nvar CONVERSION_RATES = {\n cm: 96 / 2.54,\n mm: 96 / 25.4,\n pt: 96 / 72,\n pc: 96 / 6,\n \"in\": 96,\n Q: 96 / (2.54 * 40),\n px: 1\n};\nvar FIXED_CSS_LENGTH_UNITS = Object.keys(CONVERSION_RATES);\nvar STR_NAN = 'NaN';\nfunction convertToPx(value, unit) {\n return value * CONVERSION_RATES[unit];\n}\nvar DecimalCSS = /*#__PURE__*/function () {\n function DecimalCSS(num, unit) {\n _classCallCheck(this, DecimalCSS);\n this.num = num;\n this.unit = unit;\n this.num = num;\n this.unit = unit;\n if (Number.isNaN(num)) {\n this.unit = '';\n }\n if (unit !== '' && !CSS_LENGTH_UNIT_REGEX.test(unit)) {\n this.num = NaN;\n this.unit = '';\n }\n if (FIXED_CSS_LENGTH_UNITS.includes(unit)) {\n this.num = convertToPx(num, unit);\n this.unit = 'px';\n }\n }\n return _createClass(DecimalCSS, [{\n key: \"add\",\n value: function add(other) {\n if (this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num + other.num, this.unit);\n }\n }, {\n key: \"subtract\",\n value: function subtract(other) {\n if (this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num - other.num, this.unit);\n }\n }, {\n key: \"multiply\",\n value: function multiply(other) {\n if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num * other.num, this.unit || other.unit);\n }\n }, {\n key: \"divide\",\n value: function divide(other) {\n if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num / other.num, this.unit || other.unit);\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.num).concat(this.unit);\n }\n }, {\n key: \"isNaN\",\n value: function isNaN() {\n return Number.isNaN(this.num);\n }\n }], [{\n key: \"parse\",\n value: function parse(str) {\n var _NUM_SPLIT_REGEX$exec;\n var _ref = (_NUM_SPLIT_REGEX$exec = NUM_SPLIT_REGEX.exec(str)) !== null && _NUM_SPLIT_REGEX$exec !== void 0 ? _NUM_SPLIT_REGEX$exec : [],\n _ref2 = _slicedToArray(_ref, 3),\n numStr = _ref2[1],\n unit = _ref2[2];\n return new DecimalCSS(parseFloat(numStr), unit !== null && unit !== void 0 ? unit : '');\n }\n }]);\n}();\nfunction calculateArithmetic(expr) {\n if (expr.includes(STR_NAN)) {\n return STR_NAN;\n }\n var newExpr = expr;\n while (newExpr.includes('*') || newExpr.includes('/')) {\n var _MULTIPLY_OR_DIVIDE_R;\n var _ref3 = (_MULTIPLY_OR_DIVIDE_R = MULTIPLY_OR_DIVIDE_REGEX.exec(newExpr)) !== null && _MULTIPLY_OR_DIVIDE_R !== void 0 ? _MULTIPLY_OR_DIVIDE_R : [],\n _ref4 = _slicedToArray(_ref3, 4),\n leftOperand = _ref4[1],\n operator = _ref4[2],\n rightOperand = _ref4[3];\n var lTs = DecimalCSS.parse(leftOperand !== null && leftOperand !== void 0 ? leftOperand : '');\n var rTs = DecimalCSS.parse(rightOperand !== null && rightOperand !== void 0 ? rightOperand : '');\n var result = operator === '*' ? lTs.multiply(rTs) : lTs.divide(rTs);\n if (result.isNaN()) {\n return STR_NAN;\n }\n newExpr = newExpr.replace(MULTIPLY_OR_DIVIDE_REGEX, result.toString());\n }\n while (newExpr.includes('+') || /.-\\d+(?:\\.\\d+)?/.test(newExpr)) {\n var _ADD_OR_SUBTRACT_REGE;\n var _ref5 = (_ADD_OR_SUBTRACT_REGE = ADD_OR_SUBTRACT_REGEX.exec(newExpr)) !== null && _ADD_OR_SUBTRACT_REGE !== void 0 ? _ADD_OR_SUBTRACT_REGE : [],\n _ref6 = _slicedToArray(_ref5, 4),\n _leftOperand = _ref6[1],\n _operator = _ref6[2],\n _rightOperand = _ref6[3];\n var _lTs = DecimalCSS.parse(_leftOperand !== null && _leftOperand !== void 0 ? _leftOperand : '');\n var _rTs = DecimalCSS.parse(_rightOperand !== null && _rightOperand !== void 0 ? _rightOperand : '');\n var _result = _operator === '+' ? _lTs.add(_rTs) : _lTs.subtract(_rTs);\n if (_result.isNaN()) {\n return STR_NAN;\n }\n newExpr = newExpr.replace(ADD_OR_SUBTRACT_REGEX, _result.toString());\n }\n return newExpr;\n}\nvar PARENTHESES_REGEX = /\\(([^()]*)\\)/;\nfunction calculateParentheses(expr) {\n var newExpr = expr;\n while (newExpr.includes('(')) {\n var _PARENTHESES_REGEX$ex = PARENTHESES_REGEX.exec(newExpr),\n _PARENTHESES_REGEX$ex2 = _slicedToArray(_PARENTHESES_REGEX$ex, 2),\n parentheticalExpression = _PARENTHESES_REGEX$ex2[1];\n newExpr = newExpr.replace(PARENTHESES_REGEX, calculateArithmetic(parentheticalExpression));\n }\n return newExpr;\n}\nfunction evaluateExpression(expression) {\n var newExpr = expression.replace(/\\s+/g, '');\n newExpr = calculateParentheses(newExpr);\n newExpr = calculateArithmetic(newExpr);\n return newExpr;\n}\nexport function safeEvaluateExpression(expression) {\n try {\n return evaluateExpression(expression);\n } catch (e) {\n /* istanbul ignore next */\n return STR_NAN;\n }\n}\nexport function reduceCSSCalc(expression) {\n var result = safeEvaluateExpression(expression.slice(5, -1));\n if (result === STR_NAN) {\n // notify the user\n return '';\n }\n return result;\n}","var _excluded = [\"x\", \"y\", \"lineHeight\", \"capHeight\", \"scaleToFit\", \"textAnchor\", \"verticalAnchor\", \"fill\"],\n _excluded2 = [\"dx\", \"dy\", \"angle\", \"className\", \"breakAll\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport React, { useMemo } from 'react';\nimport isNil from 'lodash/isNil';\nimport clsx from 'clsx';\nimport { isNumber, isNumOrStr } from '../util/DataUtils';\nimport { Global } from '../util/Global';\nimport { filterProps } from '../util/ReactUtils';\nimport { getStringSize } from '../util/DOMUtils';\nimport { reduceCSSCalc } from '../util/ReduceCSSCalc';\nvar BREAKING_SPACES = /[ \\f\\n\\r\\t\\v\\u2028\\u2029]+/;\nvar calculateWordWidths = function calculateWordWidths(_ref) {\n var children = _ref.children,\n breakAll = _ref.breakAll,\n style = _ref.style;\n try {\n var words = [];\n if (!isNil(children)) {\n if (breakAll) {\n words = children.toString().split('');\n } else {\n words = children.toString().split(BREAKING_SPACES);\n }\n }\n var wordsWithComputedWidth = words.map(function (word) {\n return {\n word: word,\n width: getStringSize(word, style).width\n };\n });\n var spaceWidth = breakAll ? 0 : getStringSize(\"\\xA0\", style).width;\n return {\n wordsWithComputedWidth: wordsWithComputedWidth,\n spaceWidth: spaceWidth\n };\n } catch (e) {\n return null;\n }\n};\nvar calculateWordsByLines = function calculateWordsByLines(_ref2, initialWordsWithComputedWith, spaceWidth, lineWidth, scaleToFit) {\n var maxLines = _ref2.maxLines,\n children = _ref2.children,\n style = _ref2.style,\n breakAll = _ref2.breakAll;\n var shouldLimitLines = isNumber(maxLines);\n var text = children;\n var calculate = function calculate() {\n var words = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return words.reduce(function (result, _ref3) {\n var word = _ref3.word,\n width = _ref3.width;\n var currentLine = result[result.length - 1];\n if (currentLine && (lineWidth == null || scaleToFit || currentLine.width + width + spaceWidth < Number(lineWidth))) {\n // Word can be added to an existing line\n currentLine.words.push(word);\n currentLine.width += width + spaceWidth;\n } else {\n // Add first word to line or word is too long to scaleToFit on existing line\n var newLine = {\n words: [word],\n width: width\n };\n result.push(newLine);\n }\n return result;\n }, []);\n };\n var originalResult = calculate(initialWordsWithComputedWith);\n var findLongestLine = function findLongestLine(words) {\n return words.reduce(function (a, b) {\n return a.width > b.width ? a : b;\n });\n };\n if (!shouldLimitLines) {\n return originalResult;\n }\n var suffix = '…';\n var checkOverflow = function checkOverflow(index) {\n var tempText = text.slice(0, index);\n var words = calculateWordWidths({\n breakAll: breakAll,\n style: style,\n children: tempText + suffix\n }).wordsWithComputedWidth;\n var result = calculate(words);\n var doesOverflow = result.length > maxLines || findLongestLine(result).width > Number(lineWidth);\n return [doesOverflow, result];\n };\n var start = 0;\n var end = text.length - 1;\n var iterations = 0;\n var trimmedResult;\n while (start <= end && iterations <= text.length - 1) {\n var middle = Math.floor((start + end) / 2);\n var prev = middle - 1;\n var _checkOverflow = checkOverflow(prev),\n _checkOverflow2 = _slicedToArray(_checkOverflow, 2),\n doesPrevOverflow = _checkOverflow2[0],\n result = _checkOverflow2[1];\n var _checkOverflow3 = checkOverflow(middle),\n _checkOverflow4 = _slicedToArray(_checkOverflow3, 1),\n doesMiddleOverflow = _checkOverflow4[0];\n if (!doesPrevOverflow && !doesMiddleOverflow) {\n start = middle + 1;\n }\n if (doesPrevOverflow && doesMiddleOverflow) {\n end = middle - 1;\n }\n if (!doesPrevOverflow && doesMiddleOverflow) {\n trimmedResult = result;\n break;\n }\n iterations++;\n }\n\n // Fallback to originalResult (result without trimming) if we cannot find the\n // where to trim. This should not happen :tm:\n return trimmedResult || originalResult;\n};\nvar getWordsWithoutCalculate = function getWordsWithoutCalculate(children) {\n var words = !isNil(children) ? children.toString().split(BREAKING_SPACES) : [];\n return [{\n words: words\n }];\n};\nvar getWordsByLines = function getWordsByLines(_ref4) {\n var width = _ref4.width,\n scaleToFit = _ref4.scaleToFit,\n children = _ref4.children,\n style = _ref4.style,\n breakAll = _ref4.breakAll,\n maxLines = _ref4.maxLines;\n // Only perform calculations if using features that require them (multiline, scaleToFit)\n if ((width || scaleToFit) && !Global.isSsr) {\n var wordsWithComputedWidth, spaceWidth;\n var wordWidths = calculateWordWidths({\n breakAll: breakAll,\n children: children,\n style: style\n });\n if (wordWidths) {\n var wcw = wordWidths.wordsWithComputedWidth,\n sw = wordWidths.spaceWidth;\n wordsWithComputedWidth = wcw;\n spaceWidth = sw;\n } else {\n return getWordsWithoutCalculate(children);\n }\n return calculateWordsByLines({\n breakAll: breakAll,\n children: children,\n maxLines: maxLines,\n style: style\n }, wordsWithComputedWidth, spaceWidth, width, scaleToFit);\n }\n return getWordsWithoutCalculate(children);\n};\nvar DEFAULT_FILL = '#808080';\nexport var Text = function Text(_ref5) {\n var _ref5$x = _ref5.x,\n propsX = _ref5$x === void 0 ? 0 : _ref5$x,\n _ref5$y = _ref5.y,\n propsY = _ref5$y === void 0 ? 0 : _ref5$y,\n _ref5$lineHeight = _ref5.lineHeight,\n lineHeight = _ref5$lineHeight === void 0 ? '1em' : _ref5$lineHeight,\n _ref5$capHeight = _ref5.capHeight,\n capHeight = _ref5$capHeight === void 0 ? '0.71em' : _ref5$capHeight,\n _ref5$scaleToFit = _ref5.scaleToFit,\n scaleToFit = _ref5$scaleToFit === void 0 ? false : _ref5$scaleToFit,\n _ref5$textAnchor = _ref5.textAnchor,\n textAnchor = _ref5$textAnchor === void 0 ? 'start' : _ref5$textAnchor,\n _ref5$verticalAnchor = _ref5.verticalAnchor,\n verticalAnchor = _ref5$verticalAnchor === void 0 ? 'end' : _ref5$verticalAnchor,\n _ref5$fill = _ref5.fill,\n fill = _ref5$fill === void 0 ? DEFAULT_FILL : _ref5$fill,\n props = _objectWithoutProperties(_ref5, _excluded);\n var wordsByLines = useMemo(function () {\n return getWordsByLines({\n breakAll: props.breakAll,\n children: props.children,\n maxLines: props.maxLines,\n scaleToFit: scaleToFit,\n style: props.style,\n width: props.width\n });\n }, [props.breakAll, props.children, props.maxLines, scaleToFit, props.style, props.width]);\n var dx = props.dx,\n dy = props.dy,\n angle = props.angle,\n className = props.className,\n breakAll = props.breakAll,\n textProps = _objectWithoutProperties(props, _excluded2);\n if (!isNumOrStr(propsX) || !isNumOrStr(propsY)) {\n return null;\n }\n var x = propsX + (isNumber(dx) ? dx : 0);\n var y = propsY + (isNumber(dy) ? dy : 0);\n var startDy;\n switch (verticalAnchor) {\n case 'start':\n startDy = reduceCSSCalc(\"calc(\".concat(capHeight, \")\"));\n break;\n case 'middle':\n startDy = reduceCSSCalc(\"calc(\".concat((wordsByLines.length - 1) / 2, \" * -\").concat(lineHeight, \" + (\").concat(capHeight, \" / 2))\"));\n break;\n default:\n startDy = reduceCSSCalc(\"calc(\".concat(wordsByLines.length - 1, \" * -\").concat(lineHeight, \")\"));\n break;\n }\n var transforms = [];\n if (scaleToFit) {\n var lineWidth = wordsByLines[0].width;\n var width = props.width;\n transforms.push(\"scale(\".concat((isNumber(width) ? width / lineWidth : 1) / lineWidth, \")\"));\n }\n if (angle) {\n transforms.push(\"rotate(\".concat(angle, \", \").concat(x, \", \").concat(y, \")\"));\n }\n if (transforms.length) {\n textProps.transform = transforms.join(' ');\n }\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, filterProps(textProps, true), {\n x: x,\n y: y,\n className: clsx('recharts-text', className),\n textAnchor: textAnchor,\n fill: fill.includes('url') ? DEFAULT_FILL : fill\n }), wordsByLines.map(function (line, index) {\n var words = line.words.join(breakAll ? '' : ' ');\n return (\n /*#__PURE__*/\n // duplicate words will cause duplicate keys\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: \"\".concat(words, \"-\").concat(index)\n }, words)\n );\n }));\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Default Tooltip Content\n */\n\nimport React from 'react';\nimport sortBy from 'lodash/sortBy';\nimport isNil from 'lodash/isNil';\nimport clsx from 'clsx';\nimport { isNumOrStr } from '../util/DataUtils';\nfunction defaultFormatter(value) {\n return Array.isArray(value) && isNumOrStr(value[0]) && isNumOrStr(value[1]) ? value.join(' ~ ') : value;\n}\nexport var DefaultTooltipContent = function DefaultTooltipContent(props) {\n var _props$separator = props.separator,\n separator = _props$separator === void 0 ? ' : ' : _props$separator,\n _props$contentStyle = props.contentStyle,\n contentStyle = _props$contentStyle === void 0 ? {} : _props$contentStyle,\n _props$itemStyle = props.itemStyle,\n itemStyle = _props$itemStyle === void 0 ? {} : _props$itemStyle,\n _props$labelStyle = props.labelStyle,\n labelStyle = _props$labelStyle === void 0 ? {} : _props$labelStyle,\n payload = props.payload,\n formatter = props.formatter,\n itemSorter = props.itemSorter,\n wrapperClassName = props.wrapperClassName,\n labelClassName = props.labelClassName,\n label = props.label,\n labelFormatter = props.labelFormatter,\n _props$accessibilityL = props.accessibilityLayer,\n accessibilityLayer = _props$accessibilityL === void 0 ? false : _props$accessibilityL;\n var renderContent = function renderContent() {\n if (payload && payload.length) {\n var listStyle = {\n padding: 0,\n margin: 0\n };\n var items = (itemSorter ? sortBy(payload, itemSorter) : payload).map(function (entry, i) {\n if (entry.type === 'none') {\n return null;\n }\n var finalItemStyle = _objectSpread({\n display: 'block',\n paddingTop: 4,\n paddingBottom: 4,\n color: entry.color || '#000'\n }, itemStyle);\n var finalFormatter = entry.formatter || formatter || defaultFormatter;\n var value = entry.value,\n name = entry.name;\n var finalValue = value;\n var finalName = name;\n if (finalFormatter && finalValue != null && finalName != null) {\n var formatted = finalFormatter(value, name, entry, i, payload);\n if (Array.isArray(formatted)) {\n var _formatted = _slicedToArray(formatted, 2);\n finalValue = _formatted[0];\n finalName = _formatted[1];\n } else {\n finalValue = formatted;\n }\n }\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n className: \"recharts-tooltip-item\",\n key: \"tooltip-item-\".concat(i),\n style: finalItemStyle\n }, isNumOrStr(finalName) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-name\"\n }, finalName) : null, isNumOrStr(finalName) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-separator\"\n }, separator) : null, /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-value\"\n }, finalValue), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-unit\"\n }, entry.unit || ''))\n );\n });\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-tooltip-item-list\",\n style: listStyle\n }, items);\n }\n return null;\n };\n var finalStyle = _objectSpread({\n margin: 0,\n padding: 10,\n backgroundColor: '#fff',\n border: '1px solid #ccc',\n whiteSpace: 'nowrap'\n }, contentStyle);\n var finalLabelStyle = _objectSpread({\n margin: 0\n }, labelStyle);\n var hasLabel = !isNil(label);\n var finalLabel = hasLabel ? label : '';\n var wrapperCN = clsx('recharts-default-tooltip', wrapperClassName);\n var labelCN = clsx('recharts-tooltip-label', labelClassName);\n if (hasLabel && labelFormatter && payload !== undefined && payload !== null) {\n finalLabel = labelFormatter(label, payload);\n }\n var accessibilityAttributes = accessibilityLayer ? {\n role: 'status',\n 'aria-live': 'assertive'\n } : {};\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: wrapperCN,\n style: finalStyle\n }, accessibilityAttributes), /*#__PURE__*/React.createElement(\"p\", {\n className: labelCN,\n style: finalLabelStyle\n }, /*#__PURE__*/React.isValidElement(finalLabel) ? finalLabel : \"\".concat(finalLabel)), renderContent());\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport clsx from 'clsx';\nimport { isNumber } from '../DataUtils';\nvar CSS_CLASS_PREFIX = 'recharts-tooltip-wrapper';\nvar TOOLTIP_HIDDEN = {\n visibility: 'hidden'\n};\nexport function getTooltipCSSClassName(_ref) {\n var coordinate = _ref.coordinate,\n translateX = _ref.translateX,\n translateY = _ref.translateY;\n return clsx(CSS_CLASS_PREFIX, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(CSS_CLASS_PREFIX, \"-right\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX >= coordinate.x), \"\".concat(CSS_CLASS_PREFIX, \"-left\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX < coordinate.x), \"\".concat(CSS_CLASS_PREFIX, \"-bottom\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY >= coordinate.y), \"\".concat(CSS_CLASS_PREFIX, \"-top\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY < coordinate.y));\n}\nexport function getTooltipTranslateXY(_ref2) {\n var allowEscapeViewBox = _ref2.allowEscapeViewBox,\n coordinate = _ref2.coordinate,\n key = _ref2.key,\n offsetTopLeft = _ref2.offsetTopLeft,\n position = _ref2.position,\n reverseDirection = _ref2.reverseDirection,\n tooltipDimension = _ref2.tooltipDimension,\n viewBox = _ref2.viewBox,\n viewBoxDimension = _ref2.viewBoxDimension;\n if (position && isNumber(position[key])) {\n return position[key];\n }\n var negative = coordinate[key] - tooltipDimension - offsetTopLeft;\n var positive = coordinate[key] + offsetTopLeft;\n if (allowEscapeViewBox[key]) {\n return reverseDirection[key] ? negative : positive;\n }\n if (reverseDirection[key]) {\n var _tooltipBoundary = negative;\n var _viewBoxBoundary = viewBox[key];\n if (_tooltipBoundary < _viewBoxBoundary) {\n return Math.max(positive, viewBox[key]);\n }\n return Math.max(negative, viewBox[key]);\n }\n var tooltipBoundary = positive + tooltipDimension;\n var viewBoxBoundary = viewBox[key] + viewBoxDimension;\n if (tooltipBoundary > viewBoxBoundary) {\n return Math.max(negative, viewBox[key]);\n }\n return Math.max(positive, viewBox[key]);\n}\nexport function getTransformStyle(_ref3) {\n var translateX = _ref3.translateX,\n translateY = _ref3.translateY,\n useTranslate3d = _ref3.useTranslate3d;\n return {\n transform: useTranslate3d ? \"translate3d(\".concat(translateX, \"px, \").concat(translateY, \"px, 0)\") : \"translate(\".concat(translateX, \"px, \").concat(translateY, \"px)\")\n };\n}\nexport function getTooltipTranslate(_ref4) {\n var allowEscapeViewBox = _ref4.allowEscapeViewBox,\n coordinate = _ref4.coordinate,\n offsetTopLeft = _ref4.offsetTopLeft,\n position = _ref4.position,\n reverseDirection = _ref4.reverseDirection,\n tooltipBox = _ref4.tooltipBox,\n useTranslate3d = _ref4.useTranslate3d,\n viewBox = _ref4.viewBox;\n var cssProperties, translateX, translateY;\n if (tooltipBox.height > 0 && tooltipBox.width > 0 && coordinate) {\n translateX = getTooltipTranslateXY({\n allowEscapeViewBox: allowEscapeViewBox,\n coordinate: coordinate,\n key: 'x',\n offsetTopLeft: offsetTopLeft,\n position: position,\n reverseDirection: reverseDirection,\n tooltipDimension: tooltipBox.width,\n viewBox: viewBox,\n viewBoxDimension: viewBox.width\n });\n translateY = getTooltipTranslateXY({\n allowEscapeViewBox: allowEscapeViewBox,\n coordinate: coordinate,\n key: 'y',\n offsetTopLeft: offsetTopLeft,\n position: position,\n reverseDirection: reverseDirection,\n tooltipDimension: tooltipBox.height,\n viewBox: viewBox,\n viewBoxDimension: viewBox.height\n });\n cssProperties = getTransformStyle({\n translateX: translateX,\n translateY: translateY,\n useTranslate3d: useTranslate3d\n });\n } else {\n cssProperties = TOOLTIP_HIDDEN;\n }\n return {\n cssProperties: cssProperties,\n cssClasses: getTooltipCSSClassName({\n translateX: translateX,\n translateY: translateY,\n coordinate: coordinate\n })\n };\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React, { PureComponent } from 'react';\nimport { getTooltipTranslate } from '../util/tooltip/translate';\nvar EPSILON = 1;\nexport var TooltipBoundingBox = /*#__PURE__*/function (_PureComponent) {\n function TooltipBoundingBox() {\n var _this;\n _classCallCheck(this, TooltipBoundingBox);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, TooltipBoundingBox, [].concat(args));\n _defineProperty(_this, \"state\", {\n dismissed: false,\n dismissedAtCoordinate: {\n x: 0,\n y: 0\n },\n lastBoundingBox: {\n width: -1,\n height: -1\n }\n });\n _defineProperty(_this, \"handleKeyDown\", function (event) {\n if (event.key === 'Escape') {\n var _this$props$coordinat, _this$props$coordinat2, _this$props$coordinat3, _this$props$coordinat4;\n _this.setState({\n dismissed: true,\n dismissedAtCoordinate: {\n x: (_this$props$coordinat = (_this$props$coordinat2 = _this.props.coordinate) === null || _this$props$coordinat2 === void 0 ? void 0 : _this$props$coordinat2.x) !== null && _this$props$coordinat !== void 0 ? _this$props$coordinat : 0,\n y: (_this$props$coordinat3 = (_this$props$coordinat4 = _this.props.coordinate) === null || _this$props$coordinat4 === void 0 ? void 0 : _this$props$coordinat4.y) !== null && _this$props$coordinat3 !== void 0 ? _this$props$coordinat3 : 0\n }\n });\n }\n });\n return _this;\n }\n _inherits(TooltipBoundingBox, _PureComponent);\n return _createClass(TooltipBoundingBox, [{\n key: \"updateBBox\",\n value: function updateBBox() {\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var box = this.wrapperNode.getBoundingClientRect();\n if (Math.abs(box.width - this.state.lastBoundingBox.width) > EPSILON || Math.abs(box.height - this.state.lastBoundingBox.height) > EPSILON) {\n this.setState({\n lastBoundingBox: {\n width: box.width,\n height: box.height\n }\n });\n }\n } else if (this.state.lastBoundingBox.width !== -1 || this.state.lastBoundingBox.height !== -1) {\n this.setState({\n lastBoundingBox: {\n width: -1,\n height: -1\n }\n });\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n document.addEventListener('keydown', this.handleKeyDown);\n this.updateBBox();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n document.removeEventListener('keydown', this.handleKeyDown);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var _this$props$coordinat5, _this$props$coordinat6;\n if (this.props.active) {\n this.updateBBox();\n }\n if (!this.state.dismissed) {\n return;\n }\n if (((_this$props$coordinat5 = this.props.coordinate) === null || _this$props$coordinat5 === void 0 ? void 0 : _this$props$coordinat5.x) !== this.state.dismissedAtCoordinate.x || ((_this$props$coordinat6 = this.props.coordinate) === null || _this$props$coordinat6 === void 0 ? void 0 : _this$props$coordinat6.y) !== this.state.dismissedAtCoordinate.y) {\n this.state.dismissed = false;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props = this.props,\n active = _this$props.active,\n allowEscapeViewBox = _this$props.allowEscapeViewBox,\n animationDuration = _this$props.animationDuration,\n animationEasing = _this$props.animationEasing,\n children = _this$props.children,\n coordinate = _this$props.coordinate,\n hasPayload = _this$props.hasPayload,\n isAnimationActive = _this$props.isAnimationActive,\n offset = _this$props.offset,\n position = _this$props.position,\n reverseDirection = _this$props.reverseDirection,\n useTranslate3d = _this$props.useTranslate3d,\n viewBox = _this$props.viewBox,\n wrapperStyle = _this$props.wrapperStyle;\n var _getTooltipTranslate = getTooltipTranslate({\n allowEscapeViewBox: allowEscapeViewBox,\n coordinate: coordinate,\n offsetTopLeft: offset,\n position: position,\n reverseDirection: reverseDirection,\n tooltipBox: this.state.lastBoundingBox,\n useTranslate3d: useTranslate3d,\n viewBox: viewBox\n }),\n cssClasses = _getTooltipTranslate.cssClasses,\n cssProperties = _getTooltipTranslate.cssProperties;\n var outerStyle = _objectSpread(_objectSpread({\n transition: isAnimationActive && active ? \"transform \".concat(animationDuration, \"ms \").concat(animationEasing) : undefined\n }, cssProperties), {}, {\n pointerEvents: 'none',\n visibility: !this.state.dismissed && active && hasPayload ? 'visible' : 'hidden',\n position: 'absolute',\n top: 0,\n left: 0\n }, wrapperStyle);\n return (\n /*#__PURE__*/\n // This element allow listening to the `Escape` key.\n // See https://github.com/recharts/recharts/pull/2925\n React.createElement(\"div\", {\n tabIndex: -1,\n className: cssClasses,\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, children)\n );\n }\n }]);\n}(PureComponent);","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Tooltip\n */\nimport React, { PureComponent } from 'react';\nimport { DefaultTooltipContent } from './DefaultTooltipContent';\nimport { TooltipBoundingBox } from './TooltipBoundingBox';\nimport { Global } from '../util/Global';\nimport { getUniqPayload } from '../util/payload/getUniqPayload';\nfunction defaultUniqBy(entry) {\n return entry.dataKey;\n}\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n if (typeof content === 'function') {\n return /*#__PURE__*/React.createElement(content, props);\n }\n return /*#__PURE__*/React.createElement(DefaultTooltipContent, props);\n}\nexport var Tooltip = /*#__PURE__*/function (_PureComponent) {\n function Tooltip() {\n _classCallCheck(this, Tooltip);\n return _callSuper(this, Tooltip, arguments);\n }\n _inherits(Tooltip, _PureComponent);\n return _createClass(Tooltip, [{\n key: \"render\",\n value: function render() {\n var _this = this;\n var _this$props = this.props,\n active = _this$props.active,\n allowEscapeViewBox = _this$props.allowEscapeViewBox,\n animationDuration = _this$props.animationDuration,\n animationEasing = _this$props.animationEasing,\n content = _this$props.content,\n coordinate = _this$props.coordinate,\n filterNull = _this$props.filterNull,\n isAnimationActive = _this$props.isAnimationActive,\n offset = _this$props.offset,\n payload = _this$props.payload,\n payloadUniqBy = _this$props.payloadUniqBy,\n position = _this$props.position,\n reverseDirection = _this$props.reverseDirection,\n useTranslate3d = _this$props.useTranslate3d,\n viewBox = _this$props.viewBox,\n wrapperStyle = _this$props.wrapperStyle;\n var finalPayload = payload !== null && payload !== void 0 ? payload : [];\n if (filterNull && finalPayload.length) {\n finalPayload = getUniqPayload(payload.filter(function (entry) {\n return entry.value != null && (entry.hide !== true || _this.props.includeHidden);\n }), payloadUniqBy, defaultUniqBy);\n }\n var hasPayload = finalPayload.length > 0;\n return /*#__PURE__*/React.createElement(TooltipBoundingBox, {\n allowEscapeViewBox: allowEscapeViewBox,\n animationDuration: animationDuration,\n animationEasing: animationEasing,\n isAnimationActive: isAnimationActive,\n active: active,\n coordinate: coordinate,\n hasPayload: hasPayload,\n offset: offset,\n position: position,\n reverseDirection: reverseDirection,\n useTranslate3d: useTranslate3d,\n viewBox: viewBox,\n wrapperStyle: wrapperStyle\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: finalPayload\n })));\n }\n }]);\n}(PureComponent);\n_defineProperty(Tooltip, \"displayName\", 'Tooltip');\n_defineProperty(Tooltip, \"defaultProps\", {\n accessibilityLayer: false,\n allowEscapeViewBox: {\n x: false,\n y: false\n },\n animationDuration: 400,\n animationEasing: 'ease',\n contentStyle: {},\n coordinate: {\n x: 0,\n y: 0\n },\n cursor: true,\n cursorStyle: {},\n filterNull: true,\n isAnimationActive: !Global.isSsr,\n itemStyle: {},\n labelStyle: {},\n offset: 10,\n reverseDirection: {\n x: false,\n y: false\n },\n separator: ' : ',\n trigger: 'hover',\n useTranslate3d: false,\n viewBox: {\n x: 0,\n y: 0,\n height: 0,\n width: 0\n },\n wrapperStyle: {}\n});","var _excluded = [\"children\", \"className\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nimport React from 'react';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nexport var Layer = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var children = props.children,\n className = props.className,\n others = _objectWithoutProperties(props, _excluded);\n var layerClass = clsx('recharts-layer', className);\n return /*#__PURE__*/React.createElement(\"g\", _extends({\n className: layerClass\n }, filterProps(others, true), {\n ref: ref\n }), children);\n});","var _excluded = [\"children\", \"width\", \"height\", \"viewBox\", \"className\", \"style\", \"title\", \"desc\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\n/**\n * @fileOverview Surface\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nexport function Surface(props) {\n var children = props.children,\n width = props.width,\n height = props.height,\n viewBox = props.viewBox,\n className = props.className,\n style = props.style,\n title = props.title,\n desc = props.desc,\n others = _objectWithoutProperties(props, _excluded);\n var svgView = viewBox || {\n width: width,\n height: height,\n x: 0,\n y: 0\n };\n var layerClass = clsx('recharts-surface', className);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({}, filterProps(others, true, 'svg'), {\n className: layerClass,\n width: width,\n height: height,\n style: style,\n viewBox: \"\".concat(svgView.x, \" \").concat(svgView.y, \" \").concat(svgView.width, \" \").concat(svgView.height)\n }), /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"desc\", null, desc), children);\n}","import memoize from 'lodash/memoize';\n/**\n * This is memoized because the viewBox is unlikely to change often\n * - but because it is computed from offset, any change to it would re-render all children.\n *\n * And because we have many readers of the viewBox, and update it only rarely,\n * then let's optimize with memoization.\n */\nexport var calculateViewBox = memoize(function (offset) {\n return {\n x: offset.left,\n y: offset.top,\n width: offset.width,\n height: offset.height\n };\n}, function (offset) {\n return ['l', offset.left, 't', offset.top, 'w', offset.width, 'h', offset.height].join('');\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport React, { createContext, useContext } from 'react';\nimport invariant from 'tiny-invariant';\nimport find from 'lodash/find';\nimport every from 'lodash/every';\nimport { calculateViewBox } from '../util/calculateViewBox';\nimport { getAnyElementOfObject } from '../util/DataUtils';\nexport var XAxisContext = /*#__PURE__*/createContext(undefined);\nexport var YAxisContext = /*#__PURE__*/createContext(undefined);\nexport var ViewBoxContext = /*#__PURE__*/createContext(undefined);\nexport var OffsetContext = /*#__PURE__*/createContext({});\nexport var ClipPathIdContext = /*#__PURE__*/createContext(undefined);\nexport var ChartHeightContext = /*#__PURE__*/createContext(0);\nexport var ChartWidthContext = /*#__PURE__*/createContext(0);\n\n/**\n * Will add all the properties required to render all individual Recharts components into a React Context.\n *\n * If you want to read these properties, see the collection of hooks exported from this file.\n *\n * @param {object} props CategoricalChartState, plus children\n * @returns {ReactElement} React Context Provider\n */\nexport var ChartLayoutContextProvider = function ChartLayoutContextProvider(props) {\n var _props$state = props.state,\n xAxisMap = _props$state.xAxisMap,\n yAxisMap = _props$state.yAxisMap,\n offset = _props$state.offset,\n clipPathId = props.clipPathId,\n children = props.children,\n width = props.width,\n height = props.height;\n\n /**\n * Perhaps we should compute this property when reading? Let's see what is more often used\n */\n var viewBox = calculateViewBox(offset);\n\n /*\n * This pretends to be a single context but actually is split into multiple smaller ones.\n * Why?\n * Because one React Context only allows to set one value.\n * But we need to set multiple values.\n * If we do that with one context, then we force re-render on components that might not even be interested\n * in the part of the state that has changed.\n *\n * By splitting into smaller contexts, we allow each components to be optimized and only re-render when its dependencies change.\n *\n * To actually achieve the optimal re-render, it is necessary to use React.memo().\n * See the test file for details.\n */\n return /*#__PURE__*/React.createElement(XAxisContext.Provider, {\n value: xAxisMap\n }, /*#__PURE__*/React.createElement(YAxisContext.Provider, {\n value: yAxisMap\n }, /*#__PURE__*/React.createElement(OffsetContext.Provider, {\n value: offset\n }, /*#__PURE__*/React.createElement(ViewBoxContext.Provider, {\n value: viewBox\n }, /*#__PURE__*/React.createElement(ClipPathIdContext.Provider, {\n value: clipPathId\n }, /*#__PURE__*/React.createElement(ChartHeightContext.Provider, {\n value: height\n }, /*#__PURE__*/React.createElement(ChartWidthContext.Provider, {\n value: width\n }, children)))))));\n};\nexport var useClipPathId = function useClipPathId() {\n return useContext(ClipPathIdContext);\n};\nfunction getKeysForDebug(object) {\n var keys = Object.keys(object);\n if (keys.length === 0) {\n return 'There are no available ids.';\n }\n return \"Available ids are: \".concat(keys, \".\");\n}\n\n/**\n * This either finds and returns Axis by the specified ID, or throws an exception if an axis with this ID does not exist.\n *\n * @param xAxisId identifier of the axis - it's either autogenerated ('0'), or passed via `id` prop as \n * @returns axis configuration object\n * @throws Error if no axis with this ID exists\n */\nexport var useXAxisOrThrow = function useXAxisOrThrow(xAxisId) {\n var xAxisMap = useContext(XAxisContext);\n !(xAxisMap != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find Recharts context; are you sure this is rendered inside a Recharts wrapper component?') : invariant(false) : void 0;\n var xAxis = xAxisMap[xAxisId];\n !(xAxis != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not find xAxis by id \\\"\".concat(xAxisId, \"\\\" [\").concat(_typeof(xAxisId), \"]. \").concat(getKeysForDebug(xAxisMap))) : invariant(false) : void 0;\n return xAxis;\n};\n\n/**\n * This will find an arbitrary first XAxis. If there's exactly one it always returns that one\n * - but if there are multiple then it can return any of those.\n *\n * If you want specific XAxis out of multiple then prefer using useXAxisOrThrow\n *\n * @returns X axisOptions, or undefined - if there are no X axes\n */\nexport var useArbitraryXAxis = function useArbitraryXAxis() {\n var xAxisMap = useContext(XAxisContext);\n return getAnyElementOfObject(xAxisMap);\n};\n\n/**\n * This will find an arbitrary first YAxis. If there's exactly one it always returns that one\n * - but if there are multiple then it can return any of those.\n *\n * If you want specific YAxis out of multiple then prefer using useXAxisOrThrow\n *\n * @returns Y axisOptions, or undefined - if there are no Y axes\n */\nexport var useArbitraryYAxis = function useArbitraryYAxis() {\n var yAxisMap = useContext(YAxisContext);\n return getAnyElementOfObject(yAxisMap);\n};\n\n/**\n * This hooks will:\n * 1st attempt to find an YAxis that has all elements in its domain finite\n * If no such axis exists, it will return an arbitrary YAxis\n * if there are no Y axes then it returns undefined\n *\n * @returns Either Y axisOptions, or undefined if there are no Y axes\n */\nexport var useYAxisWithFiniteDomainOrRandom = function useYAxisWithFiniteDomainOrRandom() {\n var yAxisMap = useContext(YAxisContext);\n var yAxisWithFiniteDomain = find(yAxisMap, function (axis) {\n return every(axis.domain, Number.isFinite);\n });\n return yAxisWithFiniteDomain || getAnyElementOfObject(yAxisMap);\n};\n\n/**\n * This either finds and returns Axis by the specified ID, or throws an exception if an axis with this ID does not exist.\n *\n * @param yAxisId identifier of the axis - it's either autogenerated ('0'), or passed via `id` prop as \n * @returns axis configuration object\n * @throws Error if no axis with this ID exists\n */\nexport var useYAxisOrThrow = function useYAxisOrThrow(yAxisId) {\n var yAxisMap = useContext(YAxisContext);\n !(yAxisMap != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find Recharts context; are you sure this is rendered inside a Recharts wrapper component?') : invariant(false) : void 0;\n var yAxis = yAxisMap[yAxisId];\n !(yAxis != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not find yAxis by id \\\"\".concat(yAxisId, \"\\\" [\").concat(_typeof(yAxisId), \"]. \").concat(getKeysForDebug(yAxisMap))) : invariant(false) : void 0;\n return yAxis;\n};\nexport var useViewBox = function useViewBox() {\n var viewBox = useContext(ViewBoxContext);\n return viewBox;\n};\nexport var useOffset = function useOffset() {\n return useContext(OffsetContext);\n};\nexport var useChartWidth = function useChartWidth() {\n return useContext(ChartWidthContext);\n};\nexport var useChartHeight = function useChartHeight() {\n return useContext(ChartHeightContext);\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Curve\n */\nimport React from 'react';\nimport { line as shapeLine, area as shapeArea, curveBasisClosed, curveBasisOpen, curveBasis, curveBumpX, curveBumpY, curveLinearClosed, curveLinear, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from 'victory-vendor/d3-shape';\nimport upperFirst from 'lodash/upperFirst';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { adaptEventHandlers } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nimport { isNumber } from '../util/DataUtils';\nvar CURVE_FACTORIES = {\n curveBasisClosed: curveBasisClosed,\n curveBasisOpen: curveBasisOpen,\n curveBasis: curveBasis,\n curveBumpX: curveBumpX,\n curveBumpY: curveBumpY,\n curveLinearClosed: curveLinearClosed,\n curveLinear: curveLinear,\n curveMonotoneX: curveMonotoneX,\n curveMonotoneY: curveMonotoneY,\n curveNatural: curveNatural,\n curveStep: curveStep,\n curveStepAfter: curveStepAfter,\n curveStepBefore: curveStepBefore\n};\nvar defined = function defined(p) {\n return p.x === +p.x && p.y === +p.y;\n};\nvar getX = function getX(p) {\n return p.x;\n};\nvar getY = function getY(p) {\n return p.y;\n};\nvar getCurveFactory = function getCurveFactory(type, layout) {\n if (isFunction(type)) {\n return type;\n }\n var name = \"curve\".concat(upperFirst(type));\n if ((name === 'curveMonotone' || name === 'curveBump') && layout) {\n return CURVE_FACTORIES[\"\".concat(name).concat(layout === 'vertical' ? 'Y' : 'X')];\n }\n return CURVE_FACTORIES[name] || curveLinear;\n};\n/**\n * Calculate the path of curve. Returns null if points is an empty array.\n * @return path or null\n */\nexport var getPath = function getPath(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'linear' : _ref$type,\n _ref$points = _ref.points,\n points = _ref$points === void 0 ? [] : _ref$points,\n baseLine = _ref.baseLine,\n layout = _ref.layout,\n _ref$connectNulls = _ref.connectNulls,\n connectNulls = _ref$connectNulls === void 0 ? false : _ref$connectNulls;\n var curveFactory = getCurveFactory(type, layout);\n var formatPoints = connectNulls ? points.filter(function (entry) {\n return defined(entry);\n }) : points;\n var lineFunction;\n if (Array.isArray(baseLine)) {\n var formatBaseLine = connectNulls ? baseLine.filter(function (base) {\n return defined(base);\n }) : baseLine;\n var areaPoints = formatPoints.map(function (entry, index) {\n return _objectSpread(_objectSpread({}, entry), {}, {\n base: formatBaseLine[index]\n });\n });\n if (layout === 'vertical') {\n lineFunction = shapeArea().y(getY).x1(getX).x0(function (d) {\n return d.base.x;\n });\n } else {\n lineFunction = shapeArea().x(getX).y1(getY).y0(function (d) {\n return d.base.y;\n });\n }\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(areaPoints);\n }\n if (layout === 'vertical' && isNumber(baseLine)) {\n lineFunction = shapeArea().y(getY).x1(getX).x0(baseLine);\n } else if (isNumber(baseLine)) {\n lineFunction = shapeArea().x(getX).y1(getY).y0(baseLine);\n } else {\n lineFunction = shapeLine().x(getX).y(getY);\n }\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(formatPoints);\n};\nexport var Curve = function Curve(props) {\n var className = props.className,\n points = props.points,\n path = props.path,\n pathRef = props.pathRef;\n if ((!points || !points.length) && !path) {\n return null;\n }\n var realPath = points && points.length ? getPath(props) : path;\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, false), adaptEventHandlers(props), {\n className: clsx('recharts-curve', className),\n d: realPath,\n ref: pathRef\n }));\n};","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/**\n * @fileOverview Dot\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { adaptEventHandlers } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nexport var Dot = function Dot(props) {\n var cx = props.cx,\n cy = props.cy,\n r = props.r,\n className = props.className;\n var layerClass = clsx('recharts-dot', className);\n if (cx === +cx && cy === +cy && r === +r) {\n return /*#__PURE__*/React.createElement(\"circle\", _extends({}, filterProps(props, false), adaptEventHandlers(props), {\n className: layerClass,\n cx: cx,\n cy: cy,\n r: r\n }));\n }\n return null;\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Rectangle\n */\nimport React, { useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport Animate from 'react-smooth';\nimport { filterProps } from '../util/ReactUtils';\nvar getRectanglePath = function getRectanglePath(x, y, width, height, radius) {\n var maxRadius = Math.min(Math.abs(width) / 2, Math.abs(height) / 2);\n var ySign = height >= 0 ? 1 : -1;\n var xSign = width >= 0 ? 1 : -1;\n var clockWise = height >= 0 && width >= 0 || height < 0 && width < 0 ? 1 : 0;\n var path;\n if (maxRadius > 0 && radius instanceof Array) {\n var newRadius = [0, 0, 0, 0];\n for (var i = 0, len = 4; i < len; i++) {\n newRadius[i] = radius[i] > maxRadius ? maxRadius : radius[i];\n }\n path = \"M\".concat(x, \",\").concat(y + ySign * newRadius[0]);\n if (newRadius[0] > 0) {\n path += \"A \".concat(newRadius[0], \",\").concat(newRadius[0], \",0,0,\").concat(clockWise, \",\").concat(x + xSign * newRadius[0], \",\").concat(y);\n }\n path += \"L \".concat(x + width - xSign * newRadius[1], \",\").concat(y);\n if (newRadius[1] > 0) {\n path += \"A \".concat(newRadius[1], \",\").concat(newRadius[1], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width, \",\").concat(y + ySign * newRadius[1]);\n }\n path += \"L \".concat(x + width, \",\").concat(y + height - ySign * newRadius[2]);\n if (newRadius[2] > 0) {\n path += \"A \".concat(newRadius[2], \",\").concat(newRadius[2], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width - xSign * newRadius[2], \",\").concat(y + height);\n }\n path += \"L \".concat(x + xSign * newRadius[3], \",\").concat(y + height);\n if (newRadius[3] > 0) {\n path += \"A \".concat(newRadius[3], \",\").concat(newRadius[3], \",0,0,\").concat(clockWise, \",\\n \").concat(x, \",\").concat(y + height - ySign * newRadius[3]);\n }\n path += 'Z';\n } else if (maxRadius > 0 && radius === +radius && radius > 0) {\n var _newRadius = Math.min(maxRadius, radius);\n path = \"M \".concat(x, \",\").concat(y + ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + xSign * _newRadius, \",\").concat(y, \"\\n L \").concat(x + width - xSign * _newRadius, \",\").concat(y, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width, \",\").concat(y + ySign * _newRadius, \"\\n L \").concat(x + width, \",\").concat(y + height - ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width - xSign * _newRadius, \",\").concat(y + height, \"\\n L \").concat(x + xSign * _newRadius, \",\").concat(y + height, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x, \",\").concat(y + height - ySign * _newRadius, \" Z\");\n } else {\n path = \"M \".concat(x, \",\").concat(y, \" h \").concat(width, \" v \").concat(height, \" h \").concat(-width, \" Z\");\n }\n return path;\n};\nexport var isInRectangle = function isInRectangle(point, rect) {\n if (!point || !rect) {\n return false;\n }\n var px = point.x,\n py = point.y;\n var x = rect.x,\n y = rect.y,\n width = rect.width,\n height = rect.height;\n if (Math.abs(width) > 0 && Math.abs(height) > 0) {\n var minX = Math.min(x, x + width);\n var maxX = Math.max(x, x + width);\n var minY = Math.min(y, y + height);\n var maxY = Math.max(y, y + height);\n return px >= minX && px <= maxX && py >= minY && py <= maxY;\n }\n return false;\n};\nvar defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n // The radius of border\n // The radius of four corners when radius is a number\n // The radius of left-top, right-top, right-bottom, left-bottom when radius is an array\n radius: 0,\n isAnimationActive: false,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};\nexport var Rectangle = function Rectangle(rectangleProps) {\n var props = _objectSpread(_objectSpread({}, defaultProps), rectangleProps);\n var pathRef = useRef();\n var _useState = useState(-1),\n _useState2 = _slicedToArray(_useState, 2),\n totalLength = _useState2[0],\n setTotalLength = _useState2[1];\n useEffect(function () {\n if (pathRef.current && pathRef.current.getTotalLength) {\n try {\n var pathTotalLength = pathRef.current.getTotalLength();\n if (pathTotalLength) {\n setTotalLength(pathTotalLength);\n }\n } catch (err) {\n // calculate total length error\n }\n }\n }, []);\n var x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n radius = props.radius,\n className = props.className;\n var animationEasing = props.animationEasing,\n animationDuration = props.animationDuration,\n animationBegin = props.animationBegin,\n isAnimationActive = props.isAnimationActive,\n isUpdateAnimationActive = props.isUpdateAnimationActive;\n if (x !== +x || y !== +y || width !== +width || height !== +height || width === 0 || height === 0) {\n return null;\n }\n var layerClass = clsx('recharts-rectangle', className);\n if (!isUpdateAnimationActive) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: layerClass,\n d: getRectanglePath(x, y, width, height, radius)\n }));\n }\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n to: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n duration: animationDuration,\n animationEasing: animationEasing,\n isActive: isUpdateAnimationActive\n }, function (_ref) {\n var currWidth = _ref.width,\n currHeight = _ref.height,\n currX = _ref.x,\n currY = _ref.y;\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\"),\n to: \"\".concat(totalLength, \"px 0px\"),\n attributeName: \"strokeDasharray\",\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing\n }, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: layerClass,\n d: getRectanglePath(currX, currY, currWidth, currHeight, radius),\n ref: pathRef\n })));\n });\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Sector\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nimport { polarToCartesian, RADIAN } from '../util/PolarUtils';\nimport { getPercentValue, mathSign } from '../util/DataUtils';\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 359.999);\n return sign * deltaAngle;\n};\nvar getTangentCircle = function getTangentCircle(_ref) {\n var cx = _ref.cx,\n cy = _ref.cy,\n radius = _ref.radius,\n angle = _ref.angle,\n sign = _ref.sign,\n isExternal = _ref.isExternal,\n cornerRadius = _ref.cornerRadius,\n cornerIsExternal = _ref.cornerIsExternal;\n var centerRadius = cornerRadius * (isExternal ? 1 : -1) + radius;\n var theta = Math.asin(cornerRadius / centerRadius) / RADIAN;\n var centerAngle = cornerIsExternal ? angle : angle + sign * theta;\n var center = polarToCartesian(cx, cy, centerRadius, centerAngle);\n // The coordinate of point which is tangent to the circle\n var circleTangency = polarToCartesian(cx, cy, radius, centerAngle);\n // The coordinate of point which is tangent to the radius line\n var lineTangencyAngle = cornerIsExternal ? angle - sign * theta : angle;\n var lineTangency = polarToCartesian(cx, cy, centerRadius * Math.cos(theta * RADIAN), lineTangencyAngle);\n return {\n center: center,\n circleTangency: circleTangency,\n lineTangency: lineTangency,\n theta: theta\n };\n};\nvar getSectorPath = function getSectorPath(_ref2) {\n var cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var angle = getDeltaAngle(startAngle, endAngle);\n\n // When the angle of sector equals to 360, star point and end point coincide\n var tempEndAngle = startAngle + angle;\n var outerStartPoint = polarToCartesian(cx, cy, outerRadius, startAngle);\n var outerEndPoint = polarToCartesian(cx, cy, outerRadius, tempEndAngle);\n var path = \"M \".concat(outerStartPoint.x, \",\").concat(outerStartPoint.y, \"\\n A \").concat(outerRadius, \",\").concat(outerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle > tempEndAngle), \",\\n \").concat(outerEndPoint.x, \",\").concat(outerEndPoint.y, \"\\n \");\n if (innerRadius > 0) {\n var innerStartPoint = polarToCartesian(cx, cy, innerRadius, startAngle);\n var innerEndPoint = polarToCartesian(cx, cy, innerRadius, tempEndAngle);\n path += \"L \".concat(innerEndPoint.x, \",\").concat(innerEndPoint.y, \"\\n A \").concat(innerRadius, \",\").concat(innerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle <= tempEndAngle), \",\\n \").concat(innerStartPoint.x, \",\").concat(innerStartPoint.y, \" Z\");\n } else {\n path += \"L \".concat(cx, \",\").concat(cy, \" Z\");\n }\n return path;\n};\nvar getSectorWithCorner = function getSectorWithCorner(_ref3) {\n var cx = _ref3.cx,\n cy = _ref3.cy,\n innerRadius = _ref3.innerRadius,\n outerRadius = _ref3.outerRadius,\n cornerRadius = _ref3.cornerRadius,\n forceCornerRadius = _ref3.forceCornerRadius,\n cornerIsExternal = _ref3.cornerIsExternal,\n startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var sign = mathSign(endAngle - startAngle);\n var _getTangentCircle = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: startAngle,\n sign: sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n soct = _getTangentCircle.circleTangency,\n solt = _getTangentCircle.lineTangency,\n sot = _getTangentCircle.theta;\n var _getTangentCircle2 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: endAngle,\n sign: -sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eoct = _getTangentCircle2.circleTangency,\n eolt = _getTangentCircle2.lineTangency,\n eot = _getTangentCircle2.theta;\n var outerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sot - eot;\n if (outerArcAngle < 0) {\n if (forceCornerRadius) {\n return \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(cornerRadius * 2, \",0\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(-cornerRadius * 2, \",0\\n \");\n }\n return getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n var path = \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(soct.x, \",\").concat(soct.y, \"\\n A\").concat(outerRadius, \",\").concat(outerRadius, \",0,\").concat(+(outerArcAngle > 180), \",\").concat(+(sign < 0), \",\").concat(eoct.x, \",\").concat(eoct.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eolt.x, \",\").concat(eolt.y, \"\\n \");\n if (innerRadius > 0) {\n var _getTangentCircle3 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: startAngle,\n sign: sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n sict = _getTangentCircle3.circleTangency,\n silt = _getTangentCircle3.lineTangency,\n sit = _getTangentCircle3.theta;\n var _getTangentCircle4 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: endAngle,\n sign: -sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eict = _getTangentCircle4.circleTangency,\n eilt = _getTangentCircle4.lineTangency,\n eit = _getTangentCircle4.theta;\n var innerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sit - eit;\n if (innerArcAngle < 0 && cornerRadius === 0) {\n return \"\".concat(path, \"L\").concat(cx, \",\").concat(cy, \"Z\");\n }\n path += \"L\".concat(eilt.x, \",\").concat(eilt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eict.x, \",\").concat(eict.y, \"\\n A\").concat(innerRadius, \",\").concat(innerRadius, \",0,\").concat(+(innerArcAngle > 180), \",\").concat(+(sign > 0), \",\").concat(sict.x, \",\").concat(sict.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(silt.x, \",\").concat(silt.y, \"Z\");\n } else {\n path += \"L\".concat(cx, \",\").concat(cy, \"Z\");\n }\n return path;\n};\nvar defaultProps = {\n cx: 0,\n cy: 0,\n innerRadius: 0,\n outerRadius: 0,\n startAngle: 0,\n endAngle: 0,\n cornerRadius: 0,\n forceCornerRadius: false,\n cornerIsExternal: false\n};\nexport var Sector = function Sector(sectorProps) {\n var props = _objectSpread(_objectSpread({}, defaultProps), sectorProps);\n var cx = props.cx,\n cy = props.cy,\n innerRadius = props.innerRadius,\n outerRadius = props.outerRadius,\n cornerRadius = props.cornerRadius,\n forceCornerRadius = props.forceCornerRadius,\n cornerIsExternal = props.cornerIsExternal,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n className = props.className;\n if (outerRadius < innerRadius || startAngle === endAngle) {\n return null;\n }\n var layerClass = clsx('recharts-sector', className);\n var deltaRadius = outerRadius - innerRadius;\n var cr = getPercentValue(cornerRadius, deltaRadius, 0, true);\n var path;\n if (cr > 0 && Math.abs(startAngle - endAngle) < 360) {\n path = getSectorWithCorner({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n cornerRadius: Math.min(cr, deltaRadius / 2),\n forceCornerRadius: forceCornerRadius,\n cornerIsExternal: cornerIsExternal,\n startAngle: startAngle,\n endAngle: endAngle\n });\n } else {\n path = getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: layerClass,\n d: path,\n role: \"img\"\n }));\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"type\", \"size\", \"sizeType\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\n/**\n * @fileOverview Curve\n */\nimport React from 'react';\nimport upperFirst from 'lodash/upperFirst';\nimport { symbol as shapeSymbol, symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye } from 'victory-vendor/d3-shape';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nvar symbolFactories = {\n symbolCircle: symbolCircle,\n symbolCross: symbolCross,\n symbolDiamond: symbolDiamond,\n symbolSquare: symbolSquare,\n symbolStar: symbolStar,\n symbolTriangle: symbolTriangle,\n symbolWye: symbolWye\n};\nvar RADIAN = Math.PI / 180;\nvar getSymbolFactory = function getSymbolFactory(type) {\n var name = \"symbol\".concat(upperFirst(type));\n return symbolFactories[name] || symbolCircle;\n};\nvar calculateAreaSize = function calculateAreaSize(size, sizeType, type) {\n if (sizeType === 'area') {\n return size;\n }\n switch (type) {\n case 'cross':\n return 5 * size * size / 9;\n case 'diamond':\n return 0.5 * size * size / Math.sqrt(3);\n case 'square':\n return size * size;\n case 'star':\n {\n var angle = 18 * RADIAN;\n return 1.25 * size * size * (Math.tan(angle) - Math.tan(angle * 2) * Math.pow(Math.tan(angle), 2));\n }\n case 'triangle':\n return Math.sqrt(3) * size * size / 4;\n case 'wye':\n return (21 - 10 * Math.sqrt(3)) * size * size / 8;\n default:\n return Math.PI * size * size / 4;\n }\n};\nvar registerSymbol = function registerSymbol(key, factory) {\n symbolFactories[\"symbol\".concat(upperFirst(key))] = factory;\n};\nexport var Symbols = function Symbols(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'circle' : _ref$type,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 64 : _ref$size,\n _ref$sizeType = _ref.sizeType,\n sizeType = _ref$sizeType === void 0 ? 'area' : _ref$sizeType,\n rest = _objectWithoutProperties(_ref, _excluded);\n var props = _objectSpread(_objectSpread({}, rest), {}, {\n type: type,\n size: size,\n sizeType: sizeType\n });\n\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n var getPath = function getPath() {\n var symbolFactory = getSymbolFactory(type);\n var symbol = shapeSymbol().type(symbolFactory).size(calculateAreaSize(size, sizeType, type));\n return symbol();\n };\n var className = props.className,\n cx = props.cx,\n cy = props.cy;\n var filteredProps = filterProps(props, true);\n if (cx === +cx && cy === +cy && size === +size) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filteredProps, {\n className: clsx('recharts-symbols', className),\n transform: \"translate(\".concat(cx, \", \").concat(cy, \")\"),\n d: getPath()\n }));\n }\n return null;\n};\nSymbols.registerSymbol = registerSymbol;","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Rectangle\n */\nimport React, { useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport Animate from 'react-smooth';\nimport { filterProps } from '../util/ReactUtils';\nvar getTrapezoidPath = function getTrapezoidPath(x, y, upperWidth, lowerWidth, height) {\n var widthGap = upperWidth - lowerWidth;\n var path;\n path = \"M \".concat(x, \",\").concat(y);\n path += \"L \".concat(x + upperWidth, \",\").concat(y);\n path += \"L \".concat(x + upperWidth - widthGap / 2, \",\").concat(y + height);\n path += \"L \".concat(x + upperWidth - widthGap / 2 - lowerWidth, \",\").concat(y + height);\n path += \"L \".concat(x, \",\").concat(y, \" Z\");\n return path;\n};\nvar defaultProps = {\n x: 0,\n y: 0,\n upperWidth: 0,\n lowerWidth: 0,\n height: 0,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};\nexport var Trapezoid = function Trapezoid(props) {\n var trapezoidProps = _objectSpread(_objectSpread({}, defaultProps), props);\n var pathRef = useRef();\n var _useState = useState(-1),\n _useState2 = _slicedToArray(_useState, 2),\n totalLength = _useState2[0],\n setTotalLength = _useState2[1];\n useEffect(function () {\n if (pathRef.current && pathRef.current.getTotalLength) {\n try {\n var pathTotalLength = pathRef.current.getTotalLength();\n if (pathTotalLength) {\n setTotalLength(pathTotalLength);\n }\n } catch (err) {\n // calculate total length error\n }\n }\n }, []);\n var x = trapezoidProps.x,\n y = trapezoidProps.y,\n upperWidth = trapezoidProps.upperWidth,\n lowerWidth = trapezoidProps.lowerWidth,\n height = trapezoidProps.height,\n className = trapezoidProps.className;\n var animationEasing = trapezoidProps.animationEasing,\n animationDuration = trapezoidProps.animationDuration,\n animationBegin = trapezoidProps.animationBegin,\n isUpdateAnimationActive = trapezoidProps.isUpdateAnimationActive;\n if (x !== +x || y !== +y || upperWidth !== +upperWidth || lowerWidth !== +lowerWidth || height !== +height || upperWidth === 0 && lowerWidth === 0 || height === 0) {\n return null;\n }\n var layerClass = clsx('recharts-trapezoid', className);\n if (!isUpdateAnimationActive) {\n return /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(trapezoidProps, true), {\n className: layerClass,\n d: getTrapezoidPath(x, y, upperWidth, lowerWidth, height)\n })));\n }\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: {\n upperWidth: 0,\n lowerWidth: 0,\n height: height,\n x: x,\n y: y\n },\n to: {\n upperWidth: upperWidth,\n lowerWidth: lowerWidth,\n height: height,\n x: x,\n y: y\n },\n duration: animationDuration,\n animationEasing: animationEasing,\n isActive: isUpdateAnimationActive\n }, function (_ref) {\n var currUpperWidth = _ref.upperWidth,\n currLowerWidth = _ref.lowerWidth,\n currHeight = _ref.height,\n currX = _ref.x,\n currY = _ref.y;\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\"),\n to: \"\".concat(totalLength, \"px 0px\"),\n attributeName: \"strokeDasharray\",\n begin: animationBegin,\n duration: animationDuration,\n easing: animationEasing\n }, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(trapezoidProps, true), {\n className: layerClass,\n d: getTrapezoidPath(currX, currY, currUpperWidth, currLowerWidth, currHeight),\n ref: pathRef\n })));\n });\n};","var _excluded = [\"option\", \"shapeType\", \"propTransformer\", \"activeClassName\", \"isActive\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React, { isValidElement, cloneElement } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport isPlainObject from 'lodash/isPlainObject';\nimport isBoolean from 'lodash/isBoolean';\nimport isEqual from 'lodash/isEqual';\nimport { Rectangle } from '../shape/Rectangle';\nimport { Trapezoid } from '../shape/Trapezoid';\nimport { Sector } from '../shape/Sector';\nimport { Layer } from '../container/Layer';\nimport { Symbols } from '../shape/Symbols';\n\n/**\n * This is an abstraction for rendering a user defined prop for a customized shape in several forms.\n *\n * is the root and will handle taking in:\n * - an object of svg properties\n * - a boolean\n * - a render prop(inline function that returns jsx)\n * - a react element\n *\n * is a subcomponent of and used to match a component\n * to the value of props.shapeType that is passed to the root.\n *\n */\n\nfunction defaultPropTransformer(option, props) {\n return _objectSpread(_objectSpread({}, props), option);\n}\nfunction isSymbolsProps(shapeType, _elementProps) {\n return shapeType === 'symbols';\n}\nfunction ShapeSelector(_ref) {\n var shapeType = _ref.shapeType,\n elementProps = _ref.elementProps;\n switch (shapeType) {\n case 'rectangle':\n return /*#__PURE__*/React.createElement(Rectangle, elementProps);\n case 'trapezoid':\n return /*#__PURE__*/React.createElement(Trapezoid, elementProps);\n case 'sector':\n return /*#__PURE__*/React.createElement(Sector, elementProps);\n case 'symbols':\n if (isSymbolsProps(shapeType, elementProps)) {\n return /*#__PURE__*/React.createElement(Symbols, elementProps);\n }\n break;\n default:\n return null;\n }\n}\nexport function getPropsFromShapeOption(option) {\n if ( /*#__PURE__*/isValidElement(option)) {\n return option.props;\n }\n return option;\n}\nexport function Shape(_ref2) {\n var option = _ref2.option,\n shapeType = _ref2.shapeType,\n _ref2$propTransformer = _ref2.propTransformer,\n propTransformer = _ref2$propTransformer === void 0 ? defaultPropTransformer : _ref2$propTransformer,\n _ref2$activeClassName = _ref2.activeClassName,\n activeClassName = _ref2$activeClassName === void 0 ? 'recharts-active-shape' : _ref2$activeClassName,\n isActive = _ref2.isActive,\n props = _objectWithoutProperties(_ref2, _excluded);\n var shape;\n if ( /*#__PURE__*/isValidElement(option)) {\n shape = /*#__PURE__*/cloneElement(option, _objectSpread(_objectSpread({}, props), getPropsFromShapeOption(option)));\n } else if (isFunction(option)) {\n shape = option(props);\n } else if (isPlainObject(option) && !isBoolean(option)) {\n var nextProps = propTransformer(option, props);\n shape = /*#__PURE__*/React.createElement(ShapeSelector, {\n shapeType: shapeType,\n elementProps: nextProps\n });\n } else {\n var elementProps = props;\n shape = /*#__PURE__*/React.createElement(ShapeSelector, {\n shapeType: shapeType,\n elementProps: elementProps\n });\n }\n if (isActive) {\n return /*#__PURE__*/React.createElement(Layer, {\n className: activeClassName\n }, shape);\n }\n return shape;\n}\n\n/**\n * This is an abstraction to handle identifying the active index from a tooltip mouse interaction\n */\n\nexport function isFunnel(graphicalItem, _item) {\n return _item != null && 'trapezoids' in graphicalItem.props;\n}\nexport function isPie(graphicalItem, _item) {\n return _item != null && 'sectors' in graphicalItem.props;\n}\nexport function isScatter(graphicalItem, _item) {\n return _item != null && 'points' in graphicalItem.props;\n}\nexport function compareFunnel(shapeData, activeTooltipItem) {\n var _activeTooltipItem$la, _activeTooltipItem$la2;\n var xMatches = shapeData.x === (activeTooltipItem === null || activeTooltipItem === void 0 || (_activeTooltipItem$la = activeTooltipItem.labelViewBox) === null || _activeTooltipItem$la === void 0 ? void 0 : _activeTooltipItem$la.x) || shapeData.x === activeTooltipItem.x;\n var yMatches = shapeData.y === (activeTooltipItem === null || activeTooltipItem === void 0 || (_activeTooltipItem$la2 = activeTooltipItem.labelViewBox) === null || _activeTooltipItem$la2 === void 0 ? void 0 : _activeTooltipItem$la2.y) || shapeData.y === activeTooltipItem.y;\n return xMatches && yMatches;\n}\nexport function comparePie(shapeData, activeTooltipItem) {\n var startAngleMatches = shapeData.endAngle === activeTooltipItem.endAngle;\n var endAngleMatches = shapeData.startAngle === activeTooltipItem.startAngle;\n return startAngleMatches && endAngleMatches;\n}\nexport function compareScatter(shapeData, activeTooltipItem) {\n var xMatches = shapeData.x === activeTooltipItem.x;\n var yMatches = shapeData.y === activeTooltipItem.y;\n var zMatches = shapeData.z === activeTooltipItem.z;\n return xMatches && yMatches && zMatches;\n}\nfunction getComparisonFn(graphicalItem, activeItem) {\n var comparison;\n if (isFunnel(graphicalItem, activeItem)) {\n comparison = compareFunnel;\n } else if (isPie(graphicalItem, activeItem)) {\n comparison = comparePie;\n } else if (isScatter(graphicalItem, activeItem)) {\n comparison = compareScatter;\n }\n return comparison;\n}\nfunction getShapeDataKey(graphicalItem, activeItem) {\n var shapeKey;\n if (isFunnel(graphicalItem, activeItem)) {\n shapeKey = 'trapezoids';\n } else if (isPie(graphicalItem, activeItem)) {\n shapeKey = 'sectors';\n } else if (isScatter(graphicalItem, activeItem)) {\n shapeKey = 'points';\n }\n return shapeKey;\n}\nfunction getActiveShapeTooltipPayload(graphicalItem, activeItem) {\n if (isFunnel(graphicalItem, activeItem)) {\n var _activeItem$tooltipPa;\n return (_activeItem$tooltipPa = activeItem.tooltipPayload) === null || _activeItem$tooltipPa === void 0 || (_activeItem$tooltipPa = _activeItem$tooltipPa[0]) === null || _activeItem$tooltipPa === void 0 || (_activeItem$tooltipPa = _activeItem$tooltipPa.payload) === null || _activeItem$tooltipPa === void 0 ? void 0 : _activeItem$tooltipPa.payload;\n }\n if (isPie(graphicalItem, activeItem)) {\n var _activeItem$tooltipPa2;\n return (_activeItem$tooltipPa2 = activeItem.tooltipPayload) === null || _activeItem$tooltipPa2 === void 0 || (_activeItem$tooltipPa2 = _activeItem$tooltipPa2[0]) === null || _activeItem$tooltipPa2 === void 0 || (_activeItem$tooltipPa2 = _activeItem$tooltipPa2.payload) === null || _activeItem$tooltipPa2 === void 0 ? void 0 : _activeItem$tooltipPa2.payload;\n }\n if (isScatter(graphicalItem, activeItem)) {\n return activeItem.payload;\n }\n return {};\n}\n/**\n *\n * @param {GetActiveShapeIndexForTooltip} arg an object of incoming attributes from Tooltip\n * @returns {number}\n *\n * To handle possible duplicates in the data set,\n * match both the data value of the active item to a data value on a graph item,\n * and match the mouse coordinates of the active item to the coordinates of in a particular components shape data.\n * This assumes equal lengths of shape objects to data items.\n */\nexport function getActiveShapeIndexForTooltip(_ref3) {\n var activeTooltipItem = _ref3.activeTooltipItem,\n graphicalItem = _ref3.graphicalItem,\n itemData = _ref3.itemData;\n var shapeKey = getShapeDataKey(graphicalItem, activeTooltipItem);\n var tooltipPayload = getActiveShapeTooltipPayload(graphicalItem, activeTooltipItem);\n var activeItemMatches = itemData.filter(function (datum, dataIndex) {\n var valuesMatch = isEqual(tooltipPayload, datum);\n var mouseCoordinateMatches = graphicalItem.props[shapeKey].filter(function (shapeData) {\n var comparison = getComparisonFn(graphicalItem, activeTooltipItem);\n return comparison(shapeData, activeTooltipItem);\n });\n\n // get the last index in case of multiple matches\n var indexOfMouseCoordinates = graphicalItem.props[shapeKey].indexOf(mouseCoordinateMatches[mouseCoordinateMatches.length - 1]);\n var coordinatesMatch = dataIndex === indexOfMouseCoordinates;\n return valuesMatch && coordinatesMatch;\n });\n\n // get the last index in case of multiple matches\n var activeIndex = itemData.indexOf(activeItemMatches[activeItemMatches.length - 1]);\n return activeIndex;\n}","/**\n * @fileOverview Cross\n */\n\nexport var Cell = function Cell(_props) {\n return null;\n};\nCell.displayName = 'Cell';","var _excluded = [\"x\", \"y\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nimport React from 'react';\nimport invariant from 'tiny-invariant';\nimport { Shape } from './ActiveShapeUtils';\n\n// Rectangle props is expecting x, y, height, width as numbers, name as a string, and radius as a custom type\n// When props are being spread in from a user defined component in Bar,\n// the prop types of an SVGElement have these typed as something else.\n// This function will return the passed in props\n// along with x, y, height as numbers, name as a string, and radius as number | [number, number, number, number]\nfunction typeguardBarRectangleProps(_ref, props) {\n var xProp = _ref.x,\n yProp = _ref.y,\n option = _objectWithoutProperties(_ref, _excluded);\n var xValue = \"\".concat(xProp);\n var x = parseInt(xValue, 10);\n var yValue = \"\".concat(yProp);\n var y = parseInt(yValue, 10);\n var heightValue = \"\".concat(props.height || option.height);\n var height = parseInt(heightValue, 10);\n var widthValue = \"\".concat(props.width || option.width);\n var width = parseInt(widthValue, 10);\n return _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, props), option), x ? {\n x: x\n } : {}), y ? {\n y: y\n } : {}), {}, {\n height: height,\n width: width,\n name: props.name,\n radius: props.radius\n });\n}\nexport function BarRectangle(props) {\n return /*#__PURE__*/React.createElement(Shape, _extends({\n shapeType: \"rectangle\",\n propTransformer: typeguardBarRectangleProps,\n activeClassName: \"recharts-active-bar\"\n }, props));\n}\n/**\n * Safely gets minPointSize from from the minPointSize prop if it is a function\n * @param minPointSize minPointSize as passed to the Bar component\n * @param defaultValue default minPointSize\n * @returns minPointSize\n */\nexport var minPointSizeCallback = function minPointSizeCallback(minPointSize) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return function (value, index) {\n if (typeof minPointSize === 'number') return minPointSize;\n var isValueNumber = typeof value === 'number';\n if (isValueNumber) {\n return minPointSize(value, index);\n }\n !isValueNumber ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"minPointSize callback function received a value with type of \".concat(_typeof(value), \". Currently only numbers are supported.\")) : invariant(false) : void 0;\n return defaultValue;\n };\n};","var _excluded = [\"value\", \"background\"];\nvar _Bar;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Render a group of bar\n */\nimport React, { PureComponent } from 'react';\nimport clsx from 'clsx';\nimport Animate from 'react-smooth';\nimport isEqual from 'lodash/isEqual';\nimport isNil from 'lodash/isNil';\nimport { Layer } from '../container/Layer';\nimport { ErrorBar } from './ErrorBar';\nimport { Cell } from '../component/Cell';\nimport { LabelList } from '../component/LabelList';\nimport { uniqueId, mathSign, interpolateNumber } from '../util/DataUtils';\nimport { filterProps, findAllByType } from '../util/ReactUtils';\nimport { Global } from '../util/Global';\nimport { getCateCoordinateOfBar, getValueByDataKey, truncateByDomain, getBaseValueOfBar, findPositionOfBar, getTooltipItem } from '../util/ChartUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { BarRectangle, minPointSizeCallback } from '../util/BarUtils';\nexport var Bar = /*#__PURE__*/function (_PureComponent) {\n function Bar() {\n var _this;\n _classCallCheck(this, Bar);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Bar, [].concat(args));\n _defineProperty(_this, \"state\", {\n isAnimationFinished: false\n });\n _defineProperty(_this, \"id\", uniqueId('recharts-bar-'));\n _defineProperty(_this, \"handleAnimationEnd\", function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n _this.setState({\n isAnimationFinished: true\n });\n if (onAnimationEnd) {\n onAnimationEnd();\n }\n });\n _defineProperty(_this, \"handleAnimationStart\", function () {\n var onAnimationStart = _this.props.onAnimationStart;\n _this.setState({\n isAnimationFinished: false\n });\n if (onAnimationStart) {\n onAnimationStart();\n }\n });\n return _this;\n }\n _inherits(Bar, _PureComponent);\n return _createClass(Bar, [{\n key: \"renderRectanglesStatically\",\n value: function renderRectanglesStatically(data) {\n var _this2 = this;\n var _this$props = this.props,\n shape = _this$props.shape,\n dataKey = _this$props.dataKey,\n activeIndex = _this$props.activeIndex,\n activeBar = _this$props.activeBar;\n var baseProps = filterProps(this.props, false);\n return data && data.map(function (entry, i) {\n var isActive = i === activeIndex;\n var option = isActive ? activeBar : shape;\n var props = _objectSpread(_objectSpread(_objectSpread({}, baseProps), entry), {}, {\n isActive: isActive,\n option: option,\n index: i,\n dataKey: dataKey,\n onAnimationStart: _this2.handleAnimationStart,\n onAnimationEnd: _this2.handleAnimationEnd\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-bar-rectangle\"\n }, adaptEventsOfChild(_this2.props, entry, i), {\n key: \"rectangle-\".concat(entry === null || entry === void 0 ? void 0 : entry.x, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.y, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.value)\n }), /*#__PURE__*/React.createElement(BarRectangle, props));\n });\n }\n }, {\n key: \"renderRectanglesWithAnimation\",\n value: function renderRectanglesWithAnimation() {\n var _this3 = this;\n var _this$props2 = this.props,\n data = _this$props2.data,\n layout = _this$props2.layout,\n isAnimationActive = _this$props2.isAnimationActive,\n animationBegin = _this$props2.animationBegin,\n animationDuration = _this$props2.animationDuration,\n animationEasing = _this$props2.animationEasing,\n animationId = _this$props2.animationId;\n var prevData = this.state.prevData;\n return /*#__PURE__*/React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"bar-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n var stepData = data.map(function (entry, index) {\n var prev = prevData && prevData[index];\n if (prev) {\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n var interpolatorWidth = interpolateNumber(prev.width, entry.width);\n var interpolatorHeight = interpolateNumber(prev.height, entry.height);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t),\n width: interpolatorWidth(t),\n height: interpolatorHeight(t)\n });\n }\n if (layout === 'horizontal') {\n var _interpolatorHeight = interpolateNumber(0, entry.height);\n var h = _interpolatorHeight(t);\n return _objectSpread(_objectSpread({}, entry), {}, {\n y: entry.y + entry.height - h,\n height: h\n });\n }\n var interpolator = interpolateNumber(0, entry.width);\n var w = interpolator(t);\n return _objectSpread(_objectSpread({}, entry), {}, {\n width: w\n });\n });\n return /*#__PURE__*/React.createElement(Layer, null, _this3.renderRectanglesStatically(stepData));\n });\n }\n }, {\n key: \"renderRectangles\",\n value: function renderRectangles() {\n var _this$props3 = this.props,\n data = _this$props3.data,\n isAnimationActive = _this$props3.isAnimationActive;\n var prevData = this.state.prevData;\n if (isAnimationActive && data && data.length && (!prevData || !isEqual(prevData, data))) {\n return this.renderRectanglesWithAnimation();\n }\n return this.renderRectanglesStatically(data);\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this4 = this;\n var _this$props4 = this.props,\n data = _this$props4.data,\n dataKey = _this$props4.dataKey,\n activeIndex = _this$props4.activeIndex;\n var backgroundProps = filterProps(this.props.background, false);\n return data.map(function (entry, i) {\n var value = entry.value,\n background = entry.background,\n rest = _objectWithoutProperties(entry, _excluded);\n if (!background) {\n return null;\n }\n var props = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, rest), {}, {\n fill: '#eee'\n }, background), backgroundProps), adaptEventsOfChild(_this4.props, entry, i)), {}, {\n onAnimationStart: _this4.handleAnimationStart,\n onAnimationEnd: _this4.handleAnimationEnd,\n dataKey: dataKey,\n index: i,\n className: 'recharts-bar-background-rectangle'\n });\n return /*#__PURE__*/React.createElement(BarRectangle, _extends({\n key: \"background-bar-\".concat(i),\n option: _this4.props.background,\n isActive: i === activeIndex\n }, props));\n });\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar(needClip, clipPathId) {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n var _this$props5 = this.props,\n data = _this$props5.data,\n xAxis = _this$props5.xAxis,\n yAxis = _this$props5.yAxis,\n layout = _this$props5.layout,\n children = _this$props5.children;\n var errorBarItems = findAllByType(children, ErrorBar);\n if (!errorBarItems) {\n return null;\n }\n var offset = layout === 'vertical' ? data[0].height / 2 : data[0].width / 2;\n var dataPointFormatter = function dataPointFormatter(dataPoint, dataKey) {\n /**\n * if the value coming from `getComposedData` is an array then this is a stacked bar chart.\n * arr[1] represents end value of the bar since the data is in the form of [startValue, endValue].\n * */\n var value = Array.isArray(dataPoint.value) ? dataPoint.value[1] : dataPoint.value;\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: value,\n errorVal: getValueByDataKey(dataPoint, dataKey)\n };\n };\n var errorBarProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, errorBarProps, errorBarItems.map(function (item) {\n return /*#__PURE__*/React.cloneElement(item, {\n key: \"error-bar-\".concat(clipPathId, \"-\").concat(item.props.dataKey),\n data: data,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: layout,\n offset: offset,\n dataPointFormatter: dataPointFormatter\n });\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n hide = _this$props6.hide,\n data = _this$props6.data,\n className = _this$props6.className,\n xAxis = _this$props6.xAxis,\n yAxis = _this$props6.yAxis,\n left = _this$props6.left,\n top = _this$props6.top,\n width = _this$props6.width,\n height = _this$props6.height,\n isAnimationActive = _this$props6.isAnimationActive,\n background = _this$props6.background,\n id = _this$props6.id;\n if (hide || !data || !data.length) {\n return null;\n }\n var isAnimationFinished = this.state.isAnimationFinished;\n var layerClass = clsx('recharts-bar', className);\n var needClipX = xAxis && xAxis.allowDataOverflow;\n var needClipY = yAxis && yAxis.allowDataOverflow;\n var needClip = needClipX || needClipY;\n var clipPathId = isNil(id) ? this.id : id;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClipX || needClipY ? /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: needClipX ? left : left - width / 2,\n y: needClipY ? top : top - height / 2,\n width: needClipX ? width : width * 2,\n height: needClipY ? height : height * 2\n }))) : null, /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-bar-rectangles\",\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n }, background ? this.renderBackground() : null, this.renderRectangles()), this.renderErrorBar(needClip, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, data));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curData: nextProps.data,\n prevData: prevState.curData\n };\n }\n if (nextProps.data !== prevState.curData) {\n return {\n curData: nextProps.data\n };\n }\n return null;\n }\n }]);\n}(PureComponent);\n_Bar = Bar;\n_defineProperty(Bar, \"displayName\", 'Bar');\n_defineProperty(Bar, \"defaultProps\", {\n xAxisId: 0,\n yAxisId: 0,\n legendType: 'rect',\n minPointSize: 0,\n hide: false,\n data: [],\n layout: 'vertical',\n activeBar: false,\n isAnimationActive: !Global.isSsr,\n animationBegin: 0,\n animationDuration: 400,\n animationEasing: 'ease'\n});\n/**\n * Compose the data of each group\n * @param {Object} props Props for the component\n * @param {Object} item An instance of Bar\n * @param {Array} barPosition The offset and size of each bar\n * @param {Object} xAxis The configuration of x-axis\n * @param {Object} yAxis The configuration of y-axis\n * @param {Array} stackedData The stacked data of a bar item\n * @return{Array} Composed data\n */\n_defineProperty(Bar, \"getComposedData\", function (_ref2) {\n var props = _ref2.props,\n item = _ref2.item,\n barPosition = _ref2.barPosition,\n bandSize = _ref2.bandSize,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n stackedData = _ref2.stackedData,\n dataStartIndex = _ref2.dataStartIndex,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var pos = findPositionOfBar(barPosition, item);\n if (!pos) {\n return null;\n }\n var layout = props.layout;\n var itemDefaultProps = item.type.defaultProps;\n var itemProps = itemDefaultProps !== undefined ? _objectSpread(_objectSpread({}, itemDefaultProps), item.props) : item.props;\n var dataKey = itemProps.dataKey,\n children = itemProps.children,\n minPointSizeProp = itemProps.minPointSize;\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n var stackedDomain = stackedData ? numericAxis.scale.domain() : null;\n var baseValue = getBaseValueOfBar({\n numericAxis: numericAxis\n });\n var cells = findAllByType(children, Cell);\n var rects = displayedData.map(function (entry, index) {\n var value, x, y, width, height, background;\n if (stackedData) {\n value = truncateByDomain(stackedData[dataStartIndex + index], stackedDomain);\n } else {\n value = getValueByDataKey(entry, dataKey);\n if (!Array.isArray(value)) {\n value = [baseValue, value];\n }\n }\n var minPointSize = minPointSizeCallback(minPointSizeProp, _Bar.defaultProps.minPointSize)(value[1], index);\n if (layout === 'horizontal') {\n var _ref4;\n var _ref3 = [yAxis.scale(value[0]), yAxis.scale(value[1])],\n baseValueScale = _ref3[0],\n currentValueScale = _ref3[1];\n x = getCateCoordinateOfBar({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n y = (_ref4 = currentValueScale !== null && currentValueScale !== void 0 ? currentValueScale : baseValueScale) !== null && _ref4 !== void 0 ? _ref4 : undefined;\n width = pos.size;\n var computedHeight = baseValueScale - currentValueScale;\n height = Number.isNaN(computedHeight) ? 0 : computedHeight;\n background = {\n x: x,\n y: yAxis.y,\n width: width,\n height: yAxis.height\n };\n if (Math.abs(minPointSize) > 0 && Math.abs(height) < Math.abs(minPointSize)) {\n var delta = mathSign(height || minPointSize) * (Math.abs(minPointSize) - Math.abs(height));\n y -= delta;\n height += delta;\n }\n } else {\n var _ref5 = [xAxis.scale(value[0]), xAxis.scale(value[1])],\n _baseValueScale = _ref5[0],\n _currentValueScale = _ref5[1];\n x = _baseValueScale;\n y = getCateCoordinateOfBar({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n width = _currentValueScale - _baseValueScale;\n height = pos.size;\n background = {\n x: xAxis.x,\n y: y,\n width: xAxis.width,\n height: height\n };\n if (Math.abs(minPointSize) > 0 && Math.abs(width) < Math.abs(minPointSize)) {\n var _delta = mathSign(width || minPointSize) * (Math.abs(minPointSize) - Math.abs(width));\n width += _delta;\n }\n }\n return _objectSpread(_objectSpread(_objectSpread({}, entry), {}, {\n x: x,\n y: y,\n width: width,\n height: height,\n value: stackedData ? value : value[1],\n payload: entry,\n background: background\n }, cells && cells[index] && cells[index].props), {}, {\n tooltipPayload: [getTooltipItem(item, entry)],\n tooltipPosition: {\n x: x + width / 2,\n y: y + height / 2\n }\n });\n });\n return _objectSpread({\n data: rects,\n layout: layout\n }, offset);\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport mapValues from 'lodash/mapValues';\nimport every from 'lodash/every';\nimport { getTicksOfScale, parseScale, checkDomainOfScale, getBandSizeOfAxis } from './ChartUtils';\nimport { findChildByType } from './ReactUtils';\nimport { getPercentValue } from './DataUtils';\nimport { Bar } from '../cartesian/Bar';\n\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {String} axisType The type of axes, x-axis or y-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height,\n layout = props.layout,\n children = props.children;\n var ids = Object.keys(axisMap);\n var steps = {\n left: offset.left,\n leftMirror: offset.left,\n right: width - offset.right,\n rightMirror: width - offset.right,\n top: offset.top,\n topMirror: offset.top,\n bottom: height - offset.bottom,\n bottomMirror: height - offset.bottom\n };\n var hasBar = !!findChildByType(children, Bar);\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var orientation = axis.orientation,\n domain = axis.domain,\n _axis$padding = axis.padding,\n padding = _axis$padding === void 0 ? {} : _axis$padding,\n mirror = axis.mirror,\n reversed = axis.reversed;\n var offsetKey = \"\".concat(orientation).concat(mirror ? 'Mirror' : '');\n var calculatedPadding, range, x, y, needSpace;\n if (axis.type === 'number' && (axis.padding === 'gap' || axis.padding === 'no-gap')) {\n var diff = domain[1] - domain[0];\n var smallestDistanceBetweenValues = Infinity;\n var sortedValues = axis.categoricalDomain.sort();\n sortedValues.forEach(function (value, index) {\n if (index > 0) {\n smallestDistanceBetweenValues = Math.min((value || 0) - (sortedValues[index - 1] || 0), smallestDistanceBetweenValues);\n }\n });\n if (Number.isFinite(smallestDistanceBetweenValues)) {\n var smallestDistanceInPercent = smallestDistanceBetweenValues / diff;\n var rangeWidth = axis.layout === 'vertical' ? offset.height : offset.width;\n if (axis.padding === 'gap') {\n calculatedPadding = smallestDistanceInPercent * rangeWidth / 2;\n }\n if (axis.padding === 'no-gap') {\n var gap = getPercentValue(props.barCategoryGap, smallestDistanceInPercent * rangeWidth);\n var halfBand = smallestDistanceInPercent * rangeWidth / 2;\n calculatedPadding = halfBand - gap - (halfBand - gap) / rangeWidth * gap;\n }\n }\n }\n if (axisType === 'xAxis') {\n range = [offset.left + (padding.left || 0) + (calculatedPadding || 0), offset.left + offset.width - (padding.right || 0) - (calculatedPadding || 0)];\n } else if (axisType === 'yAxis') {\n range = layout === 'horizontal' ? [offset.top + offset.height - (padding.bottom || 0), offset.top + (padding.top || 0)] : [offset.top + (padding.top || 0) + (calculatedPadding || 0), offset.top + offset.height - (padding.bottom || 0) - (calculatedPadding || 0)];\n } else {\n range = axis.range;\n }\n if (reversed) {\n range = [range[1], range[0]];\n }\n var _parseScale = parseScale(axis, chartName, hasBar),\n scale = _parseScale.scale,\n realScaleType = _parseScale.realScaleType;\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n if (axisType === 'xAxis') {\n needSpace = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;\n x = offset.left;\n y = steps[offsetKey] - needSpace * axis.height;\n } else if (axisType === 'yAxis') {\n needSpace = orientation === 'left' && !mirror || orientation === 'right' && mirror;\n x = steps[offsetKey] - needSpace * axis.width;\n y = offset.top;\n }\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n realScaleType: realScaleType,\n x: x,\n y: y,\n scale: scale,\n width: axisType === 'xAxis' ? offset.width : axis.width,\n height: axisType === 'yAxis' ? offset.height : axis.height\n });\n finalAxis.bandSize = getBandSizeOfAxis(finalAxis, ticks);\n if (!axis.hide && axisType === 'xAxis') {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.height;\n } else if (!axis.hide) {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.width;\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var rectWithPoints = function rectWithPoints(_ref, _ref2) {\n var x1 = _ref.x,\n y1 = _ref.y;\n var x2 = _ref2.x,\n y2 = _ref2.y;\n return {\n x: Math.min(x1, x2),\n y: Math.min(y1, y2),\n width: Math.abs(x2 - x1),\n height: Math.abs(y2 - y1)\n };\n};\n\n/**\n * Compute the x, y, width, and height of a box from two reference points.\n * @param {Object} coords x1, x2, y1, and y2\n * @return {Object} object\n */\nexport var rectWithCoords = function rectWithCoords(_ref3) {\n var x1 = _ref3.x1,\n y1 = _ref3.y1,\n x2 = _ref3.x2,\n y2 = _ref3.y2;\n return rectWithPoints({\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n });\n};\nexport var ScaleHelper = /*#__PURE__*/function () {\n function ScaleHelper(scale) {\n _classCallCheck(this, ScaleHelper);\n this.scale = scale;\n }\n return _createClass(ScaleHelper, [{\n key: \"domain\",\n get: function get() {\n return this.scale.domain;\n }\n }, {\n key: \"range\",\n get: function get() {\n return this.scale.range;\n }\n }, {\n key: \"rangeMin\",\n get: function get() {\n return this.range()[0];\n }\n }, {\n key: \"rangeMax\",\n get: function get() {\n return this.range()[1];\n }\n }, {\n key: \"bandwidth\",\n get: function get() {\n return this.scale.bandwidth;\n }\n }, {\n key: \"apply\",\n value: function apply(value) {\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref4.bandAware,\n position = _ref4.position;\n if (value === undefined) {\n return undefined;\n }\n if (position) {\n switch (position) {\n case 'start':\n {\n return this.scale(value);\n }\n case 'middle':\n {\n var offset = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + offset;\n }\n case 'end':\n {\n var _offset = this.bandwidth ? this.bandwidth() : 0;\n return this.scale(value) + _offset;\n }\n default:\n {\n return this.scale(value);\n }\n }\n }\n if (bandAware) {\n var _offset2 = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + _offset2;\n }\n return this.scale(value);\n }\n }, {\n key: \"isInRange\",\n value: function isInRange(value) {\n var range = this.range();\n var first = range[0];\n var last = range[range.length - 1];\n return first <= last ? value >= first && value <= last : value >= last && value <= first;\n }\n }], [{\n key: \"create\",\n value: function create(obj) {\n return new ScaleHelper(obj);\n }\n }]);\n}();\n_defineProperty(ScaleHelper, \"EPS\", 1e-4);\nexport var createLabeledScales = function createLabeledScales(options) {\n var scales = Object.keys(options).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, ScaleHelper.create(options[key])));\n }, {});\n return _objectSpread(_objectSpread({}, scales), {}, {\n apply: function apply(coord) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref5.bandAware,\n position = _ref5.position;\n return mapValues(coord, function (value, label) {\n return scales[label].apply(value, {\n bandAware: bandAware,\n position: position\n });\n });\n },\n isInRange: function isInRange(coord) {\n return every(coord, function (value, label) {\n return scales[label].isInRange(value);\n });\n }\n });\n};\n\n/** Normalizes the angle so that 0 <= angle < 180.\n * @param {number} angle Angle in degrees.\n * @return {number} the normalized angle with a value of at least 0 and never greater or equal to 180. */\nexport function normalizeAngle(angle) {\n return (angle % 180 + 180) % 180;\n}\n\n/** Calculates the width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.\n * @param {Object} size Width and height of the text in a horizontal position.\n * @param {number} angle Angle in degrees in which the text is displayed.\n * @return {number} The width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.\n */\nexport var getAngledRectangleWidth = function getAngledRectangleWidth(_ref6) {\n var width = _ref6.width,\n height = _ref6.height;\n var angle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Ensure angle is >= 0 && < 180\n var normalizedAngle = normalizeAngle(angle);\n var angleRadians = normalizedAngle * Math.PI / 180;\n\n /* Depending on the height and width of the rectangle, we may need to use different formulas to calculate the angled\n * width. This threshold defines when each formula should kick in. */\n var angleThreshold = Math.atan(height / width);\n var angledWidth = angleRadians > angleThreshold && angleRadians < Math.PI - angleThreshold ? height / Math.sin(angleRadians) : width / Math.cos(angleRadians);\n return Math.abs(angledWidth);\n};","function _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);","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport * as d3Scales from 'victory-vendor/d3-scale';\nimport { stack as shapeStack, stackOffsetExpand, stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle, stackOrderNone } from 'victory-vendor/d3-shape';\nimport max from 'lodash/max';\nimport min from 'lodash/min';\nimport isNil from 'lodash/isNil';\nimport isFunction from 'lodash/isFunction';\nimport isString from 'lodash/isString';\nimport get from 'lodash/get';\nimport flatMap from 'lodash/flatMap';\nimport isNan from 'lodash/isNaN';\nimport upperFirst from 'lodash/upperFirst';\nimport isEqual from 'lodash/isEqual';\nimport sortBy from 'lodash/sortBy';\nimport { getNiceTickValues, getTickValuesFixedDomain } from 'recharts-scale';\nimport { ErrorBar } from '../cartesian/ErrorBar';\nimport { findEntryInArray, getPercentValue, isNumber, isNumOrStr, mathSign, uniqueId } from './DataUtils';\nimport { filterProps, findAllByType, getDisplayName } from './ReactUtils';\n// TODO: Cause of circular dependency. Needs refactor.\n// import { RadiusAxisProps, AngleAxisProps } from '../polar/types';\n\nimport { getLegendProps } from './getLegendProps';\n\n// Exported for backwards compatibility\nexport { getLegendProps };\nexport function getValueByDataKey(obj, dataKey, defaultValue) {\n if (isNil(obj) || isNil(dataKey)) {\n return defaultValue;\n }\n if (isNumOrStr(dataKey)) {\n return get(obj, dataKey, defaultValue);\n }\n if (isFunction(dataKey)) {\n return dataKey(obj);\n }\n return defaultValue;\n}\n/**\n * Get domain of data by key.\n * @param {Array} data The data displayed in the chart\n * @param {String} key The unique key of a group of data\n * @param {String} type The type of axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain of data\n */\nexport function getDomainOfDataByKey(data, key, type, filterNil) {\n var flattenData = flatMap(data, function (entry) {\n return getValueByDataKey(entry, key);\n });\n if (type === 'number') {\n // @ts-expect-error parseFloat type only accepts strings\n var domain = flattenData.filter(function (entry) {\n return isNumber(entry) || parseFloat(entry);\n });\n return domain.length ? [min(domain), max(domain)] : [Infinity, -Infinity];\n }\n var validateData = filterNil ? flattenData.filter(function (entry) {\n return !isNil(entry);\n }) : flattenData;\n\n // Supports x-axis of Date type\n return validateData.map(function (entry) {\n return isNumOrStr(entry) || entry instanceof Date ? entry : '';\n });\n}\nexport var calculateActiveTickIndex = function calculateActiveTickIndex(coordinate) {\n var _ticks$length;\n var ticks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var unsortedTicks = arguments.length > 2 ? arguments[2] : undefined;\n var axis = arguments.length > 3 ? arguments[3] : undefined;\n var index = -1;\n var len = (_ticks$length = ticks === null || ticks === void 0 ? void 0 : ticks.length) !== null && _ticks$length !== void 0 ? _ticks$length : 0;\n\n // if there are 1 or less ticks ticks then the active tick is at index 0\n if (len <= 1) {\n return 0;\n }\n if (axis && axis.axisType === 'angleAxis' && Math.abs(Math.abs(axis.range[1] - axis.range[0]) - 360) <= 1e-6) {\n var range = axis.range;\n // ticks are distributed in a circle\n for (var i = 0; i < len; i++) {\n var before = i > 0 ? unsortedTicks[i - 1].coordinate : unsortedTicks[len - 1].coordinate;\n var cur = unsortedTicks[i].coordinate;\n var after = i >= len - 1 ? unsortedTicks[0].coordinate : unsortedTicks[i + 1].coordinate;\n var sameDirectionCoord = void 0;\n if (mathSign(cur - before) !== mathSign(after - cur)) {\n var diffInterval = [];\n if (mathSign(after - cur) === mathSign(range[1] - range[0])) {\n sameDirectionCoord = after;\n var curInRange = cur + range[1] - range[0];\n diffInterval[0] = Math.min(curInRange, (curInRange + before) / 2);\n diffInterval[1] = Math.max(curInRange, (curInRange + before) / 2);\n } else {\n sameDirectionCoord = before;\n var afterInRange = after + range[1] - range[0];\n diffInterval[0] = Math.min(cur, (afterInRange + cur) / 2);\n diffInterval[1] = Math.max(cur, (afterInRange + cur) / 2);\n }\n var sameInterval = [Math.min(cur, (sameDirectionCoord + cur) / 2), Math.max(cur, (sameDirectionCoord + cur) / 2)];\n if (coordinate > sameInterval[0] && coordinate <= sameInterval[1] || coordinate >= diffInterval[0] && coordinate <= diffInterval[1]) {\n index = unsortedTicks[i].index;\n break;\n }\n } else {\n var minValue = Math.min(before, after);\n var maxValue = Math.max(before, after);\n if (coordinate > (minValue + cur) / 2 && coordinate <= (maxValue + cur) / 2) {\n index = unsortedTicks[i].index;\n break;\n }\n }\n }\n } else {\n // ticks are distributed in a single direction\n for (var _i = 0; _i < len; _i++) {\n if (_i === 0 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i > 0 && _i < len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i === len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2) {\n index = ticks[_i].index;\n break;\n }\n }\n }\n return index;\n};\n\n/**\n * Get the main color of each graphic item\n * @param {ReactElement} item A graphic item\n * @return {String} Color\n */\nexport var getMainColorOfGraphicItem = function getMainColorOfGraphicItem(item) {\n var _item$type;\n var _ref = item,\n displayName = _ref.type.displayName; // TODO: check if displayName is valid.\n var defaultedProps = (_item$type = item.type) !== null && _item$type !== void 0 && _item$type.defaultProps ? _objectSpread(_objectSpread({}, item.type.defaultProps), item.props) : item.props;\n var stroke = defaultedProps.stroke,\n fill = defaultedProps.fill;\n var result;\n switch (displayName) {\n case 'Line':\n result = stroke;\n break;\n case 'Area':\n case 'Radar':\n result = stroke && stroke !== 'none' ? stroke : fill;\n break;\n default:\n result = fill;\n break;\n }\n return result;\n};\n/**\n * Calculate the size of all groups for stacked bar graph\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @return {Object} The size of all groups\n */\nexport var getBarSizeList = function getBarSizeList(_ref2) {\n var globalSize = _ref2.barSize,\n totalSize = _ref2.totalSize,\n _ref2$stackGroups = _ref2.stackGroups,\n stackGroups = _ref2$stackGroups === void 0 ? {} : _ref2$stackGroups;\n if (!stackGroups) {\n return {};\n }\n var result = {};\n var numericAxisIds = Object.keys(stackGroups);\n for (var i = 0, len = numericAxisIds.length; i < len; i++) {\n var sgs = stackGroups[numericAxisIds[i]].stackGroups;\n var stackIds = Object.keys(sgs);\n for (var j = 0, sLen = stackIds.length; j < sLen; j++) {\n var _sgs$stackIds$j = sgs[stackIds[j]],\n items = _sgs$stackIds$j.items,\n cateAxisId = _sgs$stackIds$j.cateAxisId;\n var barItems = items.filter(function (item) {\n return getDisplayName(item.type).indexOf('Bar') >= 0;\n });\n if (barItems && barItems.length) {\n var barItemDefaultProps = barItems[0].type.defaultProps;\n var barItemProps = barItemDefaultProps !== undefined ? _objectSpread(_objectSpread({}, barItemDefaultProps), barItems[0].props) : barItems[0].props;\n var selfSize = barItemProps.barSize;\n var cateId = barItemProps[cateAxisId];\n if (!result[cateId]) {\n result[cateId] = [];\n }\n var barSize = isNil(selfSize) ? globalSize : selfSize;\n result[cateId].push({\n item: barItems[0],\n stackList: barItems.slice(1),\n barSize: isNil(barSize) ? undefined : getPercentValue(barSize, totalSize, 0)\n });\n }\n }\n }\n return result;\n};\n/**\n * Calculate the size of each bar and offset between start of band and the bar\n *\n * @param {number} bandSize is the size of area where bars can render\n * @param {number | string} barGap is the gap size, as a percentage of `bandSize`.\n * Can be defined as number or percent string\n * @param {number | string} barCategoryGap is the gap size, as a percentage of `bandSize`.\n * Can be defined as number or percent string\n * @param {Array} sizeList Sizes of all groups\n * @param {number} maxBarSize The maximum size of each bar\n * @return {Array} The size and offset of each bar\n */\nexport var getBarPosition = function getBarPosition(_ref3) {\n var barGap = _ref3.barGap,\n barCategoryGap = _ref3.barCategoryGap,\n bandSize = _ref3.bandSize,\n _ref3$sizeList = _ref3.sizeList,\n sizeList = _ref3$sizeList === void 0 ? [] : _ref3$sizeList,\n maxBarSize = _ref3.maxBarSize;\n var len = sizeList.length;\n if (len < 1) return null;\n var realBarGap = getPercentValue(barGap, bandSize, 0, true);\n var result;\n var initialValue = [];\n\n // whether or not is barSize setted by user\n if (sizeList[0].barSize === +sizeList[0].barSize) {\n var useFull = false;\n var fullBarSize = bandSize / len;\n // @ts-expect-error the type check above does not check for type number explicitly\n var sum = sizeList.reduce(function (res, entry) {\n return res + entry.barSize || 0;\n }, 0);\n sum += (len - 1) * realBarGap;\n if (sum >= bandSize) {\n sum -= (len - 1) * realBarGap;\n realBarGap = 0;\n }\n if (sum >= bandSize && fullBarSize > 0) {\n useFull = true;\n fullBarSize *= 0.9;\n sum = len * fullBarSize;\n }\n var offset = (bandSize - sum) / 2 >> 0;\n var prev = {\n offset: offset - realBarGap,\n size: 0\n };\n result = sizeList.reduce(function (res, entry) {\n var newPosition = {\n item: entry.item,\n position: {\n offset: prev.offset + prev.size + realBarGap,\n // @ts-expect-error the type check above does not check for type number explicitly\n size: useFull ? fullBarSize : entry.barSize\n }\n };\n var newRes = [].concat(_toConsumableArray(res), [newPosition]);\n prev = newRes[newRes.length - 1].position;\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: prev\n });\n });\n }\n return newRes;\n }, initialValue);\n } else {\n var _offset = getPercentValue(barCategoryGap, bandSize, 0, true);\n if (bandSize - 2 * _offset - (len - 1) * realBarGap <= 0) {\n realBarGap = 0;\n }\n var originalSize = (bandSize - 2 * _offset - (len - 1) * realBarGap) / len;\n if (originalSize > 1) {\n originalSize >>= 0;\n }\n var size = maxBarSize === +maxBarSize ? Math.min(originalSize, maxBarSize) : originalSize;\n result = sizeList.reduce(function (res, entry, i) {\n var newRes = [].concat(_toConsumableArray(res), [{\n item: entry.item,\n position: {\n offset: _offset + (originalSize + realBarGap) * i + (originalSize - size) / 2,\n size: size\n }\n }]);\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: newRes[newRes.length - 1].position\n });\n });\n }\n return newRes;\n }, initialValue);\n }\n return result;\n};\nexport var appendOffsetOfLegend = function appendOffsetOfLegend(offset, _unused, props, legendBox) {\n var children = props.children,\n width = props.width,\n margin = props.margin;\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var legendProps = getLegendProps({\n children: children,\n legendWidth: legendWidth\n });\n if (legendProps) {\n var _ref4 = legendBox || {},\n boxWidth = _ref4.width,\n boxHeight = _ref4.height;\n var align = legendProps.align,\n verticalAlign = legendProps.verticalAlign,\n layout = legendProps.layout;\n if ((layout === 'vertical' || layout === 'horizontal' && verticalAlign === 'middle') && align !== 'center' && isNumber(offset[align])) {\n return _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, align, offset[align] + (boxWidth || 0)));\n }\n if ((layout === 'horizontal' || layout === 'vertical' && align === 'center') && verticalAlign !== 'middle' && isNumber(offset[verticalAlign])) {\n return _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, verticalAlign, offset[verticalAlign] + (boxHeight || 0)));\n }\n }\n return offset;\n};\nvar isErrorBarRelevantForAxis = function isErrorBarRelevantForAxis(layout, axisType, direction) {\n if (isNil(axisType)) {\n return true;\n }\n if (layout === 'horizontal') {\n return axisType === 'yAxis';\n }\n if (layout === 'vertical') {\n return axisType === 'xAxis';\n }\n if (direction === 'x') {\n return axisType === 'xAxis';\n }\n if (direction === 'y') {\n return axisType === 'yAxis';\n }\n return true;\n};\nexport var getDomainOfErrorBars = function getDomainOfErrorBars(data, item, dataKey, layout, axisType) {\n var children = item.props.children;\n var errorBars = findAllByType(children, ErrorBar).filter(function (errorBarChild) {\n return isErrorBarRelevantForAxis(layout, axisType, errorBarChild.props.direction);\n });\n if (errorBars && errorBars.length) {\n var keys = errorBars.map(function (errorBarChild) {\n return errorBarChild.props.dataKey;\n });\n return data.reduce(function (result, entry) {\n var entryValue = getValueByDataKey(entry, dataKey);\n if (isNil(entryValue)) return result;\n var mainValue = Array.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(Array.isArray(errorValue) ? errorValue[0] : errorValue);\n var upperValue = mainValue[1] + Math.abs(Array.isArray(errorValue) ? errorValue[1] : errorValue);\n return [Math.min(lowerValue, prevErrorArr[0]), Math.max(upperValue, prevErrorArr[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(errorDomain[0], result[0]), Math.max(errorDomain[1], result[1])];\n }, [Infinity, -Infinity]);\n }\n return null;\n};\nexport var parseErrorBarsOfAxis = function parseErrorBarsOfAxis(data, items, dataKey, axisType, layout) {\n var domains = items.map(function (item) {\n return getDomainOfErrorBars(data, item, dataKey, layout, axisType);\n }).filter(function (entry) {\n return !isNil(entry);\n });\n if (domains && domains.length) {\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n return null;\n};\n\n/**\n * Get domain of data by the configuration of item element\n * @param {Array} data The data displayed in the chart\n * @param {Array} items The instances of item\n * @param {String} type The type of axis, number - Number Axis, category - Category Axis\n * @param {LayoutType} layout The type of layout\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain\n */\nexport var getDomainOfItemsWithSameAxis = function getDomainOfItemsWithSameAxis(data, items, type, layout, filterNil) {\n var domains = items.map(function (item) {\n var dataKey = item.props.dataKey;\n if (type === 'number' && dataKey) {\n return getDomainOfErrorBars(data, item, dataKey, layout) || getDomainOfDataByKey(data, dataKey, type, filterNil);\n }\n return getDomainOfDataByKey(data, dataKey, type, filterNil);\n });\n if (type === 'number') {\n // Calculate the domain of number axis\n return domains.reduce(\n // @ts-expect-error if (type === number) means that the domain is numerical type\n // - but this link is missing in the type definition\n function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n var tag = {};\n // Get the union set of category axis\n return domains.reduce(function (result, entry) {\n for (var i = 0, len = entry.length; i < len; i++) {\n // @ts-expect-error Date cannot index an object\n if (!tag[entry[i]]) {\n // @ts-expect-error Date cannot index an object\n tag[entry[i]] = true;\n\n // @ts-expect-error Date cannot index an object\n result.push(entry[i]);\n }\n }\n return result;\n }, []);\n};\nexport var isCategoricalAxis = function isCategoricalAxis(layout, axisType) {\n return layout === 'horizontal' && axisType === 'xAxis' || layout === 'vertical' && axisType === 'yAxis' || layout === 'centric' && axisType === 'angleAxis' || layout === 'radial' && axisType === 'radiusAxis';\n};\n\n/**\n * Calculate the Coordinates of grid\n * @param {Array} ticks The ticks in axis\n * @param {Number} minValue The minimun value of axis\n * @param {Number} maxValue The maximun value of axis\n * @param {boolean} syncWithTicks Synchronize grid lines with ticks or not\n * @return {Array} Coordinates\n */\nexport var getCoordinatesOfGrid = function getCoordinatesOfGrid(ticks, minValue, maxValue, syncWithTicks) {\n if (syncWithTicks) {\n return ticks.map(function (entry) {\n return entry.coordinate;\n });\n }\n var hasMin, hasMax;\n var values = ticks.map(function (entry) {\n if (entry.coordinate === minValue) {\n hasMin = true;\n }\n if (entry.coordinate === maxValue) {\n hasMax = true;\n }\n return entry.coordinate;\n });\n if (!hasMin) {\n values.push(minValue);\n }\n if (!hasMax) {\n values.push(maxValue);\n }\n return values;\n};\n\n/**\n * Get the ticks of an axis\n * @param {Object} axis The configuration of an axis\n * @param {Boolean} isGrid Whether or not are the ticks in grid\n * @param {Boolean} isAll Return the ticks of all the points or not\n * @return {Array} Ticks\n */\nexport var getTicksOfAxis = function getTicksOfAxis(axis, isGrid, isAll) {\n if (!axis) return null;\n var scale = axis.scale;\n var duplicateDomain = axis.duplicateDomain,\n type = axis.type,\n range = axis.range;\n var offsetForBand = axis.realScaleType === 'scaleBand' ? scale.bandwidth() / 2 : 2;\n var offset = (isGrid || isAll) && type === 'category' && scale.bandwidth ? scale.bandwidth() / offsetForBand : 0;\n offset = axis.axisType === 'angleAxis' && (range === null || range === void 0 ? void 0 : range.length) >= 2 ? mathSign(range[0] - range[1]) * 2 * offset : offset;\n\n // The ticks set by user should only affect the ticks adjacent to axis line\n if (isGrid && (axis.ticks || axis.niceTicks)) {\n var result = (axis.ticks || axis.niceTicks).map(function (entry) {\n var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;\n return {\n // If the scaleContent is not a number, the coordinate will be NaN.\n // That could be the case for example with a PointScale and a string as domain.\n coordinate: scale(scaleContent) + offset,\n value: entry,\n offset: offset\n };\n });\n return result.filter(function (row) {\n return !isNan(row.coordinate);\n });\n }\n\n // When axis is a categorial axis, but the type of axis is number or the scale of axis is not \"auto\"\n if (axis.isCategorical && axis.categoricalDomain) {\n return axis.categoricalDomain.map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n index: index,\n offset: offset\n };\n });\n }\n if (scale.ticks && !isAll) {\n return scale.ticks(axis.tickCount).map(function (entry) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n offset: offset\n };\n });\n }\n\n // When axis has duplicated text, serial numbers are used to generate scale\n return scale.domain().map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index: index,\n offset: offset\n };\n });\n};\n\n/**\n * combine the handlers\n * @param {Function} defaultHandler Internal private handler\n * @param {Function} childHandler Handler function specified in child component\n * @return {Function} The combined handler\n */\n\nvar handlerWeakMap = new WeakMap();\nexport var combineEventHandlers = function combineEventHandlers(defaultHandler, childHandler) {\n if (typeof childHandler !== 'function') {\n return defaultHandler;\n }\n if (!handlerWeakMap.has(defaultHandler)) {\n handlerWeakMap.set(defaultHandler, new WeakMap());\n }\n var childWeakMap = handlerWeakMap.get(defaultHandler);\n if (childWeakMap.has(childHandler)) {\n return childWeakMap.get(childHandler);\n }\n var combineHandler = function combineHandler() {\n defaultHandler.apply(void 0, arguments);\n childHandler.apply(void 0, arguments);\n };\n childWeakMap.set(childHandler, combineHandler);\n return combineHandler;\n};\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 {object} The scale function and resolved name\n */\nexport var parseScale = function parseScale(axis, chartType, hasBar) {\n var scale = axis.scale,\n type = axis.type,\n layout = axis.layout,\n axisType = axis.axisType;\n if (scale === 'auto') {\n if (layout === 'radial' && axisType === 'radiusAxis') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n if (layout === 'radial' && axisType === 'angleAxis') {\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n if (type === 'category' && chartType && (chartType.indexOf('LineChart') >= 0 || chartType.indexOf('AreaChart') >= 0 || chartType.indexOf('ComposedChart') >= 0 && !hasBar)) {\n return {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n }\n if (type === 'category') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n if (isString(scale)) {\n var name = \"scale\".concat(upperFirst(scale));\n return {\n scale: (d3Scales[name] || d3Scales.scalePoint)(),\n realScaleType: d3Scales[name] ? name : 'point'\n };\n }\n return isFunction(scale) ? {\n scale: scale\n } : {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n};\nvar EPS = 1e-4;\nexport var checkDomainOfScale = function checkDomainOfScale(scale) {\n var domain = scale.domain();\n if (!domain || domain.length <= 2) {\n return;\n }\n var len = domain.length;\n var range = scale.range();\n var minValue = Math.min(range[0], range[1]) - EPS;\n var maxValue = Math.max(range[0], range[1]) + EPS;\n var first = scale(domain[0]);\n var last = scale(domain[len - 1]);\n if (first < minValue || first > maxValue || last < minValue || last > maxValue) {\n scale.domain([domain[0], domain[len - 1]]);\n }\n};\nexport var findPositionOfBar = function findPositionOfBar(barPosition, child) {\n if (!barPosition) {\n return null;\n }\n for (var i = 0, len = barPosition.length; i < len; i++) {\n if (barPosition[i].item === child) {\n return barPosition[i].position;\n }\n }\n return null;\n};\n\n/**\n * Both value and domain are tuples of two numbers\n * - but the type stays as array of numbers until we have better support in rest of the app\n * @param {Array} value input that will be truncated\n * @param {Array} domain boundaries\n * @returns {Array} tuple of two numbers\n */\nexport var truncateByDomain = function truncateByDomain(value, domain) {\n if (!domain || domain.length !== 2 || !isNumber(domain[0]) || !isNumber(domain[1])) {\n return value;\n }\n var minValue = Math.min(domain[0], domain[1]);\n var maxValue = Math.max(domain[0], domain[1]);\n var result = [value[0], value[1]];\n if (!isNumber(value[0]) || value[0] < minValue) {\n result[0] = minValue;\n }\n if (!isNumber(value[1]) || value[1] > maxValue) {\n result[1] = maxValue;\n }\n if (result[0] > maxValue) {\n result[0] = maxValue;\n }\n if (result[1] < minValue) {\n result[1] = minValue;\n }\n return result;\n};\n\n/**\n * Stacks all positive numbers above zero and all negative numbers below zero.\n *\n * If all values in the series are positive then this behaves the same as 'none' stacker.\n *\n * @param {Array} series from d3-shape Stack\n * @return {Array} series with applied offset\n */\nexport var offsetSign = function offsetSign(series) {\n var n = series.length;\n if (n <= 0) {\n return;\n }\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n var negative = 0;\n for (var i = 0; i < n; ++i) {\n var value = isNan(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n\n /* eslint-disable prefer-destructuring, no-param-reassign */\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, no-param-reassign */\n }\n }\n};\n\n/**\n * Replaces all negative values with zero when stacking data.\n *\n * If all values in the series are positive then this behaves the same as 'none' stacker.\n *\n * @param {Array} series from d3-shape Stack\n * @return {Array} series with applied offset\n */\nexport var offsetPositive = function offsetPositive(series) {\n var n = series.length;\n if (n <= 0) {\n return;\n }\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n for (var i = 0; i < n; ++i) {\n var value = isNan(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n\n /* eslint-disable prefer-destructuring, no-param-reassign */\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, no-param-reassign */\n }\n }\n};\n\n/**\n * Function type to compute offset for stacked data.\n *\n * d3-shape has something fishy going on with its types.\n * In @definitelytyped/d3-shape, this function (the offset accessor) is typed as Series<> => void.\n * However! When I actually open the storybook I can see that the offset accessor actually receives Array>.\n * The same I can see in the source code itself:\n * https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/66042\n * That one unfortunately has no types but we can tell it passes three-dimensional array.\n *\n * Which leads me to believe that definitelytyped is wrong on this one.\n * There's open discussion on this topic without much attention:\n * https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/66042\n */\n\nvar STACK_OFFSET_MAP = {\n sign: offsetSign,\n // @ts-expect-error definitelytyped types are incorrect\n expand: stackOffsetExpand,\n // @ts-expect-error definitelytyped types are incorrect\n none: stackOffsetNone,\n // @ts-expect-error definitelytyped types are incorrect\n silhouette: stackOffsetSilhouette,\n // @ts-expect-error definitelytyped types are incorrect\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 offsetAccessor = STACK_OFFSET_MAP[offsetType];\n var stack = shapeStack()\n // @ts-expect-error stack.keys type wants an array of strings, but we provide array of DataKeys\n .keys(dataKeys).value(function (d, key) {\n return +getValueByDataKey(d, key, 0);\n }).order(stackOrderNone)\n // @ts-expect-error definitelytyped types are incorrect\n .offset(offsetAccessor);\n return stack(data);\n};\nexport var getStackGroupsByAxisId = function getStackGroupsByAxisId(data, _items, numericAxisId, cateAxisId, offsetType, reverseStackOrder) {\n if (!data) {\n return null;\n }\n\n // reversing items to affect render order (for layering)\n var items = reverseStackOrder ? _items.reverse() : _items;\n var parentStackGroupsInitialValue = {};\n var stackGroups = items.reduce(function (result, item) {\n var _item$type2;\n var defaultedProps = (_item$type2 = item.type) !== null && _item$type2 !== void 0 && _item$type2.defaultProps ? _objectSpread(_objectSpread({}, item.type.defaultProps), item.props) : item.props;\n var stackId = defaultedProps.stackId,\n hide = defaultedProps.hide;\n if (hide) {\n return result;\n }\n var axisId = defaultedProps[numericAxisId];\n var parentGroup = result[axisId] || {\n hasStack: false,\n stackGroups: {}\n };\n if (isNumOrStr(stackId)) {\n var childGroup = parentGroup.stackGroups[stackId] || {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: []\n };\n childGroup.items.push(item);\n parentGroup.hasStack = true;\n parentGroup.stackGroups[stackId] = childGroup;\n } else {\n parentGroup.stackGroups[uniqueId('_stackId_')] = {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: [item]\n };\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, parentGroup));\n }, parentStackGroupsInitialValue);\n var axisStackGroupsInitialValue = {};\n return Object.keys(stackGroups).reduce(function (result, axisId) {\n var group = stackGroups[axisId];\n if (group.hasStack) {\n var stackGroupsInitialValue = {};\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 }, stackGroupsInitialValue);\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, group));\n }, axisStackGroupsInitialValue);\n};\n\n/**\n * Configure the scale function of axis\n * @param {Object} scale The scale function\n * @param {Object} opts The configuration of axis\n * @return {Object} null\n */\nexport var getTicksOfScale = function getTicksOfScale(scale, opts) {\n var realScaleType = opts.realScaleType,\n type = opts.type,\n tickCount = opts.tickCount,\n originalDomain = opts.originalDomain,\n allowDecimals = opts.allowDecimals;\n var scaleType = realScaleType || opts.scale;\n if (scaleType !== 'auto' && scaleType !== 'linear') {\n return null;\n }\n if (tickCount && type === 'number' && originalDomain && (originalDomain[0] === 'auto' || originalDomain[1] === 'auto')) {\n // Calculate the ticks by the number of grid when the axis is a number axis\n var domain = scale.domain();\n if (!domain.length) {\n return null;\n }\n var tickValues = getNiceTickValues(domain, tickCount, allowDecimals);\n scale.domain([min(tickValues), max(tickValues)]);\n return {\n niceTicks: tickValues\n };\n }\n if (tickCount && type === 'number') {\n var _domain = scale.domain();\n var _tickValues = getTickValuesFixedDomain(_domain, tickCount, allowDecimals);\n return {\n niceTicks: _tickValues\n };\n }\n return null;\n};\nexport function getCateCoordinateOfLine(_ref5) {\n var axis = _ref5.axis,\n ticks = _ref5.ticks,\n bandSize = _ref5.bandSize,\n entry = _ref5.entry,\n index = _ref5.index,\n dataKey = _ref5.dataKey;\n if (axis.type === 'category') {\n // find coordinate of category axis by the value of category\n // @ts-expect-error why does this use direct object access instead of getValueByDataKey?\n if (!axis.allowDuplicatedCategory && axis.dataKey && !isNil(entry[axis.dataKey])) {\n // @ts-expect-error why does this use direct object access instead of getValueByDataKey?\n var matchedTick = findEntryInArray(ticks, 'value', entry[axis.dataKey]);\n if (matchedTick) {\n return matchedTick.coordinate + bandSize / 2;\n }\n }\n return ticks[index] ? ticks[index].coordinate + bandSize / 2 : null;\n }\n var value = getValueByDataKey(entry, !isNil(dataKey) ? dataKey : axis.dataKey);\n return !isNil(value) ? axis.scale(value) : null;\n}\nexport var getCateCoordinateOfBar = function getCateCoordinateOfBar(_ref6) {\n var axis = _ref6.axis,\n ticks = _ref6.ticks,\n offset = _ref6.offset,\n bandSize = _ref6.bandSize,\n entry = _ref6.entry,\n index = _ref6.index;\n if (axis.type === 'category') {\n return ticks[index] ? ticks[index].coordinate + offset : null;\n }\n var value = getValueByDataKey(entry, axis.dataKey, axis.domain[index]);\n return !isNil(value) ? axis.scale(value) - bandSize / 2 + offset : null;\n};\nexport var getBaseValueOfBar = function getBaseValueOfBar(_ref7) {\n var numericAxis = _ref7.numericAxis;\n var domain = numericAxis.scale.domain();\n if (numericAxis.type === 'number') {\n var minValue = Math.min(domain[0], domain[1]);\n var maxValue = Math.max(domain[0], domain[1]);\n if (minValue <= 0 && maxValue >= 0) {\n return 0;\n }\n if (maxValue < 0) {\n return maxValue;\n }\n return minValue;\n }\n return domain[0];\n};\nexport var getStackedDataOfItem = function getStackedDataOfItem(item, stackGroups) {\n var _item$type3;\n var defaultedProps = (_item$type3 = item.type) !== null && _item$type3 !== void 0 && _item$type3.defaultProps ? _objectSpread(_objectSpread({}, item.type.defaultProps), item.props) : item.props;\n var stackId = defaultedProps.stackId;\n if (isNumOrStr(stackId)) {\n var group = stackGroups[stackId];\n if (group) {\n var itemIndex = group.items.indexOf(item);\n return itemIndex >= 0 ? group.stackedData[itemIndex] : null;\n }\n }\n return null;\n};\nvar getDomainOfSingle = function getDomainOfSingle(data) {\n return data.reduce(function (result, entry) {\n return [min(entry.concat([result[0]]).filter(isNumber)), max(entry.concat([result[1]]).filter(isNumber))];\n }, [Infinity, -Infinity]);\n};\nexport var getDomainOfStackGroups = function getDomainOfStackGroups(stackGroups, startIndex, endIndex) {\n return Object.keys(stackGroups).reduce(function (result, stackId) {\n var group = stackGroups[stackId];\n var stackedData = group.stackedData;\n var domain = stackedData.reduce(function (res, entry) {\n var s = getDomainOfSingle(entry.slice(startIndex, endIndex + 1));\n return [Math.min(res[0], s[0]), Math.max(res[1], s[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(domain[0], result[0]), Math.max(domain[1], result[1])];\n }, [Infinity, -Infinity]).map(function (result) {\n return result === Infinity || result === -Infinity ? 0 : result;\n });\n};\nexport var MIN_VALUE_REG = /^dataMin[\\s]*-[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var MAX_VALUE_REG = /^dataMax[\\s]*\\+[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var parseSpecifiedDomain = function parseSpecifiedDomain(specifiedDomain, dataDomain, allowDataOverflow) {\n if (isFunction(specifiedDomain)) {\n return specifiedDomain(dataDomain, allowDataOverflow);\n }\n if (!Array.isArray(specifiedDomain)) {\n return dataDomain;\n }\n var domain = [];\n\n /* eslint-disable prefer-destructuring */\n if (isNumber(specifiedDomain[0])) {\n domain[0] = allowDataOverflow ? specifiedDomain[0] : Math.min(specifiedDomain[0], dataDomain[0]);\n } else if (MIN_VALUE_REG.test(specifiedDomain[0])) {\n var value = +MIN_VALUE_REG.exec(specifiedDomain[0])[1];\n domain[0] = dataDomain[0] - value;\n } else if (isFunction(specifiedDomain[0])) {\n domain[0] = specifiedDomain[0](dataDomain[0]);\n } else {\n domain[0] = dataDomain[0];\n }\n if (isNumber(specifiedDomain[1])) {\n domain[1] = allowDataOverflow ? specifiedDomain[1] : Math.max(specifiedDomain[1], dataDomain[1]);\n } else if (MAX_VALUE_REG.test(specifiedDomain[1])) {\n var _value = +MAX_VALUE_REG.exec(specifiedDomain[1])[1];\n domain[1] = dataDomain[1] + _value;\n } else if (isFunction(specifiedDomain[1])) {\n domain[1] = specifiedDomain[1](dataDomain[1]);\n } else {\n domain[1] = dataDomain[1];\n }\n /* eslint-enable prefer-destructuring */\n\n return domain;\n};\n\n/**\n * Calculate the size between two category\n * @param {Object} axis The options of axis\n * @param {Array} ticks The ticks of axis\n * @param {Boolean} isBar if items in axis are bars\n * @return {Number} Size\n */\nexport var getBandSizeOfAxis = function getBandSizeOfAxis(axis, ticks, isBar) {\n // @ts-expect-error we need to rethink scale type\n if (axis && axis.scale && axis.scale.bandwidth) {\n // @ts-expect-error we need to rethink scale type\n var bandWidth = axis.scale.bandwidth();\n if (!isBar || bandWidth > 0) {\n return bandWidth;\n }\n }\n if (axis && ticks && ticks.length >= 2) {\n var orderedTicks = sortBy(ticks, function (o) {\n return o.coordinate;\n });\n var bandSize = Infinity;\n for (var i = 1, len = orderedTicks.length; i < len; i++) {\n var cur = orderedTicks[i];\n var prev = orderedTicks[i - 1];\n bandSize = Math.min((cur.coordinate || 0) - (prev.coordinate || 0), bandSize);\n }\n return bandSize === Infinity ? 0 : bandSize;\n }\n return isBar ? undefined : 0;\n};\n/**\n * parse the domain of a category axis when a domain is specified\n * @param {Array} specifiedDomain The domain specified by users\n * @param {Array} calculatedDomain The domain calculated by dateKey\n * @param {ReactElement} axisChild The axis ReactElement\n * @returns {Array} domains\n */\nexport var parseDomainOfCategoryAxis = function parseDomainOfCategoryAxis(specifiedDomain, calculatedDomain, axisChild) {\n if (!specifiedDomain || !specifiedDomain.length) {\n return calculatedDomain;\n }\n if (isEqual(specifiedDomain, get(axisChild, 'type.defaultProps.domain'))) {\n return calculatedDomain;\n }\n return specifiedDomain;\n};\nexport var getTooltipItem = function getTooltipItem(graphicalItem, payload) {\n var defaultedProps = graphicalItem.type.defaultProps ? _objectSpread(_objectSpread({}, graphicalItem.type.defaultProps), graphicalItem.props) : graphicalItem.props;\n var dataKey = defaultedProps.dataKey,\n name = defaultedProps.name,\n unit = defaultedProps.unit,\n formatter = defaultedProps.formatter,\n tooltipType = defaultedProps.tooltipType,\n chartType = defaultedProps.chartType,\n hide = defaultedProps.hide;\n return _objectSpread(_objectSpread({}, filterProps(graphicalItem, false)), {}, {\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 hide: hide\n });\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { Global } from './Global';\nvar stringCache = {\n widthCache: {},\n cacheCount: 0\n};\nvar MAX_CACHE_NUM = 2000;\nvar SPAN_STYLE = {\n position: 'absolute',\n top: '-20000px',\n left: 0,\n padding: 0,\n margin: 0,\n border: 'none',\n whiteSpace: 'pre'\n};\nvar STYLE_LIST = ['minWidth', 'maxWidth', 'width', 'minHeight', 'maxHeight', 'height', 'top', 'left', 'fontSize', 'lineHeight', 'padding', 'margin', 'paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom'];\nvar MEASUREMENT_SPAN_ID = 'recharts_measurement_span';\nfunction autoCompleteStyle(name, value) {\n if (STYLE_LIST.indexOf(name) >= 0 && value === +value) {\n return \"\".concat(value, \"px\");\n }\n return value;\n}\nfunction camelToMiddleLine(text) {\n var strs = text.split('');\n var formatStrs = strs.reduce(function (result, entry) {\n if (entry === entry.toUpperCase()) {\n return [].concat(_toConsumableArray(result), ['-', entry.toLowerCase()]);\n }\n return [].concat(_toConsumableArray(result), [entry]);\n }, []);\n return formatStrs.join('');\n}\nexport var getStyleString = function getStyleString(style) {\n return Object.keys(style).reduce(function (result, s) {\n return \"\".concat(result).concat(camelToMiddleLine(s), \":\").concat(autoCompleteStyle(s, style[s]), \";\");\n }, '');\n};\nfunction removeInvalidKeys(obj) {\n var copyObj = _objectSpread({}, obj);\n Object.keys(copyObj).forEach(function (key) {\n if (!copyObj[key]) {\n delete copyObj[key];\n }\n });\n return copyObj;\n}\nexport var getStringSize = function getStringSize(text) {\n var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (text === undefined || text === null || Global.isSsr) {\n return {\n width: 0,\n height: 0\n };\n }\n var copyStyle = removeInvalidKeys(style);\n var cacheKey = JSON.stringify({\n text: text,\n copyStyle: copyStyle\n });\n if (stringCache.widthCache[cacheKey]) {\n return stringCache.widthCache[cacheKey];\n }\n try {\n var measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);\n if (!measurementSpan) {\n measurementSpan = document.createElement('span');\n measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);\n measurementSpan.setAttribute('aria-hidden', 'true');\n document.body.appendChild(measurementSpan);\n }\n // Need to use CSS Object Model (CSSOM) to be able to comply with Content Security Policy (CSP)\n // https://en.wikipedia.org/wiki/Content_Security_Policy\n var measurementSpanStyle = _objectSpread(_objectSpread({}, SPAN_STYLE), copyStyle);\n Object.assign(measurementSpan.style, measurementSpanStyle);\n measurementSpan.textContent = \"\".concat(text);\n var rect = measurementSpan.getBoundingClientRect();\n var result = {\n width: rect.width,\n height: rect.height\n };\n stringCache.widthCache[cacheKey] = result;\n if (++stringCache.cacheCount > MAX_CACHE_NUM) {\n stringCache.cacheCount = 0;\n stringCache.widthCache = {};\n }\n return result;\n } catch (e) {\n return {\n width: 0,\n height: 0\n };\n }\n};\nexport var getOffset = function getOffset(rect) {\n return {\n top: rect.top + window.scrollY - document.documentElement.clientTop,\n left: rect.left + window.scrollX - document.documentElement.clientLeft\n };\n};","import isString from 'lodash/isString';\nimport isNan from 'lodash/isNaN';\nimport get from 'lodash/get';\nimport lodashIsNumber from 'lodash/isNumber';\nexport var mathSign = function mathSign(value) {\n if (value === 0) {\n return 0;\n }\n if (value > 0) {\n return 1;\n }\n return -1;\n};\nexport var isPercent = function isPercent(value) {\n return isString(value) && value.indexOf('%') === value.length - 1;\n};\nexport var isNumber = function isNumber(value) {\n return lodashIsNumber(value) && !isNan(value);\n};\nexport var isNumOrStr = function isNumOrStr(value) {\n return isNumber(value) || isString(value);\n};\nvar idCounter = 0;\nexport var uniqueId = function uniqueId(prefix) {\n var id = ++idCounter;\n return \"\".concat(prefix || '').concat(id);\n};\n\n/**\n * Get percent value of a total value\n * @param {number|string} percent A percent\n * @param {number} totalValue Total value\n * @param {number} defaultValue The value returned when percent is undefined or invalid\n * @param {boolean} validate If set to be true, the result will be validated\n * @return {number} value\n */\nexport var getPercentValue = function getPercentValue(percent, totalValue) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var validate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n if (!isNumber(percent) && !isString(percent)) {\n return defaultValue;\n }\n var value;\n if (isPercent(percent)) {\n var index = percent.indexOf('%');\n value = totalValue * parseFloat(percent.slice(0, index)) / 100;\n } else {\n value = +percent;\n }\n if (isNan(value)) {\n value = defaultValue;\n }\n if (validate && value > totalValue) {\n value = totalValue;\n }\n return value;\n};\nexport var getAnyElementOfObject = function getAnyElementOfObject(obj) {\n if (!obj) {\n return null;\n }\n var keys = Object.keys(obj);\n if (keys && keys.length) {\n return obj[keys[0]];\n }\n return null;\n};\nexport var hasDuplicate = function hasDuplicate(ary) {\n if (!Array.isArray(ary)) {\n return false;\n }\n var len = ary.length;\n var cache = {};\n for (var i = 0; i < len; i++) {\n if (!cache[ary[i]]) {\n cache[ary[i]] = true;\n } else {\n return true;\n }\n }\n return false;\n};\n\n/* @todo consider to rename this function into `getInterpolator` */\nexport var interpolateNumber = function interpolateNumber(numberA, numberB) {\n if (isNumber(numberA) && isNumber(numberB)) {\n return function (t) {\n return numberA + t * (numberB - numberA);\n };\n }\n return function () {\n return numberB;\n };\n};\nexport function findEntryInArray(ary, specifiedKey, specifiedValue) {\n if (!ary || !ary.length) {\n return null;\n }\n return ary.find(function (entry) {\n return entry && (typeof specifiedKey === 'function' ? specifiedKey(entry) : get(entry, specifiedKey)) === specifiedValue;\n });\n}\n\n/**\n * The least square linear regression\n * @param {Array} data The array of points\n * @returns {Object} The domain of x, and the parameter of linear function\n */\nexport var getLinearRegression = function getLinearRegression(data) {\n if (!data || !data.length) {\n return null;\n }\n var len = data.length;\n var xsum = 0;\n var ysum = 0;\n var xysum = 0;\n var xxsum = 0;\n var xmin = Infinity;\n var xmax = -Infinity;\n var xcurrent = 0;\n var ycurrent = 0;\n for (var i = 0; i < len; i++) {\n xcurrent = data[i].cx || 0;\n ycurrent = data[i].cy || 0;\n xsum += xcurrent;\n ysum += ycurrent;\n xysum += xcurrent * ycurrent;\n xxsum += xcurrent * xcurrent;\n xmin = Math.min(xmin, xcurrent);\n xmax = Math.max(xmax, xcurrent);\n }\n var a = len * xxsum !== xsum * xsum ? (len * xysum - xsum * ysum) / (len * xxsum - xsum * xsum) : 0;\n return {\n xmin: xmin,\n xmax: xmax,\n a: a,\n b: (ysum - a * xsum) / len\n };\n};","var parseIsSsrByDefault = function parseIsSsrByDefault() {\n return !(typeof window !== 'undefined' && window.document && window.document.createElement && window.setTimeout);\n};\nexport var Global = {\n isSsr: parseIsSsrByDefault(),\n get: function get(key) {\n return Global[key];\n },\n set: function set(key, value) {\n if (typeof key === 'string') {\n Global[key] = value;\n } else {\n var keys = Object.keys(key);\n if (keys && keys.length) {\n keys.forEach(function (k) {\n Global[k] = key[k];\n });\n }\n }\n }\n};","/* eslint no-console: 0 */\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport isNil from 'lodash/isNil';\nimport { isValidElement } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport { getPercentValue } from './DataUtils';\nimport { parseScale, checkDomainOfScale, getTicksOfScale } from './ChartUtils';\nexport var RADIAN = Math.PI / 180;\nexport var degreeToRadian = function degreeToRadian(angle) {\n return angle * Math.PI / 180;\n};\nexport var radianToDegree = function radianToDegree(angleInRadian) {\n return angleInRadian * 180 / Math.PI;\n};\nexport var polarToCartesian = function polarToCartesian(cx, cy, radius, angle) {\n return {\n x: cx + Math.cos(-RADIAN * angle) * radius,\n y: cy + Math.sin(-RADIAN * angle) * radius\n };\n};\nexport var getMaxRadius = function getMaxRadius(width, height) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n return Math.min(Math.abs(width - (offset.left || 0) - (offset.right || 0)), Math.abs(height - (offset.top || 0) - (offset.bottom || 0))) / 2;\n};\n\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {Object} axisType The type of axes, radius-axis or angle-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height;\n var startAngle = props.startAngle,\n endAngle = props.endAngle;\n var cx = getPercentValue(props.cx, width, width / 2);\n var cy = getPercentValue(props.cy, height, height / 2);\n var maxRadius = getMaxRadius(width, height, offset);\n var innerRadius = getPercentValue(props.innerRadius, maxRadius, 0);\n var outerRadius = getPercentValue(props.outerRadius, maxRadius, maxRadius * 0.8);\n var ids = Object.keys(axisMap);\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var domain = axis.domain,\n reversed = axis.reversed;\n var range;\n if (isNil(axis.range)) {\n if (axisType === 'angleAxis') {\n range = [startAngle, endAngle];\n } else if (axisType === 'radiusAxis') {\n range = [innerRadius, outerRadius];\n }\n if (reversed) {\n range = [range[1], range[0]];\n }\n } else {\n range = axis.range;\n var _range = range;\n var _range2 = _slicedToArray(_range, 2);\n startAngle = _range2[0];\n endAngle = _range2[1];\n }\n var _parseScale = parseScale(axis, chartName),\n realScaleType = _parseScale.realScaleType,\n scale = _parseScale.scale;\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n range: range,\n radius: outerRadius,\n realScaleType: realScaleType,\n scale: scale,\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var distanceBetweenPoints = function distanceBetweenPoints(point, anotherPoint) {\n var x1 = point.x,\n y1 = point.y;\n var x2 = anotherPoint.x,\n y2 = anotherPoint.y;\n return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));\n};\nexport var getAngleOfPoint = function getAngleOfPoint(_ref, _ref2) {\n var x = _ref.x,\n y = _ref.y;\n var cx = _ref2.cx,\n cy = _ref2.cy;\n var radius = distanceBetweenPoints({\n x: x,\n y: y\n }, {\n x: cx,\n y: cy\n });\n if (radius <= 0) {\n return {\n radius: radius\n };\n }\n var cos = (x - cx) / radius;\n var angleInRadian = Math.acos(cos);\n if (y > cy) {\n angleInRadian = 2 * Math.PI - angleInRadian;\n }\n return {\n radius: radius,\n angle: radianToDegree(angleInRadian),\n angleInRadian: angleInRadian\n };\n};\nexport var formatAngleOfSector = function formatAngleOfSector(_ref3) {\n var startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return {\n startAngle: startAngle - min * 360,\n endAngle: endAngle - min * 360\n };\n};\nvar reverseFormatAngleOfSetor = function reverseFormatAngleOfSetor(angle, _ref4) {\n var startAngle = _ref4.startAngle,\n endAngle = _ref4.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return angle + min * 360;\n};\nexport var inRangeOfSector = function inRangeOfSector(_ref5, sector) {\n var x = _ref5.x,\n y = _ref5.y;\n var _getAngleOfPoint = getAngleOfPoint({\n x: x,\n y: y\n }, sector),\n radius = _getAngleOfPoint.radius,\n angle = _getAngleOfPoint.angle;\n var innerRadius = sector.innerRadius,\n outerRadius = sector.outerRadius;\n if (radius < innerRadius || radius > outerRadius) {\n return false;\n }\n if (radius === 0) {\n return true;\n }\n var _formatAngleOfSector = formatAngleOfSector(sector),\n startAngle = _formatAngleOfSector.startAngle,\n endAngle = _formatAngleOfSector.endAngle;\n var formatAngle = angle;\n var inRange;\n if (startAngle <= endAngle) {\n while (formatAngle > endAngle) {\n formatAngle -= 360;\n }\n while (formatAngle < startAngle) {\n formatAngle += 360;\n }\n inRange = formatAngle >= startAngle && formatAngle <= endAngle;\n } else {\n while (formatAngle > startAngle) {\n formatAngle -= 360;\n }\n while (formatAngle < endAngle) {\n formatAngle += 360;\n }\n inRange = formatAngle >= endAngle && formatAngle <= startAngle;\n }\n if (inRange) {\n return _objectSpread(_objectSpread({}, sector), {}, {\n radius: radius,\n angle: reverseFormatAngleOfSetor(formatAngle, sector)\n });\n }\n return null;\n};\nexport var getTickClassName = function getTickClassName(tick) {\n return ! /*#__PURE__*/isValidElement(tick) && !isFunction(tick) && typeof tick !== 'boolean' ? tick.className : '';\n};","var _excluded = [\"children\"],\n _excluded2 = [\"children\"];\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport get from 'lodash/get';\nimport isNil from 'lodash/isNil';\nimport isString from 'lodash/isString';\nimport isFunction from 'lodash/isFunction';\nimport isObject from 'lodash/isObject';\nimport { Children, isValidElement } from 'react';\nimport { isFragment } from 'react-is';\nimport { isNumber } from './DataUtils';\nimport { shallowEqual } from './ShallowEqual';\nimport { FilteredElementKeyMap, SVGElementPropKeys, EventKeys } from './types';\nvar REACT_BROWSER_EVENT_MAP = {\n click: 'onClick',\n mousedown: 'onMouseDown',\n mouseup: 'onMouseUp',\n mouseover: 'onMouseOver',\n mousemove: 'onMouseMove',\n mouseout: 'onMouseOut',\n mouseenter: 'onMouseEnter',\n mouseleave: 'onMouseLeave',\n touchcancel: 'onTouchCancel',\n touchend: 'onTouchEnd',\n touchmove: 'onTouchMove',\n touchstart: 'onTouchStart',\n contextmenu: 'onContextMenu',\n dblclick: 'onDoubleClick'\n};\nexport var SCALE_TYPES = ['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold'];\nexport var LEGEND_TYPES = ['plainline', 'line', 'square', 'rect', 'circle', 'cross', 'diamond', 'star', 'triangle', 'wye', 'none'];\nexport var TOOLTIP_TYPES = ['none'];\n\n/**\n * Get the display name of a component\n * @param {Object} Comp Specified Component\n * @return {String} Display name of Component\n */\nexport var getDisplayName = function getDisplayName(Comp) {\n if (typeof Comp === 'string') {\n return Comp;\n }\n if (!Comp) {\n return '';\n }\n return Comp.displayName || Comp.name || 'Component';\n};\n\n// `toArray` gets called multiple times during the render\n// so we can memoize last invocation (since reference to `children` is the same)\nvar lastChildren = null;\nvar lastResult = null;\nexport var toArray = function toArray(children) {\n if (children === lastChildren && Array.isArray(lastResult)) {\n return lastResult;\n }\n var result = [];\n Children.forEach(children, function (child) {\n if (isNil(child)) return;\n if (isFragment(child)) {\n result = result.concat(toArray(child.props.children));\n } else {\n // @ts-expect-error this could still be Iterable and TS does not like that\n result.push(child);\n }\n });\n lastResult = result;\n lastChildren = children;\n return result;\n};\n\n/*\n * Find and return all matched children by type.\n * `type` must be a React.ComponentType\n */\nexport function findAllByType(children, type) {\n var result = [];\n var types = [];\n if (Array.isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n toArray(children).forEach(function (child) {\n var childType = get(child, 'type.displayName') || get(child, 'type.name');\n if (types.indexOf(childType) !== -1) {\n result.push(child);\n }\n });\n return result;\n}\n\n/*\n * Return the first matched child by type, return null otherwise.\n * `type` must be a React.ComponentType\n */\nexport function findChildByType(children, type) {\n var result = findAllByType(children, type);\n return result && result[0];\n}\n\n/*\n * Create a new array of children excluding the ones matched the type\n */\nexport var withoutType = function withoutType(children, type) {\n var newChildren = [];\n var types;\n if (Array.isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n toArray(children).forEach(function (child) {\n var displayName = get(child, 'type.displayName');\n if (displayName && types.indexOf(displayName) !== -1) {\n return;\n }\n newChildren.push(child);\n });\n return newChildren;\n};\n\n/**\n * validate the width and height props of a chart element\n * @param {Object} el A chart element\n * @return {Boolean} true If the props width and height are number, and greater than 0\n */\nexport var validateWidthHeight = function validateWidthHeight(el) {\n if (!el || !el.props) {\n return false;\n }\n var _el$props = el.props,\n width = _el$props.width,\n height = _el$props.height;\n if (!isNumber(width) || width <= 0 || !isNumber(height) || height <= 0) {\n return false;\n }\n return true;\n};\nvar SVG_TAGS = ['a', 'altGlyph', 'altGlyphDef', 'altGlyphItem', 'animate', 'animateColor', 'animateMotion', 'animateTransform', 'circle', 'clipPath', 'color-profile', 'cursor', 'defs', 'desc', 'ellipse', 'feBlend', 'feColormatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence', 'filter', 'font', 'font-face', 'font-face-format', 'font-face-name', 'font-face-url', 'foreignObject', 'g', 'glyph', 'glyphRef', 'hkern', 'image', 'line', 'lineGradient', 'marker', 'mask', 'metadata', 'missing-glyph', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'script', 'set', 'stop', 'style', 'svg', 'switch', 'symbol', 'text', 'textPath', 'title', 'tref', 'tspan', 'use', 'view', 'vkern'];\nvar isSvgElement = function isSvgElement(child) {\n return child && child.type && isString(child.type) && SVG_TAGS.indexOf(child.type) >= 0;\n};\nexport var hasClipDot = function hasClipDot(dot) {\n return dot && _typeof(dot) === 'object' && 'clipDot' in dot;\n};\n\n/**\n * Checks if the property is valid to spread onto an SVG element or onto a specific component\n * @param {unknown} property property value currently being compared\n * @param {string} key property key currently being compared\n * @param {boolean} includeEvents if events are included in spreadable props\n * @param {boolean} svgElementType checks against map of SVG element types to attributes\n * @returns {boolean} is prop valid\n */\nexport var isValidSpreadableProp = function isValidSpreadableProp(property, key, includeEvents, svgElementType) {\n var _FilteredElementKeyMa;\n /**\n * If the svg element type is explicitly included, check against the filtered element key map\n * to determine if there are attributes that should only exist on that element type.\n * @todo Add an internal cjs version of https://github.com/wooorm/svg-element-attributes for full coverage.\n */\n var matchingElementTypeKeys = (_FilteredElementKeyMa = FilteredElementKeyMap === null || FilteredElementKeyMap === void 0 ? void 0 : FilteredElementKeyMap[svgElementType]) !== null && _FilteredElementKeyMa !== void 0 ? _FilteredElementKeyMa : [];\n return !isFunction(property) && (svgElementType && matchingElementTypeKeys.includes(key) || SVGElementPropKeys.includes(key)) || includeEvents && EventKeys.includes(key);\n};\n\n/**\n * Filter all the svg elements of children\n * @param {Array} children The children of a react element\n * @return {Array} All the svg elements\n */\nexport var filterSvgElements = function filterSvgElements(children) {\n var svgElements = [];\n toArray(children).forEach(function (entry) {\n if (isSvgElement(entry)) {\n svgElements.push(entry);\n }\n });\n return svgElements;\n};\nexport var filterProps = function filterProps(props, includeEvents, svgElementType) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n var inputProps = props;\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n if (!isObject(inputProps)) {\n return null;\n }\n var out = {};\n\n /**\n * Props are blindly spread onto SVG elements. This loop filters out properties that we don't want to spread.\n * Items filtered out are as follows:\n * - functions in properties that are SVG attributes (functions are included when includeEvents is true)\n * - props that are SVG attributes but don't matched the passed svgElementType\n * - any prop that is not in SVGElementPropKeys (or in EventKeys if includeEvents is true)\n */\n Object.keys(inputProps).forEach(function (key) {\n var _inputProps;\n if (isValidSpreadableProp((_inputProps = inputProps) === null || _inputProps === void 0 ? void 0 : _inputProps[key], key, includeEvents, svgElementType)) {\n out[key] = inputProps[key];\n }\n });\n return out;\n};\n\n/**\n * Wether props of children changed\n * @param {Object} nextChildren The latest children\n * @param {Object} prevChildren The prev children\n * @return {Boolean} equal or not\n */\nexport var isChildrenEqual = function isChildrenEqual(nextChildren, prevChildren) {\n if (nextChildren === prevChildren) {\n return true;\n }\n var count = Children.count(nextChildren);\n if (count !== Children.count(prevChildren)) {\n return false;\n }\n if (count === 0) {\n return true;\n }\n if (count === 1) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return isSingleChildEqual(Array.isArray(nextChildren) ? nextChildren[0] : nextChildren, Array.isArray(prevChildren) ? prevChildren[0] : prevChildren);\n }\n for (var i = 0; i < count; i++) {\n var nextChild = nextChildren[i];\n var prevChild = prevChildren[i];\n if (Array.isArray(nextChild) || Array.isArray(prevChild)) {\n if (!isChildrenEqual(nextChild, prevChild)) {\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n } else if (!isSingleChildEqual(nextChild, prevChild)) {\n return false;\n }\n }\n return true;\n};\nexport var isSingleChildEqual = function isSingleChildEqual(nextChild, prevChild) {\n if (isNil(nextChild) && isNil(prevChild)) {\n return true;\n }\n if (!isNil(nextChild) && !isNil(prevChild)) {\n var _ref = nextChild.props || {},\n nextChildren = _ref.children,\n nextProps = _objectWithoutProperties(_ref, _excluded);\n var _ref2 = prevChild.props || {},\n prevChildren = _ref2.children,\n prevProps = _objectWithoutProperties(_ref2, _excluded2);\n if (nextChildren && prevChildren) {\n return shallowEqual(nextProps, prevProps) && isChildrenEqual(nextChildren, prevChildren);\n }\n if (!nextChildren && !prevChildren) {\n return shallowEqual(nextProps, prevProps);\n }\n return false;\n }\n return false;\n};\nexport var renderByOrder = function renderByOrder(children, renderMap) {\n var elements = [];\n var record = {};\n toArray(children).forEach(function (child, index) {\n if (isSvgElement(child)) {\n elements.push(child);\n } else if (child) {\n var displayName = getDisplayName(child.type);\n var _ref3 = renderMap[displayName] || {},\n handler = _ref3.handler,\n once = _ref3.once;\n if (handler && (!once || !record[displayName])) {\n var results = handler(child, displayName, index);\n elements.push(results);\n record[displayName] = true;\n }\n }\n });\n return elements;\n};\nexport var getReactEventByType = function getReactEventByType(e) {\n var type = e && e.type;\n if (type && REACT_BROWSER_EVENT_MAP[type]) {\n return REACT_BROWSER_EVENT_MAP[type];\n }\n return null;\n};\nexport var parseChildIndex = function parseChildIndex(child, children) {\n return toArray(children).indexOf(child);\n};","export function shallowEqual(a, b) {\n /* eslint-disable no-restricted-syntax */\n for (var key in a) {\n if ({}.hasOwnProperty.call(a, key) && (!{}.hasOwnProperty.call(b, key) || a[key] !== b[key])) {\n return false;\n }\n }\n for (var _key in b) {\n if ({}.hasOwnProperty.call(b, _key) && !{}.hasOwnProperty.call(a, _key)) {\n return false;\n }\n }\n return true;\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { Legend } from '../component/Legend';\nimport { getMainColorOfGraphicItem } from './ChartUtils';\nimport { findChildByType } from './ReactUtils';\nexport var getLegendProps = function getLegendProps(_ref) {\n var children = _ref.children,\n formattedGraphicalItems = _ref.formattedGraphicalItems,\n legendWidth = _ref.legendWidth,\n legendContent = _ref.legendContent;\n var legendItem = findChildByType(children, Legend);\n if (!legendItem) {\n return null;\n }\n var legendDefaultProps = Legend.defaultProps;\n var legendProps = legendDefaultProps !== undefined ? _objectSpread(_objectSpread({}, legendDefaultProps), legendItem.props) : {};\n var legendData;\n if (legendItem.props && legendItem.props.payload) {\n legendData = legendItem.props && legendItem.props.payload;\n } else if (legendContent === 'children') {\n legendData = (formattedGraphicalItems || []).reduce(function (result, _ref2) {\n var item = _ref2.item,\n props = _ref2.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 (_ref3) {\n var item = _ref3.item;\n var itemDefaultProps = item.type.defaultProps;\n var itemProps = itemDefaultProps !== undefined ? _objectSpread(_objectSpread({}, itemDefaultProps), item.props) : {};\n var dataKey = itemProps.dataKey,\n name = itemProps.name,\n legendType = itemProps.legendType,\n hide = itemProps.hide;\n return {\n inactive: hide,\n dataKey: dataKey,\n type: legendProps.iconType || legendType || 'square',\n color: getMainColorOfGraphicItem(item),\n value: name || dataKey,\n // @ts-expect-error property strokeDasharray is required in Payload but optional in props\n payload: itemProps\n };\n });\n }\n return _objectSpread(_objectSpread(_objectSpread({}, legendProps), Legend.getWithHeight(legendItem, legendWidth)), {}, {\n payload: legendData,\n item: legendItem\n });\n};","import uniqBy from 'lodash/uniqBy';\nimport isFunction from 'lodash/isFunction';\n\n/**\n * This is configuration option that decides how to filter for unique values only:\n *\n * - `false` means \"no filter\"\n * - `true` means \"use recharts default filter\"\n * - function means \"use return of this function as the default key\"\n */\n\nexport function getUniqPayload(payload, option, defaultUniqBy) {\n if (option === true) {\n return uniqBy(payload, defaultUniqBy);\n }\n if (isFunction(option)) {\n return uniqBy(payload, option);\n }\n return payload;\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport { isValidElement } from 'react';\nimport isObject from 'lodash/isObject';\n\n/**\n * Determines how values are stacked:\n *\n * - `none` is the default, it adds values on top of each other. No smarts. Negative values will overlap.\n * - `expand` make it so that the values always add up to 1 - so the chart will look like a rectangle.\n * - `wiggle` and `silhouette` tries to keep the chart centered.\n * - `sign` stacks positive values above zero and negative values below zero. Similar to `none` but handles negatives.\n * - `positive` ignores all negative values, and then behaves like \\`none\\`.\n *\n * Also see https://d3js.org/d3-shape/stack#stack-offsets\n * (note that the `diverging` offset in d3 is named `sign` in recharts)\n */\n\n//\n// Event Handler Types -- Copied from @types/react/index.d.ts and adapted for Props.\n//\n\nvar SVGContainerPropKeys = ['viewBox', 'children'];\nexport var SVGElementPropKeys = ['aria-activedescendant', 'aria-atomic', 'aria-autocomplete', 'aria-busy', 'aria-checked', 'aria-colcount', 'aria-colindex', 'aria-colspan', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-details', 'aria-disabled', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-level', 'aria-live', 'aria-modal', 'aria-multiline', 'aria-multiselectable', 'aria-orientation', 'aria-owns', 'aria-placeholder', 'aria-posinset', 'aria-pressed', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription', 'aria-rowcount', 'aria-rowindex', 'aria-rowspan', 'aria-selected', 'aria-setsize', 'aria-sort', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext', 'className', 'color', 'height', 'id', 'lang', 'max', 'media', 'method', 'min', 'name', 'style',\n/*\n * removed 'type' SVGElementPropKey because we do not currently use any SVG elements\n * that can use it and it conflicts with the recharts prop 'type'\n * https://github.com/recharts/recharts/pull/3327\n * https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/type\n */\n// 'type',\n'target', 'width', 'role', 'tabIndex', 'accentHeight', 'accumulate', 'additive', 'alignmentBaseline', 'allowReorder', 'alphabetic', 'amplitude', 'arabicForm', 'ascent', 'attributeName', 'attributeType', 'autoReverse', 'azimuth', 'baseFrequency', 'baselineShift', 'baseProfile', 'bbox', 'begin', 'bias', 'by', 'calcMode', 'capHeight', 'clip', 'clipPath', 'clipPathUnits', 'clipRule', 'colorInterpolation', 'colorInterpolationFilters', 'colorProfile', 'colorRendering', 'contentScriptType', 'contentStyleType', 'cursor', 'cx', 'cy', 'd', 'decelerate', 'descent', 'diffuseConstant', 'direction', 'display', 'divisor', 'dominantBaseline', 'dur', 'dx', 'dy', 'edgeMode', 'elevation', 'enableBackground', 'end', 'exponent', 'externalResourcesRequired', 'fill', 'fillOpacity', 'fillRule', 'filter', 'filterRes', 'filterUnits', 'floodColor', 'floodOpacity', 'focusable', 'fontFamily', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle', 'fontVariant', 'fontWeight', 'format', 'from', 'fx', 'fy', 'g1', 'g2', 'glyphName', 'glyphOrientationHorizontal', 'glyphOrientationVertical', 'glyphRef', 'gradientTransform', 'gradientUnits', 'hanging', 'horizAdvX', 'horizOriginX', 'href', 'ideographic', 'imageRendering', 'in2', 'in', 'intercept', 'k1', 'k2', 'k3', 'k4', 'k', 'kernelMatrix', 'kernelUnitLength', 'kerning', 'keyPoints', 'keySplines', 'keyTimes', 'lengthAdjust', 'letterSpacing', 'lightingColor', 'limitingConeAngle', 'local', 'markerEnd', 'markerHeight', 'markerMid', 'markerStart', 'markerUnits', 'markerWidth', 'mask', 'maskContentUnits', 'maskUnits', 'mathematical', 'mode', 'numOctaves', 'offset', 'opacity', 'operator', 'order', 'orient', 'orientation', 'origin', 'overflow', 'overlinePosition', 'overlineThickness', 'paintOrder', 'panose1', 'pathLength', 'patternContentUnits', 'patternTransform', 'patternUnits', 'pointerEvents', 'pointsAtX', 'pointsAtY', 'pointsAtZ', 'preserveAlpha', 'preserveAspectRatio', 'primitiveUnits', 'r', 'radius', 'refX', 'refY', 'renderingIntent', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'restart', 'result', 'rotate', 'rx', 'ry', 'seed', 'shapeRendering', 'slope', 'spacing', 'specularConstant', 'specularExponent', 'speed', 'spreadMethod', 'startOffset', 'stdDeviation', 'stemh', 'stemv', 'stitchTiles', 'stopColor', 'stopOpacity', 'strikethroughPosition', 'strikethroughThickness', 'string', 'stroke', 'strokeDasharray', 'strokeDashoffset', 'strokeLinecap', 'strokeLinejoin', 'strokeMiterlimit', 'strokeOpacity', 'strokeWidth', 'surfaceScale', 'systemLanguage', 'tableValues', 'targetX', 'targetY', 'textAnchor', 'textDecoration', 'textLength', 'textRendering', 'to', 'transform', 'u1', 'u2', 'underlinePosition', 'underlineThickness', 'unicode', 'unicodeBidi', 'unicodeRange', 'unitsPerEm', 'vAlphabetic', 'values', 'vectorEffect', 'version', 'vertAdvY', 'vertOriginX', 'vertOriginY', 'vHanging', 'vIdeographic', 'viewTarget', 'visibility', 'vMathematical', 'widths', 'wordSpacing', 'writingMode', 'x1', 'x2', 'x', 'xChannelSelector', 'xHeight', 'xlinkActuate', 'xlinkArcrole', 'xlinkHref', 'xlinkRole', 'xlinkShow', 'xlinkTitle', 'xlinkType', 'xmlBase', 'xmlLang', 'xmlns', 'xmlnsXlink', 'xmlSpace', 'y1', 'y2', 'y', 'yChannelSelector', 'z', 'zoomAndPan', 'ref', 'key', 'angle'];\nvar PolyElementKeys = ['points', 'pathLength'];\n\n/** svg element types that have specific attribute filtration requirements */\n\n/** map of svg element types to unique svg attributes that belong to that element */\nexport var FilteredElementKeyMap = {\n svg: SVGContainerPropKeys,\n polygon: PolyElementKeys,\n polyline: PolyElementKeys\n};\nexport var EventKeys = ['dangerouslySetInnerHTML', 'onCopy', 'onCopyCapture', 'onCut', 'onCutCapture', 'onPaste', 'onPasteCapture', 'onCompositionEnd', 'onCompositionEndCapture', 'onCompositionStart', 'onCompositionStartCapture', 'onCompositionUpdate', 'onCompositionUpdateCapture', 'onFocus', 'onFocusCapture', 'onBlur', 'onBlurCapture', 'onChange', 'onChangeCapture', 'onBeforeInput', 'onBeforeInputCapture', 'onInput', 'onInputCapture', 'onReset', 'onResetCapture', 'onSubmit', 'onSubmitCapture', 'onInvalid', 'onInvalidCapture', 'onLoad', 'onLoadCapture', 'onError', 'onErrorCapture', 'onKeyDown', 'onKeyDownCapture', 'onKeyPress', 'onKeyPressCapture', 'onKeyUp', 'onKeyUpCapture', 'onAbort', 'onAbortCapture', 'onCanPlay', 'onCanPlayCapture', 'onCanPlayThrough', 'onCanPlayThroughCapture', 'onDurationChange', 'onDurationChangeCapture', 'onEmptied', 'onEmptiedCapture', 'onEncrypted', 'onEncryptedCapture', 'onEnded', 'onEndedCapture', 'onLoadedData', 'onLoadedDataCapture', 'onLoadedMetadata', 'onLoadedMetadataCapture', 'onLoadStart', 'onLoadStartCapture', 'onPause', 'onPauseCapture', 'onPlay', 'onPlayCapture', 'onPlaying', 'onPlayingCapture', 'onProgress', 'onProgressCapture', 'onRateChange', 'onRateChangeCapture', 'onSeeked', 'onSeekedCapture', 'onSeeking', 'onSeekingCapture', 'onStalled', 'onStalledCapture', 'onSuspend', 'onSuspendCapture', 'onTimeUpdate', 'onTimeUpdateCapture', 'onVolumeChange', 'onVolumeChangeCapture', 'onWaiting', 'onWaitingCapture', 'onAuxClick', 'onAuxClickCapture', 'onClick', 'onClickCapture', 'onContextMenu', 'onContextMenuCapture', 'onDoubleClick', 'onDoubleClickCapture', 'onDrag', 'onDragCapture', 'onDragEnd', 'onDragEndCapture', 'onDragEnter', 'onDragEnterCapture', 'onDragExit', 'onDragExitCapture', 'onDragLeave', 'onDragLeaveCapture', 'onDragOver', 'onDragOverCapture', 'onDragStart', 'onDragStartCapture', 'onDrop', 'onDropCapture', 'onMouseDown', 'onMouseDownCapture', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseMoveCapture', 'onMouseOut', 'onMouseOutCapture', 'onMouseOver', 'onMouseOverCapture', 'onMouseUp', 'onMouseUpCapture', 'onSelect', 'onSelectCapture', 'onTouchCancel', 'onTouchCancelCapture', 'onTouchEnd', 'onTouchEndCapture', 'onTouchMove', 'onTouchMoveCapture', 'onTouchStart', 'onTouchStartCapture', 'onPointerDown', 'onPointerDownCapture', 'onPointerMove', 'onPointerMoveCapture', 'onPointerUp', 'onPointerUpCapture', 'onPointerCancel', 'onPointerCancelCapture', 'onPointerEnter', 'onPointerEnterCapture', 'onPointerLeave', 'onPointerLeaveCapture', 'onPointerOver', 'onPointerOverCapture', 'onPointerOut', 'onPointerOutCapture', 'onGotPointerCapture', 'onGotPointerCaptureCapture', 'onLostPointerCapture', 'onLostPointerCaptureCapture', 'onScroll', 'onScrollCapture', 'onWheel', 'onWheelCapture', 'onAnimationStart', 'onAnimationStartCapture', 'onAnimationEnd', 'onAnimationEndCapture', 'onAnimationIteration', 'onAnimationIterationCapture', 'onTransitionEnd', 'onTransitionEndCapture'];\n\n/** The type of easing function to use for animations */\n\n/** Specifies the duration of animation, the unit of this option is ms. */\n\n/** the offset of a chart, which define the blank space all around */\n\n/**\n * The domain of axis.\n * This is the definition\n *\n * Numeric domain is always defined by an array of exactly two values, for the min and the max of the axis.\n * Categorical domain is defined as array of all possible values.\n *\n * Can be specified in many ways:\n * - array of numbers\n * - with special strings like 'dataMin' and 'dataMax'\n * - with special string math like 'dataMin - 100'\n * - with keyword 'auto'\n * - or a function\n * - array of functions\n * - or a combination of the above\n */\n\n/**\n * NumberDomain is an evaluated {@link AxisDomain}.\n * Unlike {@link AxisDomain}, it has no variety - it's a tuple of two number.\n * This is after all the keywords and functions were evaluated and what is left is [min, max].\n *\n * Know that the min, max values are not guaranteed to be nice numbers - values like -Infinity or NaN are possible.\n *\n * There are also `category` axes that have different things than numbers in their domain.\n */\n\n/** The props definition of base axis */\n\n/** Defines how ticks are placed and whether / how tick collisions are handled.\n * 'preserveStart' keeps the left tick on collision and ensures that the first tick is always shown.\n * 'preserveEnd' keeps the right tick on collision and ensures that the last tick is always shown.\n * 'preserveStartEnd' keeps the left tick on collision and ensures that the first and last ticks are always shown.\n * 'equidistantPreserveStart' selects a number N such that every nTh tick will be shown without collision.\n */\n\nexport var adaptEventHandlers = function adaptEventHandlers(props, newHandler) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n var inputProps = props;\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n if (!isObject(inputProps)) {\n return null;\n }\n var out = {};\n Object.keys(inputProps).forEach(function (key) {\n if (EventKeys.includes(key)) {\n out[key] = newHandler || function (e) {\n return inputProps[key](inputProps, e);\n };\n }\n });\n return out;\n};\nvar getEventHandlerOfChild = function getEventHandlerOfChild(originalHandler, data, index) {\n return function (e) {\n originalHandler(data, index, e);\n return null;\n };\n};\nexport var adaptEventsOfChild = function adaptEventsOfChild(props, data, index) {\n if (!isObject(props) || _typeof(props) !== 'object') {\n return null;\n }\n var out = null;\n Object.keys(props).forEach(function (key) {\n var item = props[key];\n if (EventKeys.includes(key) && typeof item === 'function') {\n if (!out) out = {};\n out[key] = getEventHandlerOfChild(item, data, index);\n }\n });\n return out;\n};"],"names":["_Area","_excluded","_excluded2","_typeof","o","Symbol","iterator","constructor","prototype","_objectWithoutProperties","source","excluded","key","i","target","Object","hasOwnProperty","call","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","length","propertyIsEnumerable","_extends","assign","bind","arguments","apply","this","ownKeys","e","r","t","keys","filter","getOwnPropertyDescriptor","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_defineProperties","props","descriptor","configurable","writable","_toPropertyKey","_isNativeReflectConstruct","Boolean","valueOf","Reflect","construct","_getPrototypeOf","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","p","obj","value","toPrimitive","TypeError","String","_toPrimitive","Area","_PureComponent","_this","instance","Constructor","_classCallCheck","_len","args","Array","_key","concat","self","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","isAnimationFinished","onAnimationEnd","setState","onAnimationStart","subClass","superClass","create","_inherits","staticProps","nextProps","prevState","animationId","prevAnimationId","curPoints","points","curBaseLine","baseLine","prevPoints","prevBaseLine","protoProps","needClip","clipDot","clipPathId","isAnimationActive","state","_this$props","dot","dataKey","areaProps","customDotProps","dots","map","entry","dotProps","index","cx","x","cy","y","payload","renderDotItem","dotsProps","clipPath","className","alpha","_this$props2","strokeWidth","startX","endX","width","Math","abs","maxY","max","isArray","height","floor","parseInt","_this$props3","startY","endY","maxX","layout","renderVerticalRect","renderHorizontalRect","_this$props4","type","stroke","connectNulls","isRange","others","ref","fill","_this2","_this$props5","animationBegin","animationDuration","animationEasing","_this$state","begin","duration","isActive","easing","from","to","handleAnimationEnd","handleAnimationStart","_ref","stepBaseLine","prevPointsDiffFactor","stepPoints","prevPointIndex","prev","interpolatorX","interpolatorY","interpolator","_interpolator","renderAreaStatically","id","renderClipRect","_this$props6","_this$state2","totalLength","renderAreaWithAnimation","_filterProps","_this$props7","hide","top","left","xAxis","yAxis","hasSinglePoint","layerClass","needClipX","allowDataOverflow","needClipY","_ref2","_ref2$r","_ref2$strokeWidth","_ref3$clipDot","dotSize","renderArea","renderDots","renderCallByParent","PureComponent","fillOpacity","xAxisId","yAxisId","legendType","activeDot","isSsr","item","chartBaseValue","baseValue","itemBaseValue","numericAxis","domain","scale","domainMax","domainMin","min","_ref4","xAxisTicks","yAxisTicks","bandSize","stackedData","dataStartIndex","displayedData","offset","hasStack","getBaseValue","isHorizontalLayout","isBreakPoint","axis","ticks","option","dotItem","rest","_excluded3","CartesianAxis","_Component","fontSize","letterSpacing","nextState","viewBox","restProps","viewBoxOld","restPropsOld","htmlLayer","layerReference","tick","getElementsByClassName","window","getComputedStyle","data","x1","x2","y1","y2","tx","ty","orientation","tickSize","mirror","tickMargin","sign","finalTickSize","tickCoord","coordinate","line","textAnchor","verticalAnchor","axisLine","needHeight","needWidth","tickLine","tickFormatter","unit","finalTicks","getTickTextAnchor","getTickVerticalAnchor","axisProps","customTickProps","tickLineProps","items","_this2$getTickLineCoo","getTickLineCoord","lineCoord","tickProps","visibleTicksCount","renderTickItem","_this3","ticksGenerator","_this$props8","noTicksProps","renderAxisLine","renderTicks","Component","minTickGap","interval","Background","ry","renderLineItem","lineItem","restOfFilteredProps","HorizontalGridLines","_props$horizontal","horizontal","horizontalPoints","lineItemProps","VerticalGridLines","_props$vertical","vertical","verticalPoints","HorizontalStripes","horizontalFill","_props$horizontal2","roundedSortedHorizontalPoints","round","sort","a","b","unshift","lineHeight","colorIndex","VerticalStripes","_props$vertical2","verticalFill","roundedSortedVerticalPoints","lineWidth","defaultVerticalCoordinatesGenerator","syncWithTicks","defaultProps","defaultHorizontalCoordinatesGenerator","CartesianGrid","_props$stroke","_props$fill","_props$horizontal3","_props$horizontalFill","_props$vertical3","_props$verticalFill","chartWidth","chartHeight","propsIncludingDefaults","horizontalValues","verticalValues","verticalCoordinatesGenerator","horizontalCoordinatesGenerator","isHorizontalValues","generatorResult","undefined","isVerticalValues","_generatorResult","displayName","_arrayLikeToArray","arr","len","arr2","ErrorBar","_React$Component","dataPointFormatter","svgProps","direction","errorBars","_dataPointFormatter","errorVal","lowBound","highBound","lineCoordinates","_errorVal","_arrayWithHoles","l","n","u","f","next","done","_iterableToArrayLimit","minLen","toString","slice","name","test","_unsupportedIterableToArray","_nonIterableRest","yMid","yMin","yMax","xMin","xMax","_scale","xMid","_xMin","_xMax","_yMin","_yMax","c","coordinates","_toConsumableArray","_arrayWithoutHoles","iter","_iterableToArray","_nonIterableSpread","Line","lines","lineLength","reduce","pre","generateSimpleStrokeDasharray","count","remainLength","restLength","remainLines","sum","emptyLines","repeat","join","node","mainCurve","linesUnit","result","getTotalLength","curveDom","err","children","errorBarItems","dataPoint","errorBarProps","lineProps","curveProps","pathRef","strokeDasharray","animateNewValues","stepData","_interpolatorX","_interpolatorY","renderCurveStatically","currentStrokeDasharray","curLength","split","num","parseFloat","getStrokeDasharray","renderCurveWithAnimation","renderCurve","renderErrorBar","label","XAxisImpl","axisOptions","axisType","XAxis","allowDecimals","tickCount","padding","right","reversed","allowDuplicatedCategory","YAxisImpl","YAxis","bottom","getEveryNthWithCondition","array","isValid","isVisible","tickPosition","getSize","start","end","size","getTicks","angle","Global","getNumberIntervalTicks","candidates","sizeKey","unitSize","getTickSize","content","contentSize","getAngledTickWidth","boundaries","isWidth","getTickBoundaries","_ret","initialStart","stepsize","_loop","v","isShow","getEquidistantTicks","preserveEnd","tail","tailSize","tailGap","_loop2","gap","getTicksStart","getTicksEnd","AreaChart","chartName","GraphicalChild","axisComponents","AxisComp","formatAxisMap","LineChart","PREFIX_LIST","isTouch","changedTouches","Brush","leaveTimer","clearTimeout","isTravellerMoving","handleTravellerMove","isSlideMoving","handleSlideDrag","handleDrag","endIndex","onDragEnd","startIndex","detachDragEndListener","setTimeout","handleDragEnd","leaveTimeOut","isTextActive","event","slideMoveStartX","pageX","attachDragEndListener","travellerDragStartHandlers","handleTravellerDragStart","lineY","renderDefaultTraveller","travellerWidth","updateId","prevData","prevUpdateId","prevTravellerWidth","prevX","prevWidth","range","scaleValues","isTravellerFocused","createScale","valueRange","middle","lastIndex","minIndex","getIndexInRange","maxIndex","text","addEventListener","removeEventListener","onChange","delta","newIndex","getIndex","movingTravellerId","brushMoveStartX","prevValue","params","_this$state3","currentScaleValue","currentIndex","newScaleValue","chartElement","Children","only","margin","compact","travellerX","_data$startIndex","_data$endIndex","traveller","ariaLabel","travellerProps","ariaLabelBrush","Layer","tabIndex","role","onMouseEnter","handleEnterSlideOrTraveller","onMouseLeave","handleLeaveSlideOrTraveller","onMouseDown","onTouchStart","onKeyDown","includes","preventDefault","stopPropagation","handleTravellerMoveKeyboard","onFocus","onBlur","style","cursor","renderTraveller","_this$props9","handleSlideDragStart","_this$props10","_this$state4","attrs","pointerEvents","Text","getTextOfTick","_this$props11","alwaysShowText","_this$state5","camelName","clsx","isPanoramic","replace","toUpperCase","res","handleLeaveWrapper","onTouchMove","handleTouchMove","renderBackground","renderPanorama","renderSlide","renderTravellerLayer","renderText","ifOverflowMatches","alwaysShow","ifOverflow","ReferenceDot","isX","isY","scales","bandAware","isInRange","getCoordinate","shape","renderDot","Label","isFront","Dot","ReferenceLineImpl","fixedX","fixedY","segment","endPoints","isFixedX","isFixedY","isSegment","position","xAxisOrientation","yAxisOrientation","yCoord","coord","reverse","xCoord","_coord","_points","_points2","getEndPoints","_endPoints","_endPoints$","_endPoints$2","renderLine","ReferenceLine","ReferenceArea","hasX1","hasX2","hasY1","hasY2","rect","xValue1","xValue2","yValue1","yValue2","p1","rangeMin","p2","rangeMax","getRect","renderRect","Rectangle","detectReferenceElementsDomain","axisId","specifiedTicks","elements","areas","idKey","valueKey","finalDomain","el","key1","key2","value1","value2","eventCenter","SYNC_EVENT","AccessibilityManager","_ref$coordinateList","coordinateList","_ref$container","container","_ref$layout","_ref$offset","_ref$mouseHandlerCall","mouseHandlerCallback","activeIndex","spoofMouse","_window","_window2","_this$container$getBo","getBoundingClientRect","scrollOffsetX","scrollX","scrollOffsetY","scrollY","pageY","getPath","Cross","_ref$x","_ref$y","_ref$top","_ref$left","_ref$width","_ref$height","d","getRadialCursorPoints","activeCoordinate","radius","startAngle","endAngle","getCursorPoints","innerRadius","outerRadius","innerPoint","outerPoint","Cursor","_element$props$cursor","_defaultProps","element","tooltipEventType","activePayload","activeTooltipIndex","tooltipAxisBandSize","elementPropsCursor","cursorComp","Curve","halfSize","getCursorRectangle","_getRadialCursorPoint","Sector","cursorProps","payloadIndex","isValidElement","cloneElement","createElement","ORIENT_MAP","FULL_WIDTH_AND_HEIGHT","originCoordinate","renderAsIs","getDisplayedData","graphicalItems","dataEndIndex","itemsData","child","itemData","getDefaultDomainByAxisType","getTooltipContent","chartData","activeLabel","tooltipAxis","_child$props$data","entries","getTooltipData","rangeObj","rangeData","chartX","chartY","pos","calculateTooltipPos","orderedTooltipTicks","tooltipTicks","find","_angle","_radius","getActiveCoordinate","getAxisMap","_ref4$axisType","stackGroups","axisIdKey","axes","axisMap","stackOffset","isCategorical","_childProps$domain2","childProps","includeHidden","duplicateDomain","categoricalDomain","domainStart","domainEnd","isDomainSpecifiedByUser","defaultDomain","_childProps$domain","childDomain","duplicate","errorBarsDomain","_defaultProps2","_defaultProps3","itemAxisId","itemHide","axisDomain","every","originalDomain","getAxisMapByAxes","_ref3","Axis","_defaultProps4","_defaultProps5","getAxisMapByItems","createDefaultState","defaultShowTooltip","brushItem","isTooltipActive","getAxisNameByLayout","numericAxisName","cateAxisName","getCartesianAxisSize","axisObj","axisName","generateCategoricalChart","_ref6","_ref6$defaultTooltipE","defaultTooltipEventType","_ref6$validateTooltip","validateTooltipEventTypes","legendContent","updateStateOfAxisMapsOffsetAndStackGroups","_ref8","reverseStackOrder","_getAxisNameByLayout2","_ref5","prevLegendBBox","_ref5$xAxisMap","xAxisMap","_ref5$yAxisMap","yAxisMap","legendItem","Legend","offsetH","offsetV","brushBottom","offsetWidth","offsetHeight","calculateOffset","legendBBox","ticksObj","formattedGraphicalItems","currentState","barSize","barGap","barCategoryGap","globalMaxBarSize","maxBarSize","_getAxisNameByLayout","hasBar","some","hasGraphicalBarItem","formattedItems","itemProps","childMaxBarSize","numericAxisId","cateAxisId","cateAxis","cateTicks","itemIsBar","barPosition","sizeList","totalSize","_ref7","_getBandSizeOfAxis","barBandSize","composedFn","getComposedData","childIndex","getFormatItems","CategoricalChartWrapper","_props","_props$id","_props$throttleDelay","box","cId","emitter","syncId","eventEmitterSymbol","syncMethod","applySyncEvent","_ref9","triggerSyncEvent","mouse","getMouseInfo","_nextState","onMouseMove","activeItem","tooltipPayload","tooltipPosition","persist","throttleTriggeredAfterMouseMove","cancel","_mouse","eventName","_nextState2","onClick","onMouseUp","handleMouseDown","handleMouseUp","onDoubleClick","onContextMenu","emit","validateChartX","validateChartY","_element$props$active","getTooltipEventType","active","elementDefaultProps","elementProps","axisOption","_element$props","radialLines","polarAngles","polarRadius","radiusAxisMap","angleAxisMap","radiusAxis","angleAxis","legendWidth","getLegendProps","g","otherProps","onBBoxUpdate","handleLegendBBoxUpdate","_tooltipItem$props$ac","accessibilityLayer","tooltipItem","Tooltip","_this$state6","handleBrushChange","_this$state7","_element$props2","_element$props2$xAxis","_element$props2$yAxis","_ref10","activePoint","basePoint","itemItemProps","renderActiveDot","filterFormatItem","_this$state8","_item$props","activeBar","activeShape","hasActive","itemEvents","trigger","handleItemMouseEnter","handleItemMouseLeave","graphicalItem","_this$getItemByXY","_ref11$graphicalItem","getItemByXY","_ref11$graphicalItem$","xyItem","specifiedKey","renderActivePoints","handler","once","renderReferenceElement","renderBrush","Bar","renderGraphicChild","Radar","RadialBar","Scatter","Pie","Funnel","renderCursor","PolarGrid","renderPolarGrid","PolarAngleAxis","renderPolarAxis","PolarRadiusAxis","Customized","renderCustomized","triggeredAfterMouseMove","throttleDelay","_this$props$margin$le","_this$props$margin$to","addListener","accessibilityManager","setDetails","displayDefaultTooltip","tooltipElem","defaultIndex","independentAxisCoord","dependentAxisCoord","scatterPlotElement","_ref12","setIndex","prevProps","_this$props$margin$le2","_this$props$margin$to2","removeListener","shared","eventType","boundingRect","containerOffset","inRange","_this$state9","xScale","yScale","xValue","invert","yValue","toolTipData","scaledX","scaledY","_this$state10","tooltipEvents","handleClick","handleMouseEnter","handleDoubleClick","handleMouseMove","handleMouseLeave","handleTouchStart","onTouchEnd","handleTouchEnd","handleContextMenu","handleOuterEvent","on","handleReceiveSyncEvent","_this$state$offset","_ref13","_ref14","_ref15","_ref16","_this$state$xAxisMap","_this$state$yAxisMap","chartXY","_this$state11","itemDisplayName","activeBarItem","_activeBarItem","activeTooltipItem","_this$props$tabIndex","_this$props$role","title","desc","Surface","renderClipPath","renderMap","keyboardEvent","focus","events","parseEventsOfWrapper","renderLegend","renderTooltip","defaultState","prevDataKey","prevHeight","prevLayout","prevStackOffset","prevMargin","prevChildren","_defaultState","keepFromPrevState","updatesToState","newState","_brush$props$startInd","_brush$props","_brush$props$endIndex","_brush$props2","brush","hasDifferentStartOrEndIndex","newUpdateId","CategoricalChart","forwardRef","getLabel","formatter","renderRadialLabel","labelProps","labelAngle","clockWise","deltaAngle","getDeltaAngle","startPoint","endPoint","path","dominantBaseline","xlinkHref","getAttrsOfPolarLabel","midAngle","_polarToCartesian","_x","_polarToCartesian2","getAttrsOfCartesianLabel","parentViewBox","verticalSign","verticalOffset","verticalEnd","verticalStart","horizontalSign","horizontalOffset","horizontalEnd","horizontalStart","_attrs2","_attrs3","sizeAttrs","isPolar","_ref4$offset","_props$className","textBreakAll","isPolarLabel","positionAttrs","breakAll","parseViewBox","labelViewBox","parentProps","checkPropsLabel","explicitChildren","implicitLabel","parseLabel","defaultAccessor","LabelList","_ref$valueAccessor","valueAccessor","idProps","parseLabelList","SIZE","DefaultLegendContent","inactiveColor","sixthSize","thirdSize","color","inactive","legendIcon","iconProps","Symbols","sizeType","iconSize","itemStyle","display","marginRight","svgStyle","verticalAlign","finalFormatter","entryValue","renderIcon","align","finalStyle","textAlign","renderItems","defaultUniqBy","updateBBox","wrapperNode","getBBox","lastBoundingBox","hPos","vPos","getBBoxSnapshot","wrapperStyle","payloadUniqBy","outerStyle","getDefaultPosition","renderContent","getUniqPayload","_slicedToArray","MULTIPLY_OR_DIVIDE_REGEX","ADD_OR_SUBTRACT_REGEX","CSS_LENGTH_UNIT_REGEX","NUM_SPLIT_REGEX","CONVERSION_RATES","cm","mm","pt","pc","Q","px","FIXED_CSS_LENGTH_UNITS","STR_NAN","DecimalCSS","Number","isNaN","NaN","convertToPx","str","_NUM_SPLIT_REGEX$exec","exec","numStr","other","calculateArithmetic","expr","newExpr","_MULTIPLY_OR_DIVIDE_R","leftOperand","operator","rightOperand","lTs","parse","rTs","multiply","divide","_ADD_OR_SUBTRACT_REGE","_leftOperand","_operator","_rightOperand","_lTs","_rTs","_result","add","subtract","PARENTHESES_REGEX","reduceCSSCalc","expression","parentheticalExpression","calculateParentheses","evaluateExpression","safeEvaluateExpression","BREAKING_SPACES","calculateWordWidths","words","wordsWithComputedWidth","word","spaceWidth","getWordsWithoutCalculate","DEFAULT_FILL","_ref5$x","propsX","_ref5$y","propsY","_ref5$lineHeight","_ref5$capHeight","capHeight","_ref5$scaleToFit","scaleToFit","_ref5$textAnchor","_ref5$verticalAnchor","_ref5$fill","wordsByLines","useMemo","maxLines","wordWidths","initialWordsWithComputedWith","shouldLimitLines","calculate","currentLine","newLine","originalResult","trimmedResult","checkOverflow","tempText","doesOverflow","findLongestLine","iterations","_checkOverflow2","doesPrevOverflow","doesMiddleOverflow","calculateWordsByLines","getWordsByLines","dx","dy","textProps","startDy","transforms","transform","defaultFormatter","DefaultTooltipContent","_props$separator","separator","_props$contentStyle","contentStyle","_props$itemStyle","_props$labelStyle","labelStyle","itemSorter","wrapperClassName","labelClassName","labelFormatter","_props$accessibilityL","backgroundColor","border","whiteSpace","finalLabelStyle","hasLabel","finalLabel","wrapperCN","labelCN","accessibilityAttributes","finalItemStyle","paddingTop","paddingBottom","finalValue","finalName","formatted","_formatted","CSS_CLASS_PREFIX","TOOLTIP_HIDDEN","visibility","getTooltipCSSClassName","translateX","translateY","getTooltipTranslateXY","allowEscapeViewBox","offsetTopLeft","reverseDirection","tooltipDimension","viewBoxDimension","negative","positive","TooltipBoundingBox","dismissed","dismissedAtCoordinate","_this$props$coordinat","_this$props$coordinat2","_this$props$coordinat3","_this$props$coordinat4","document","handleKeyDown","_this$props$coordinat5","_this$props$coordinat6","hasPayload","useTranslate3d","_getTooltipTranslate","tooltipBox","cssProperties","getTransformStyle","cssClasses","getTooltipTranslate","transition","filterNull","finalPayload","cursorStyle","svgView","calculateViewBox","XAxisContext","createContext","YAxisContext","ViewBoxContext","OffsetContext","ClipPathIdContext","ChartHeightContext","ChartWidthContext","ChartLayoutContextProvider","_props$state","Provider","useClipPathId","useContext","useXAxisOrThrow","useArbitraryXAxis","useYAxisWithFiniteDomainOrRandom","isFinite","useYAxisOrThrow","useViewBox","useOffset","useChartWidth","useChartHeight","CURVE_FACTORIES","curveBasisClosed","curveBasisOpen","curveBasis","curveBumpX","curveBumpY","curveLinearClosed","curveLinear","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","defined","getX","getY","realPath","lineFunction","_ref$type","_ref$points","_ref$connectNulls","curveFactory","getCurveFactory","formatPoints","formatBaseLine","base","areaPoints","x0","y0","curve","getRectanglePath","maxRadius","ySign","xSign","newRadius","_newRadius","isInRectangle","point","py","minX","minY","isUpdateAnimationActive","rectangleProps","useRef","_useState2","useState","setTotalLength","useEffect","current","pathTotalLength","canBegin","currWidth","currHeight","currX","currY","attributeName","getTangentCircle","isExternal","cornerRadius","cornerIsExternal","centerRadius","theta","asin","centerAngle","lineTangencyAngle","center","circleTangency","lineTangency","cos","getSectorPath","tempEndAngle","outerStartPoint","outerEndPoint","innerStartPoint","innerEndPoint","forceCornerRadius","sectorProps","deltaRadius","cr","_getTangentCircle","soct","solt","sot","_getTangentCircle2","eoct","eolt","eot","outerArcAngle","_getTangentCircle3","sict","silt","sit","_getTangentCircle4","eict","eilt","eit","innerArcAngle","getSectorWithCorner","symbolFactories","symbolCircle","symbolCross","symbolDiamond","symbolSquare","symbolStar","symbolTriangle","symbolWye","RADIAN","PI","symbolFactory","symbol","_ref$size","_ref$sizeType","filteredProps","getSymbolFactory","sqrt","tan","pow","calculateAreaSize","registerSymbol","factory","getTrapezoidPath","upperWidth","lowerWidth","widthGap","Trapezoid","trapezoidProps","currUpperWidth","currLowerWidth","defaultPropTransformer","ShapeSelector","shapeType","isSymbolsProps","Shape","_ref2$propTransformer","propTransformer","_ref2$activeClassName","activeClassName","getPropsFromShapeOption","isFunnel","_item","isPie","isScatter","compareFunnel","shapeData","_activeTooltipItem$la","_activeTooltipItem$la2","xMatches","yMatches","comparePie","startAngleMatches","endAngleMatches","compareScatter","zMatches","z","getActiveShapeIndexForTooltip","shapeKey","getShapeDataKey","_activeItem$tooltipPa","_activeItem$tooltipPa2","getActiveShapeTooltipPayload","activeItemMatches","datum","dataIndex","valuesMatch","mouseCoordinateMatches","comparison","getComparisonFn","indexOfMouseCoordinates","Cell","typeguardBarRectangleProps","xProp","yProp","heightValue","widthValue","BarRectangle","_Bar","curData","baseProps","interpolatorWidth","interpolatorHeight","h","_interpolatorHeight","w","renderRectanglesStatically","renderRectanglesWithAnimation","_this4","backgroundProps","background","renderRectangles","minPointSize","itemDefaultProps","minPointSizeProp","stackedDomain","cells","rects","defaultValue","isValueNumber","minPointSizeCallback","baseValueScale","currentValueScale","computedHeight","_baseValueScale","_currentValueScale","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","createLabeledScales","options","getAngledRectangleWidth","angleRadians","angleThreshold","atan","angledWidth","sin","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","step","lt","toNumber","log","newA","_arr","_n","_d","_e","_s","_i","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","getDomainOfDataByKey","filterNil","flattenData","Date","calculateActiveTickIndex","_ticks$length","unsortedTicks","before","cur","after","sameDirectionCoord","diffInterval","curInRange","afterInRange","sameInterval","minValue","maxValue","getMainColorOfGraphicItem","_item$type","defaultedProps","getBarSizeList","globalSize","_ref2$stackGroups","numericAxisIds","sgs","stackIds","j","sLen","_sgs$stackIds$j","barItems","barItemDefaultProps","barItemProps","selfSize","cateId","stackList","getBarPosition","_ref3$sizeList","realBarGap","initialValue","useFull","fullBarSize","newPosition","newRes","originalSize","appendOffsetOfLegend","_unused","legendBox","legendProps","boxWidth","boxHeight","getDomainOfErrorBars","errorBarChild","isErrorBarRelevantForAxis","mainValue","errorDomain","prevErrorArr","k","errorValue","lowerValue","upperValue","parseErrorBarsOfAxis","domains","getDomainOfItemsWithSameAxis","tag","isCategoricalAxis","getCoordinatesOfGrid","hasMin","hasMax","getTicksOfAxis","isGrid","isAll","offsetForBand","niceTicks","scaleContent","row","handlerWeakMap","WeakMap","combineEventHandlers","defaultHandler","childHandler","has","set","childWeakMap","combineHandler","parseScale","chartType","EPS","checkDomainOfScale","findPositionOfBar","truncateByDomain","STACK_OFFSET_MAP","series","m","expand","none","silhouette","wiggle","getStackedData","stackItems","offsetType","dataKeys","offsetAccessor","order","stack","getStackGroupsByAxisId","_items","_item$type2","stackId","parentGroup","childGroup","group","getTicksOfScale","opts","scaleType","tickValues","_domain","getCateCoordinateOfLine","matchedTick","getCateCoordinateOfBar","getBaseValueOfBar","getStackedDataOfItem","_item$type3","itemIndex","getDomainOfStackGroups","s","MIN_VALUE_REG","MAX_VALUE_REG","parseSpecifiedDomain","specifiedDomain","dataDomain","_value","getBandSizeOfAxis","isBar","bandWidth","orderedTicks","parseDomainOfCategoryAxis","calculatedDomain","axisChild","getTooltipItem","tooltipType","stringCache","widthCache","cacheCount","SPAN_STYLE","MEASUREMENT_SPAN_ID","getStringSize","copyObj","copyStyle","cacheKey","JSON","stringify","measurementSpan","getElementById","setAttribute","body","appendChild","measurementSpanStyle","textContent","getOffset","documentElement","clientTop","clientLeft","mathSign","isPercent","isNumber","isNumOrStr","idCounter","uniqueId","prefix","getPercentValue","percent","totalValue","validate","getAnyElementOfObject","hasDuplicate","ary","cache","interpolateNumber","numberA","numberB","findEntryInArray","specifiedValue","warn","condition","format","radianToDegree","angleInRadian","polarToCartesian","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","contextmenu","dblclick","getDisplayName","Comp","lastChildren","toArray","isFragment","findAllByType","types","childType","findChildByType","validateWidthHeight","_el$props","SVG_TAGS","hasClipDot","filterProps","includeEvents","svgElementType","inputProps","out","_inputProps","property","_FilteredElementKeyMa","matchingElementTypeKeys","isValidSpreadableProp","isChildrenEqual","nextChildren","isSingleChildEqual","nextChild","prevChild","renderByOrder","record","isSvgElement","results","getReactEventByType","parseChildIndex","shallowEqual","legendData","legendDefaultProps","sectors","iconType","getWithHeight","SVGElementPropKeys","PolyElementKeys","FilteredElementKeyMap","svg","polygon","polyline","EventKeys","adaptEventHandlers","newHandler","adaptEventsOfChild","originalHandler","getEventHandlerOfChild"],"sourceRoot":"","ignoreList":[]}