{"version":3,"file":"448.62c33113.js","mappings":"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","sources":["webpack://@finviz/website/../node_modules/decimal.js-light/decimal.js","webpack://@finviz/website/../node_modules/dom-helpers/class/addClass.js","webpack://@finviz/website/../node_modules/dom-helpers/class/hasClass.js","webpack://@finviz/website/../node_modules/dom-helpers/class/removeClass.js","webpack://@finviz/website/../node_modules/eventemitter3/index.js","webpack://@finviz/website/../node_modules/lodash/_DataView.js","webpack://@finviz/website/../node_modules/lodash/_Hash.js","webpack://@finviz/website/../node_modules/lodash/_ListCache.js","webpack://@finviz/website/../node_modules/lodash/_Map.js","webpack://@finviz/website/../node_modules/lodash/_MapCache.js","webpack://@finviz/website/../node_modules/lodash/_Promise.js","webpack://@finviz/website/../node_modules/lodash/_Set.js","webpack://@finviz/website/../node_modules/lodash/_SetCache.js","webpack://@finviz/website/../node_modules/lodash/_Stack.js","webpack://@finviz/website/../node_modules/lodash/_Symbol.js","webpack://@finviz/website/../node_modules/lodash/_Uint8Array.js","webpack://@finviz/website/../node_modules/lodash/_WeakMap.js","webpack://@finviz/website/../node_modules/lodash/_apply.js","webpack://@finviz/website/../node_modules/lodash/_arrayEvery.js","webpack://@finviz/website/../node_modules/lodash/_arrayFilter.js","webpack://@finviz/website/../node_modules/lodash/_arrayIncludes.js","webpack://@finviz/website/../node_modules/lodash/_arrayIncludesWith.js","webpack://@finviz/website/../node_modules/lodash/_arrayLikeKeys.js","webpack://@finviz/website/../node_modules/lodash/_arrayMap.js","webpack://@finviz/website/../node_modules/lodash/_arrayPush.js","webpack://@finviz/website/../node_modules/lodash/_arraySome.js","webpack://@finviz/website/../node_modules/lodash/_asciiToArray.js","webpack://@finviz/website/../node_modules/lodash/_assocIndexOf.js","webpack://@finviz/website/../node_modules/lodash/_baseAssignValue.js","webpack://@finviz/website/../node_modules/lodash/_baseEach.js","webpack://@finviz/website/../node_modules/lodash/_baseEvery.js","webpack://@finviz/website/../node_modules/lodash/_baseExtremum.js","webpack://@finviz/website/../node_modules/lodash/_baseFindIndex.js","webpack://@finviz/website/../node_modules/lodash/_baseFlatten.js","webpack://@finviz/website/../node_modules/lodash/_baseFor.js","webpack://@finviz/website/../node_modules/lodash/_baseForOwn.js","webpack://@finviz/website/../node_modules/lodash/_baseGet.js","webpack://@finviz/website/../node_modules/lodash/_baseGetAllKeys.js","webpack://@finviz/website/../node_modules/lodash/_baseGetTag.js","webpack://@finviz/website/../node_modules/lodash/_baseGt.js","webpack://@finviz/website/../node_modules/lodash/_baseHasIn.js","webpack://@finviz/website/../node_modules/lodash/_baseIndexOf.js","webpack://@finviz/website/../node_modules/lodash/_baseIsArguments.js","webpack://@finviz/website/../node_modules/lodash/_baseIsEqual.js","webpack://@finviz/website/../node_modules/lodash/_baseIsEqualDeep.js","webpack://@finviz/website/../node_modules/lodash/_baseIsMatch.js","webpack://@finviz/website/../node_modules/lodash/_baseIsNaN.js","webpack://@finviz/website/../node_modules/lodash/_baseIsNative.js","webpack://@finviz/website/../node_modules/lodash/_baseIsTypedArray.js","webpack://@finviz/website/../node_modules/lodash/_baseIteratee.js","webpack://@finviz/website/../node_modules/lodash/_baseKeys.js","webpack://@finviz/website/../node_modules/lodash/_baseLt.js","webpack://@finviz/website/../node_modules/lodash/_baseMap.js","webpack://@finviz/website/../node_modules/lodash/_baseMatches.js","webpack://@finviz/website/../node_modules/lodash/_baseMatchesProperty.js","webpack://@finviz/website/../node_modules/lodash/_baseOrderBy.js","webpack://@finviz/website/../node_modules/lodash/_baseProperty.js","webpack://@finviz/website/../node_modules/lodash/_basePropertyDeep.js","webpack://@finviz/website/../node_modules/lodash/_baseRange.js","webpack://@finviz/website/../node_modules/lodash/_baseRest.js","webpack://@finviz/website/../node_modules/lodash/_baseSetToString.js","webpack://@finviz/website/../node_modules/lodash/_baseSlice.js","webpack://@finviz/website/../node_modules/lodash/_baseSome.js","webpack://@finviz/website/../node_modules/lodash/_baseSortBy.js","webpack://@finviz/website/../node_modules/lodash/_baseTimes.js","webpack://@finviz/website/../node_modules/lodash/_baseToString.js","webpack://@finviz/website/../node_modules/lodash/_baseTrim.js","webpack://@finviz/website/../node_modules/lodash/_baseUnary.js","webpack://@finviz/website/../node_modules/lodash/_baseUniq.js","webpack://@finviz/website/../node_modules/lodash/_cacheHas.js","webpack://@finviz/website/../node_modules/lodash/_castPath.js","webpack://@finviz/website/../node_modules/lodash/_castSlice.js","webpack://@finviz/website/../node_modules/lodash/_compareAscending.js","webpack://@finviz/website/../node_modules/lodash/_compareMultiple.js","webpack://@finviz/website/../node_modules/lodash/_coreJsData.js","webpack://@finviz/website/../node_modules/lodash/_createBaseEach.js","webpack://@finviz/website/../node_modules/lodash/_createBaseFor.js","webpack://@finviz/website/../node_modules/lodash/_createCaseFirst.js","webpack://@finviz/website/../node_modules/lodash/_createFind.js","webpack://@finviz/website/../node_modules/lodash/_createRange.js","webpack://@finviz/website/../node_modules/lodash/_createSet.js","webpack://@finviz/website/../node_modules/lodash/_defineProperty.js","webpack://@finviz/website/../node_modules/lodash/_equalArrays.js","webpack://@finviz/website/../node_modules/lodash/_equalByTag.js","webpack://@finviz/website/../node_modules/lodash/_equalObjects.js","webpack://@finviz/website/../node_modules/lodash/_freeGlobal.js","webpack://@finviz/website/../node_modules/lodash/_getAllKeys.js","webpack://@finviz/website/../node_modules/lodash/_getMapData.js","webpack://@finviz/website/../node_modules/lodash/_getMatchData.js","webpack://@finviz/website/../node_modules/lodash/_getNative.js","webpack://@finviz/website/../node_modules/lodash/_getPrototype.js","webpack://@finviz/website/../node_modules/lodash/_getRawTag.js","webpack://@finviz/website/../node_modules/lodash/_getSymbols.js","webpack://@finviz/website/../node_modules/lodash/_getTag.js","webpack://@finviz/website/../node_modules/lodash/_getValue.js","webpack://@finviz/website/../node_modules/lodash/_hasPath.js","webpack://@finviz/website/../node_modules/lodash/_hasUnicode.js","webpack://@finviz/website/../node_modules/lodash/_hashClear.js","webpack://@finviz/website/../node_modules/lodash/_hashDelete.js","webpack://@finviz/website/../node_modules/lodash/_hashGet.js","webpack://@finviz/website/../node_modules/lodash/_hashHas.js","webpack://@finviz/website/../node_modules/lodash/_hashSet.js","webpack://@finviz/website/../node_modules/lodash/_isFlattenable.js","webpack://@finviz/website/../node_modules/lodash/_isIndex.js","webpack://@finviz/website/../node_modules/lodash/_isIterateeCall.js","webpack://@finviz/website/../node_modules/lodash/_isKey.js","webpack://@finviz/website/../node_modules/lodash/_isKeyable.js","webpack://@finviz/website/../node_modules/lodash/_isMasked.js","webpack://@finviz/website/../node_modules/lodash/_isPrototype.js","webpack://@finviz/website/../node_modules/lodash/_isStrictComparable.js","webpack://@finviz/website/../node_modules/lodash/_listCacheClear.js","webpack://@finviz/website/../node_modules/lodash/_listCacheDelete.js","webpack://@finviz/website/../node_modules/lodash/_listCacheGet.js","webpack://@finviz/website/../node_modules/lodash/_listCacheHas.js","webpack://@finviz/website/../node_modules/lodash/_listCacheSet.js","webpack://@finviz/website/../node_modules/lodash/_mapCacheClear.js","webpack://@finviz/website/../node_modules/lodash/_mapCacheDelete.js","webpack://@finviz/website/../node_modules/lodash/_mapCacheGet.js","webpack://@finviz/website/../node_modules/lodash/_mapCacheHas.js","webpack://@finviz/website/../node_modules/lodash/_mapCacheSet.js","webpack://@finviz/website/../node_modules/lodash/_mapToArray.js","webpack://@finviz/website/../node_modules/lodash/_matchesStrictComparable.js","webpack://@finviz/website/../node_modules/lodash/_memoizeCapped.js","webpack://@finviz/website/../node_modules/lodash/_nativeCreate.js","webpack://@finviz/website/../node_modules/lodash/_nativeKeys.js","webpack://@finviz/website/../node_modules/lodash/_nodeUtil.js","webpack://@finviz/website/../node_modules/lodash/_objectToString.js","webpack://@finviz/website/../node_modules/lodash/_overArg.js","webpack://@finviz/website/../node_modules/lodash/_overRest.js","webpack://@finviz/website/../node_modules/lodash/_root.js","webpack://@finviz/website/../node_modules/lodash/_setCacheAdd.js","webpack://@finviz/website/../node_modules/lodash/_setCacheHas.js","webpack://@finviz/website/../node_modules/lodash/_setToArray.js","webpack://@finviz/website/../node_modules/lodash/_setToString.js","webpack://@finviz/website/../node_modules/lodash/_shortOut.js","webpack://@finviz/website/../node_modules/lodash/_stackClear.js","webpack://@finviz/website/../node_modules/lodash/_stackDelete.js","webpack://@finviz/website/../node_modules/lodash/_stackGet.js","webpack://@finviz/website/../node_modules/lodash/_stackHas.js","webpack://@finviz/website/../node_modules/lodash/_stackSet.js","webpack://@finviz/website/../node_modules/lodash/_strictIndexOf.js","webpack://@finviz/website/../node_modules/lodash/_stringToArray.js","webpack://@finviz/website/../node_modules/lodash/_stringToPath.js","webpack://@finviz/website/../node_modules/lodash/_toKey.js","webpack://@finviz/website/../node_modules/lodash/_toSource.js","webpack://@finviz/website/../node_modules/lodash/_trimmedEndIndex.js","webpack://@finviz/website/../node_modules/lodash/_unicodeToArray.js","webpack://@finviz/website/../node_modules/lodash/constant.js","webpack://@finviz/website/../node_modules/lodash/debounce.js","webpack://@finviz/website/../node_modules/lodash/eq.js","webpack://@finviz/website/../node_modules/lodash/every.js","webpack://@finviz/website/../node_modules/lodash/find.js","webpack://@finviz/website/../node_modules/lodash/findIndex.js","webpack://@finviz/website/../node_modules/lodash/flatMap.js","webpack://@finviz/website/../node_modules/lodash/get.js","webpack://@finviz/website/../node_modules/lodash/hasIn.js","webpack://@finviz/website/../node_modules/lodash/identity.js","webpack://@finviz/website/../node_modules/lodash/isArguments.js","webpack://@finviz/website/../node_modules/lodash/isArray.js","webpack://@finviz/website/../node_modules/lodash/isArrayLike.js","webpack://@finviz/website/../node_modules/lodash/isBoolean.js","webpack://@finviz/website/../node_modules/lodash/isBuffer.js","webpack://@finviz/website/../node_modules/lodash/isEqual.js","webpack://@finviz/website/../node_modules/lodash/isFunction.js","webpack://@finviz/website/../node_modules/lodash/isLength.js","webpack://@finviz/website/../node_modules/lodash/isNaN.js","webpack://@finviz/website/../node_modules/lodash/isNil.js","webpack://@finviz/website/../node_modules/lodash/isNumber.js","webpack://@finviz/website/../node_modules/lodash/isObject.js","webpack://@finviz/website/../node_modules/lodash/isObjectLike.js","webpack://@finviz/website/../node_modules/lodash/isPlainObject.js","webpack://@finviz/website/../node_modules/lodash/isString.js","webpack://@finviz/website/../node_modules/lodash/isSymbol.js","webpack://@finviz/website/../node_modules/lodash/isTypedArray.js","webpack://@finviz/website/../node_modules/lodash/keys.js","webpack://@finviz/website/../node_modules/lodash/last.js","webpack://@finviz/website/../node_modules/lodash/map.js","webpack://@finviz/website/../node_modules/lodash/mapValues.js","webpack://@finviz/website/../node_modules/lodash/max.js","webpack://@finviz/website/../node_modules/lodash/memoize.js","webpack://@finviz/website/../node_modules/lodash/min.js","webpack://@finviz/website/../node_modules/lodash/noop.js","webpack://@finviz/website/../node_modules/lodash/now.js","webpack://@finviz/website/../node_modules/lodash/property.js","webpack://@finviz/website/../node_modules/lodash/range.js","webpack://@finviz/website/../node_modules/lodash/some.js","webpack://@finviz/website/../node_modules/lodash/sortBy.js","webpack://@finviz/website/../node_modules/lodash/stubArray.js","webpack://@finviz/website/../node_modules/lodash/stubFalse.js","webpack://@finviz/website/../node_modules/lodash/throttle.js","webpack://@finviz/website/../node_modules/lodash/toFinite.js","webpack://@finviz/website/../node_modules/lodash/toInteger.js","webpack://@finviz/website/../node_modules/lodash/toNumber.js","webpack://@finviz/website/../node_modules/lodash/toString.js","webpack://@finviz/website/../node_modules/lodash/uniqBy.js","webpack://@finviz/website/../node_modules/lodash/upperFirst.js","webpack://@finviz/website/../node_modules/prop-types/factoryWithThrowingShims.js","webpack://@finviz/website/../node_modules/prop-types/index.js","webpack://@finviz/website/../node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://@finviz/website/../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","webpack://@finviz/website/../node_modules/fast-equals/dist/esm/index.mjs","webpack://@finviz/website/../node_modules/react-smooth/es6/setRafTimeout.js","webpack://@finviz/website/../node_modules/react-smooth/es6/AnimateManager.js","webpack://@finviz/website/../node_modules/react-smooth/es6/util.js","webpack://@finviz/website/../node_modules/react-smooth/es6/easing.js","webpack://@finviz/website/../node_modules/react-smooth/es6/configUpdate.js","webpack://@finviz/website/../node_modules/react-smooth/es6/Animate.js","webpack://@finviz/website/../node_modules/react-smooth/es6/AnimateGroupChild.js","webpack://@finviz/website/../node_modules/react-smooth/es6/AnimateGroup.js","webpack://@finviz/website/../node_modules/react-smooth/es6/index.js","webpack://@finviz/website/../node_modules/react-transition-group/CSSTransition.js","webpack://@finviz/website/../node_modules/react-transition-group/ReplaceTransition.js","webpack://@finviz/website/../node_modules/react-transition-group/Transition.js","webpack://@finviz/website/../node_modules/react-transition-group/TransitionGroup.js","webpack://@finviz/website/../node_modules/react-transition-group/index.js","webpack://@finviz/website/../node_modules/react-transition-group/utils/ChildMapping.js","webpack://@finviz/website/../node_modules/react-transition-group/utils/PropTypes.js","webpack://@finviz/website/../node_modules/recharts/es6/util/BarUtils.js","webpack://@finviz/website/../node_modules/recharts/es6/cartesian/Bar.js","webpack://@finviz/website/../node_modules/recharts/es6/cartesian/ErrorBar.js","webpack://@finviz/website/../node_modules/recharts/es6/cartesian/Line.js","webpack://@finviz/website/../node_modules/recharts/es6/cartesian/XAxis.js","webpack://@finviz/website/../node_modules/recharts/es6/cartesian/YAxis.js","webpack://@finviz/website/../node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js","webpack://@finviz/website/../node_modules/recharts/es6/util/getEveryNthWithCondition.js","webpack://@finviz/website/../node_modules/recharts/es6/util/TickUtils.js","webpack://@finviz/website/../node_modules/recharts/es6/cartesian/getTicks.js","webpack://@finviz/website/../node_modules/recharts/es6/cartesian/getEquidistantTicks.js","webpack://@finviz/website/../node_modules/recharts/es6/shape/Cross.js","webpack://@finviz/website/../node_modules/recharts/es6/cartesian/CartesianAxis.js","webpack://@finviz/website/../node_modules/recharts/es6/util/CssPrefixUtils.js","webpack://@finviz/website/../node_modules/recharts/es6/cartesian/Brush.js","webpack://@finviz/website/../node_modules/recharts/es6/util/IfOverflowMatches.js","webpack://@finviz/website/../node_modules/recharts/es6/cartesian/ReferenceDot.js","webpack://@finviz/website/../node_modules/recharts/es6/cartesian/ReferenceLine.js","webpack://@finviz/website/../node_modules/recharts/es6/cartesian/ReferenceArea.js","webpack://@finviz/website/../node_modules/recharts/es6/util/DetectReferenceElementsDomain.js","webpack://@finviz/website/../node_modules/recharts/es6/util/Events.js","webpack://@finviz/website/../node_modules/recharts/es6/chart/AccessibilityManager.js","webpack://@finviz/website/../node_modules/recharts/es6/util/cursor/getCursorPoints.js","webpack://@finviz/website/../node_modules/recharts/es6/chart/generateCategoricalChart.js","webpack://@finviz/website/../node_modules/recharts/es6/util/isDomainSpecifiedByUser.js","webpack://@finviz/website/../node_modules/recharts/es6/util/cursor/getCursorRectangle.js","webpack://@finviz/website/../node_modules/recharts/es6/component/Cell.js","webpack://@finviz/website/../node_modules/recharts/es6/component/Label.js","webpack://@finviz/website/../node_modules/recharts/es6/component/LabelList.js","webpack://@finviz/website/../node_modules/recharts/es6/component/DefaultLegendContent.js","webpack://@finviz/website/../node_modules/recharts/es6/component/Legend.js","webpack://@finviz/website/../node_modules/recharts/es6/util/ReduceCSSCalc.js","webpack://@finviz/website/../node_modules/recharts/es6/component/Text.js","webpack://@finviz/website/../node_modules/recharts/es6/component/DefaultTooltipContent.js","webpack://@finviz/website/../node_modules/recharts/es6/util/tooltip/translate.js","webpack://@finviz/website/../node_modules/recharts/es6/component/TooltipBoundingBox.js","webpack://@finviz/website/../node_modules/recharts/es6/component/Tooltip.js","webpack://@finviz/website/../node_modules/recharts/es6/container/Layer.js","webpack://@finviz/website/../node_modules/recharts/es6/container/Surface.js","webpack://@finviz/website/../node_modules/d3-shape/src/noop.js","webpack://@finviz/website/../node_modules/d3-shape/src/curve/basisClosed.js","webpack://@finviz/website/../node_modules/d3-shape/src/curve/basisOpen.js","webpack://@finviz/website/../node_modules/d3-shape/src/curve/bump.js","webpack://@finviz/website/../node_modules/d3-shape/src/curve/linearClosed.js","webpack://@finviz/website/../node_modules/d3-shape/src/curve/monotone.js","webpack://@finviz/website/../node_modules/d3-shape/src/curve/natural.js","webpack://@finviz/website/../node_modules/d3-shape/src/curve/step.js","webpack://@finviz/website/../node_modules/d3-shape/src/area.js","webpack://@finviz/website/../node_modules/recharts/es6/shape/Curve.js","webpack://@finviz/website/../node_modules/recharts/es6/shape/Dot.js","webpack://@finviz/website/../node_modules/recharts/es6/shape/Rectangle.js","webpack://@finviz/website/../node_modules/recharts/es6/shape/Sector.js","webpack://@finviz/website/../node_modules/d3-shape/src/symbol/circle.js","webpack://@finviz/website/../node_modules/d3-shape/src/symbol/cross.js","webpack://@finviz/website/../node_modules/d3-shape/src/symbol/diamond.js","webpack://@finviz/website/../node_modules/d3-shape/src/symbol/square.js","webpack://@finviz/website/../node_modules/d3-shape/src/symbol/star.js","webpack://@finviz/website/../node_modules/d3-shape/src/symbol/triangle.js","webpack://@finviz/website/../node_modules/d3-shape/src/symbol/wye.js","webpack://@finviz/website/../node_modules/d3-shape/src/symbol/asterisk.js","webpack://@finviz/website/../node_modules/d3-shape/src/symbol/triangle2.js","webpack://@finviz/website/../node_modules/recharts/es6/shape/Symbols.js","webpack://@finviz/website/../node_modules/d3-shape/src/symbol.js","webpack://@finviz/website/../node_modules/recharts/es6/shape/Trapezoid.js","webpack://@finviz/website/../node_modules/recharts/es6/util/ActiveShapeUtils.js","webpack://@finviz/website/../node_modules/recharts/es6/util/CartesianUtils.js","webpack://@finviz/website/../node_modules/d3-shape/src/offset/none.js","webpack://@finviz/website/../node_modules/d3-shape/src/order/none.js","webpack://@finviz/website/../node_modules/d3-shape/src/stack.js","webpack://@finviz/website/../node_modules/recharts-scale/es6/util/utils.js","webpack://@finviz/website/../node_modules/recharts-scale/es6/util/arithmetic.js","webpack://@finviz/website/../node_modules/recharts-scale/es6/getNiceTickValues.js","webpack://@finviz/website/../node_modules/recharts/es6/util/ChartUtils.js","webpack://@finviz/website/../node_modules/d3-shape/src/offset/expand.js","webpack://@finviz/website/../node_modules/d3-shape/src/offset/silhouette.js","webpack://@finviz/website/../node_modules/d3-shape/src/offset/wiggle.js","webpack://@finviz/website/../node_modules/recharts/es6/util/DOMUtils.js","webpack://@finviz/website/../node_modules/recharts/es6/util/DataUtils.js","webpack://@finviz/website/../node_modules/recharts/es6/util/Global.js","webpack://@finviz/website/../node_modules/recharts/es6/util/LogUtils.js","webpack://@finviz/website/../node_modules/recharts/es6/util/PolarUtils.js","webpack://@finviz/website/../node_modules/recharts/es6/util/ReactUtils.js","webpack://@finviz/website/../node_modules/recharts/es6/util/ShallowEqual.js","webpack://@finviz/website/../node_modules/recharts/es6/util/getLegendProps.js","webpack://@finviz/website/../node_modules/recharts/es6/util/payload/getUniqPayload.js","webpack://@finviz/website/../node_modules/recharts/es6/util/types.js","webpack://@finviz/website/../node_modules/recharts/node_modules/react-is/cjs/react-is.production.min.js","webpack://@finviz/website/../node_modules/recharts/node_modules/react-is/index.js","webpack://@finviz/website/../node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://@finviz/website/../node_modules/clsx/dist/clsx.mjs","webpack://@finviz/website/../node_modules/tiny-invariant/dist/esm/tiny-invariant.js"],"sourcesContent":["/*! decimal.js-light v2.5.1 https://github.com/MikeMcl/decimal.js-light/LICENCE */\r\n;(function (globalScope) {\r\n 'use strict';\r\n\r\n\r\n /*\r\n * decimal.js-light v2.5.1\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js-light\r\n * Copyright (c) 2020 Michael Mclaughlin \r\n * MIT Expat Licence\r\n */\r\n\r\n\r\n // ----------------------------------- EDITABLE DEFAULTS ------------------------------------ //\r\n\r\n\r\n // The limit on the value of `precision`, and on the value of the first argument to\r\n // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n var MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n Decimal = {\r\n\r\n // These values must be integers within the stated ranges (inclusive).\r\n // Most of these values can be changed during run-time using `Decimal.config`.\r\n\r\n // The maximum number of significant digits of the result of a calculation or base conversion.\r\n // E.g. `Decimal.config({ precision: 20 });`\r\n precision: 20, // 1 to MAX_DIGITS\r\n\r\n // The rounding mode used by default by `toInteger`, `toDecimalPlaces`, `toExponential`,\r\n // `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n //\r\n // ROUND_UP 0 Away from zero.\r\n // ROUND_DOWN 1 Towards zero.\r\n // ROUND_CEIL 2 Towards +Infinity.\r\n // ROUND_FLOOR 3 Towards -Infinity.\r\n // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n //\r\n // E.g.\r\n // `Decimal.rounding = 4;`\r\n // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\r\n rounding: 4, // 0 to 8\r\n\r\n // The exponent value at and beneath which `toString` returns exponential notation.\r\n // JavaScript numbers: -7\r\n toExpNeg: -7, // 0 to -MAX_E\r\n\r\n // The exponent value at and above which `toString` returns exponential notation.\r\n // JavaScript numbers: 21\r\n toExpPos: 21, // 0 to MAX_E\r\n\r\n // The natural logarithm of 10.\r\n // 115 digits\r\n LN10: '2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286'\r\n },\r\n\r\n\r\n // ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\r\n\r\n\r\n external = true,\r\n\r\n decimalError = '[DecimalError] ',\r\n invalidArgument = decimalError + 'Invalid argument: ',\r\n exponentOutOfRange = decimalError + 'Exponent out of range: ',\r\n\r\n mathfloor = Math.floor,\r\n mathpow = Math.pow,\r\n\r\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n ONE,\r\n BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_SAFE_INTEGER = 9007199254740991,\r\n MAX_E = mathfloor(MAX_SAFE_INTEGER / LOG_BASE), // 1286742750677284\r\n\r\n // Decimal.prototype object\r\n P = {};\r\n\r\n\r\n // Decimal prototype methods\r\n\r\n\r\n /*\r\n * absoluteValue abs\r\n * comparedTo cmp\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy idiv\r\n * equals eq\r\n * exponent\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * isInteger isint\r\n * isNegative isneg\r\n * isPositive ispos\r\n * isZero\r\n * lessThan lt\r\n * lessThanOrEqualTo lte\r\n * logarithm log\r\n * minus sub\r\n * modulo mod\r\n * naturalExponential exp\r\n * naturalLogarithm ln\r\n * negated neg\r\n * plus add\r\n * precision sd\r\n * squareRoot sqrt\r\n * times mul\r\n * toDecimalPlaces todp\r\n * toExponential\r\n * toFixed\r\n * toInteger toint\r\n * toNumber\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits tosd\r\n * toString\r\n * valueOf val\r\n */\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new this.constructor(this);\r\n if (x.s) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this Decimal is greater than the value of `y`,\r\n * -1 if the value of this Decimal is less than the value of `y`,\r\n * 0 if they have the same value\r\n *\r\n */\r\n P.comparedTo = P.cmp = function (y) {\r\n var i, j, xdL, ydL,\r\n x = this;\r\n\r\n y = new x.constructor(y);\r\n\r\n // Signs differ?\r\n if (x.s !== y.s) return x.s || -y.s;\r\n\r\n // Compare exponents.\r\n if (x.e !== y.e) return x.e > y.e ^ x.s < 0 ? 1 : -1;\r\n\r\n xdL = x.d.length;\r\n ydL = y.d.length;\r\n\r\n // Compare digit by digit.\r\n for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\r\n if (x.d[i] !== y.d[i]) return x.d[i] > y.d[i] ^ x.s < 0 ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return xdL === ydL ? 0 : xdL > ydL ^ x.s < 0 ? 1 : -1;\r\n };\r\n\r\n\r\n /*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\r\n P.decimalPlaces = P.dp = function () {\r\n var x = this,\r\n w = x.d.length - 1,\r\n dp = (w - x.e) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n w = x.d[w];\r\n if (w) for (; w % 10 == 0; w /= 10) dp--;\r\n\r\n return dp < 0 ? 0 : dp;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.dividedBy = P.div = function (y) {\r\n return divide(this, new this.constructor(y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n * by the value of `y`, truncated to `precision` significant digits.\r\n *\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(divide(x, new Ctor(y), 0, 1), Ctor.precision);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n *\r\n */\r\n P.equals = P.eq = function (y) {\r\n return !this.cmp(y);\r\n };\r\n\r\n\r\n /*\r\n * Return the (base 10) exponent value of this Decimal (this.e is the base 10000000 exponent).\r\n *\r\n */\r\n P.exponent = function () {\r\n return getBase10Exponent(this);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n * false.\r\n *\r\n */\r\n P.greaterThan = P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n * otherwise return false.\r\n *\r\n */\r\n P.greaterThanOrEqualTo = P.gte = function (y) {\r\n return this.cmp(y) >= 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\r\n P.isInteger = P.isint = function () {\r\n return this.e > this.d.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\r\n P.isNegative = P.isneg = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\r\n P.isPositive = P.ispos = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is 0, otherwise return false.\r\n *\r\n */\r\n P.isZero = function () {\r\n return this.s === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThan = P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThanOrEqualTo = P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n };\r\n\r\n\r\n /*\r\n * Return the logarithm of the value of this Decimal to the specified base, truncated to\r\n * `precision` significant digits.\r\n *\r\n * If no base is specified, return log[10](x).\r\n *\r\n * log[base](x) = ln(x) / ln(base)\r\n *\r\n * The maximum error of the result is 1 ulp (unit in the last place).\r\n *\r\n * [base] {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\n P.logarithm = P.log = function (base) {\r\n var r,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision,\r\n wpr = pr + 5;\r\n\r\n // Default base is 10.\r\n if (base === void 0) {\r\n base = new Ctor(10);\r\n } else {\r\n base = new Ctor(base);\r\n\r\n // log[-b](x) = NaN\r\n // log[0](x) = NaN\r\n // log[1](x) = NaN\r\n if (base.s < 1 || base.eq(ONE)) throw Error(decimalError + 'NaN');\r\n }\r\n\r\n // log[b](-x) = NaN\r\n // log[b](0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // log[b](1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n external = false;\r\n r = divide(ln(x, wpr), ln(base, wpr), wpr);\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.minus = P.sub = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? subtract(x, y) : add(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.modulo = P.mod = function (y) {\r\n var q,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n y = new Ctor(y);\r\n\r\n // x % 0 = NaN\r\n if (!y.s) throw Error(decimalError + 'NaN');\r\n\r\n // Return x if x is 0.\r\n if (!x.s) return round(new Ctor(x), pr);\r\n\r\n // Prevent rounding of intermediate calculations.\r\n external = false;\r\n q = divide(x, y, 0, 1).times(y);\r\n external = true;\r\n\r\n return x.minus(q);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n * i.e. the base e raised to the power the value of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.naturalExponential = P.exp = function () {\r\n return exp(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * truncated to `precision` significant digits.\r\n *\r\n */\r\n P.naturalLogarithm = P.ln = function () {\r\n return ln(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n * -1.\r\n *\r\n */\r\n P.negated = P.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s || 0;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.plus = P.add = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? add(x, y) : subtract(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return the number of significant digits of the value of this Decimal.\r\n *\r\n * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n *\r\n */\r\n P.precision = P.sd = function (z) {\r\n var e, sd, w,\r\n x = this;\r\n\r\n if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\r\n\r\n e = getBase10Exponent(x) + 1;\r\n w = x.d.length - 1;\r\n sd = w * LOG_BASE + 1;\r\n w = x.d[w];\r\n\r\n // If non-zero...\r\n if (w) {\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n for (; w % 10 == 0; w /= 10) sd--;\r\n\r\n // Add the number of digits of the first word.\r\n for (w = x.d[0]; w >= 10; w /= 10) sd++;\r\n }\r\n\r\n return z && e > sd ? e : sd;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the square root of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var e, n, pr, r, s, t, wpr,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n // Negative or zero?\r\n if (x.s < 1) {\r\n if (!x.s) return new Ctor(0);\r\n\r\n // sqrt(-x) = NaN\r\n throw Error(decimalError + 'NaN');\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+x);\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = digitsToString(x.d);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(n);\r\n e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n pr = Ctor.precision;\r\n s = wpr = pr + 3;\r\n\r\n // Newton-Raphson iteration.\r\n for (;;) {\r\n t = r;\r\n r = t.plus(divide(x, t, wpr + 2)).times(0.5);\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === (n = digitsToString(r.d)).slice(0, wpr)) {\r\n n = n.slice(wpr - 3, wpr + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\r\n // 4999, i.e. approaching a rounding boundary, continue the iteration.\r\n if (s == wpr && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n round(t, pr + 1, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n } else if (n != '9999') {\r\n break;\r\n }\r\n\r\n wpr += 4;\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal times `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.times = P.mul = function (y) {\r\n var carry, e, i, k, r, rL, t, xdL, ydL,\r\n x = this,\r\n Ctor = x.constructor,\r\n xd = x.d,\r\n yd = (y = new Ctor(y)).d;\r\n\r\n // Return 0 if either is 0.\r\n if (!x.s || !y.s) return new Ctor(0);\r\n\r\n y.s *= x.s;\r\n e = x.e + y.e;\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Ensure xd points to the longer array.\r\n if (xdL < ydL) {\r\n r = xd;\r\n xd = yd;\r\n yd = r;\r\n rL = xdL;\r\n xdL = ydL;\r\n ydL = rL;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n r = [];\r\n rL = xdL + ydL;\r\n for (i = rL; i--;) r.push(0);\r\n\r\n // Multiply!\r\n for (i = ydL; --i >= 0;) {\r\n carry = 0;\r\n for (k = xdL + i; k > i;) {\r\n t = r[k] + yd[i] * xd[k - i - 1] + carry;\r\n r[k--] = t % BASE | 0;\r\n carry = t / BASE | 0;\r\n }\r\n\r\n r[k] = (r[k] + carry) % BASE | 0;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; !r[--rL];) r.pop();\r\n\r\n if (carry) ++e;\r\n else r.shift();\r\n\r\n y.d = r;\r\n y.e = e;\r\n\r\n return external ? round(y, Ctor.precision) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n *\r\n * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toDecimalPlaces = P.todp = function (dp, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n if (dp === void 0) return x;\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n return round(x, dp + getBase10Exponent(x) + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in exponential notation rounded to\r\n * `dp` fixed decimal places using rounding mode `rounding`.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toExponential = function (dp, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = toString(x, true);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), dp + 1, rm);\r\n str = toString(x, true, dp + 1);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n * omitted.\r\n *\r\n * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n * (-0).toFixed(3) is '0.000'.\r\n * (-0.5).toFixed(0) is '-0'.\r\n *\r\n */\r\n P.toFixed = function (dp, rm) {\r\n var str, y,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) return toString(x);\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n y = round(new Ctor(x), dp + getBase10Exponent(x) + 1, rm);\r\n str = toString(y.abs(), false, dp + getBase10Exponent(y) + 1);\r\n\r\n // To determine whether to add the minus sign look at the value before it was rounded,\r\n // i.e. look at `x` rather than `y`.\r\n return x.isneg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n * rounding mode `rounding`.\r\n *\r\n */\r\n P.toInteger = P.toint = function () {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(new Ctor(x), getBase10Exponent(x) + 1, Ctor.rounding);\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this Decimal converted to a number primitive.\r\n *\r\n */\r\n P.toNumber = function () {\r\n return +this;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`,\r\n * truncated to `precision` significant digits.\r\n *\r\n * For non-integer or very large exponents pow(x, y) is calculated using\r\n *\r\n * x^y = exp(y*ln(x))\r\n *\r\n * The maximum error is 1 ulp (unit in last place).\r\n *\r\n * y {number|string|Decimal} The power to which to raise this Decimal.\r\n *\r\n */\r\n P.toPower = P.pow = function (y) {\r\n var e, k, pr, r, sign, yIsInt,\r\n x = this,\r\n Ctor = x.constructor,\r\n guard = 12,\r\n yn = +(y = new Ctor(y));\r\n\r\n // pow(x, 0) = 1\r\n if (!y.s) return new Ctor(ONE);\r\n\r\n x = new Ctor(x);\r\n\r\n // pow(0, y > 0) = 0\r\n // pow(0, y < 0) = Infinity\r\n if (!x.s) {\r\n if (y.s < 1) throw Error(decimalError + 'Infinity');\r\n return x;\r\n }\r\n\r\n // pow(1, y) = 1\r\n if (x.eq(ONE)) return x;\r\n\r\n pr = Ctor.precision;\r\n\r\n // pow(x, 1) = x\r\n if (y.eq(ONE)) return round(x, pr);\r\n\r\n e = y.e;\r\n k = y.d.length - 1;\r\n yIsInt = e >= k;\r\n sign = x.s;\r\n\r\n if (!yIsInt) {\r\n\r\n // pow(x < 0, y non-integer) = NaN\r\n if (sign < 0) throw Error(decimalError + 'NaN');\r\n\r\n // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n } else if ((k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n r = new Ctor(ONE);\r\n\r\n // Max k of 9007199254740991 takes 53 loop iterations.\r\n // Maximum digits array length; leaves [28, 34] guard digits.\r\n e = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n external = false;\r\n\r\n for (;;) {\r\n if (k % 2) {\r\n r = r.times(x);\r\n truncate(r.d, e);\r\n }\r\n\r\n k = mathfloor(k / 2);\r\n if (k === 0) break;\r\n\r\n x = x.times(x);\r\n truncate(x.d, e);\r\n }\r\n\r\n external = true;\r\n\r\n return y.s < 0 ? new Ctor(ONE).div(r) : round(r, pr);\r\n }\r\n\r\n // Result is negative if x is negative and the last digit of integer y is odd.\r\n sign = sign < 0 && y.d[Math.max(e, k)] & 1 ? -1 : 1;\r\n\r\n x.s = 1;\r\n external = false;\r\n r = y.times(ln(x, pr + guard));\r\n external = true;\r\n r = exp(r);\r\n r.s = sign;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n var e, str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n e = getBase10Exponent(x);\r\n str = toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), sd, rm);\r\n e = getBase10Exponent(x);\r\n str = toString(x, sd <= e || e <= Ctor.toExpNeg, sd);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n * omitted.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toSignificantDigits = P.tosd = function (sd, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n }\r\n\r\n return round(new Ctor(x), sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal.\r\n *\r\n * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n *\r\n */\r\n P.toString = P.valueOf = P.val = P.toJSON = function () {\r\n var x = this,\r\n e = getBase10Exponent(x),\r\n Ctor = x.constructor;\r\n\r\n return toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n };\r\n\r\n\r\n // Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\r\n\r\n\r\n /*\r\n * add P.minus, P.plus\r\n * checkInt32 P.todp, P.toExponential, P.toFixed, P.toPrecision, P.tosd\r\n * digitsToString P.log, P.sqrt, P.pow, toString, exp, ln\r\n * divide P.div, P.idiv, P.log, P.mod, P.sqrt, exp, ln\r\n * exp P.exp, P.pow\r\n * getBase10Exponent P.exponent, P.sd, P.toint, P.sqrt, P.todp, P.toFixed, P.toPrecision,\r\n * P.toString, divide, round, toString, exp, ln\r\n * getLn10 P.log, ln\r\n * getZeroString digitsToString, toString\r\n * ln P.log, P.ln, P.pow, exp\r\n * parseDecimal Decimal\r\n * round P.abs, P.idiv, P.log, P.minus, P.mod, P.neg, P.plus, P.toint, P.sqrt,\r\n * P.times, P.todp, P.toExponential, P.toFixed, P.pow, P.toPrecision, P.tosd,\r\n * divide, getLn10, exp, ln\r\n * subtract P.minus, P.plus\r\n * toString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf\r\n * truncate P.pow\r\n *\r\n * Throws: P.log, P.mod, P.sd, P.sqrt, P.pow, checkInt32, divide, round,\r\n * getLn10, exp, ln, parseDecimal, Decimal, config\r\n */\r\n\r\n\r\n function add(x, y) {\r\n var carry, d, e, i, k, len, xd, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // If either is zero...\r\n if (!x.s || !y.s) {\r\n\r\n // Return x if y is zero.\r\n // Return y if y is non-zero.\r\n if (!y.s) y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n k = x.e;\r\n e = y.e;\r\n xd = xd.slice();\r\n i = k - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (i) {\r\n if (i < 0) {\r\n d = xd;\r\n i = -i;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = k;\r\n len = xd.length;\r\n }\r\n\r\n // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\r\n k = Math.ceil(pr / LOG_BASE);\r\n len = k > len ? k + 1 : len + 1;\r\n\r\n if (i > len) {\r\n i = len;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\r\n d.reverse();\r\n for (; i--;) d.push(0);\r\n d.reverse();\r\n }\r\n\r\n len = xd.length;\r\n i = yd.length;\r\n\r\n // If yd is longer than xd, swap xd and yd so xd points to the longer array.\r\n if (len - i < 0) {\r\n i = len;\r\n d = yd;\r\n yd = xd;\r\n xd = d;\r\n }\r\n\r\n // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\r\n for (carry = 0; i;) {\r\n carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\r\n xd[i] %= BASE;\r\n }\r\n\r\n if (carry) {\r\n xd.unshift(carry);\r\n ++e;\r\n }\r\n\r\n // Remove trailing zeros.\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n for (len = xd.length; xd[--len] == 0;) xd.pop();\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function checkInt32(i, min, max) {\r\n if (i !== ~~i || i < min || i > max) {\r\n throw Error(invalidArgument + i);\r\n }\r\n }\r\n\r\n\r\n function digitsToString(d) {\r\n var i, k, ws,\r\n indexOfLastWord = d.length - 1,\r\n str = '',\r\n w = d[0];\r\n\r\n if (indexOfLastWord > 0) {\r\n str += w;\r\n for (i = 1; i < indexOfLastWord; i++) {\r\n ws = d[i] + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n str += ws;\r\n }\r\n\r\n w = d[i];\r\n ws = w + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n } else if (w === 0) {\r\n return '0';\r\n }\r\n\r\n // Remove trailing zeros of last w.\r\n for (; w % 10 === 0;) w /= 10;\r\n\r\n return str + w;\r\n }\r\n\r\n\r\n var divide = (function () {\r\n\r\n // Assumes non-zero x and k, and hence non-zero result.\r\n function multiplyInteger(x, k) {\r\n var temp,\r\n carry = 0,\r\n i = x.length;\r\n\r\n for (x = x.slice(); i--;) {\r\n temp = x[i] * k + carry;\r\n x[i] = temp % BASE | 0;\r\n carry = temp / BASE | 0;\r\n }\r\n\r\n if (carry) x.unshift(carry);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, r;\r\n\r\n if (aL != bL) {\r\n r = aL > bL ? 1 : -1;\r\n } else {\r\n for (i = r = 0; i < aL; i++) {\r\n if (a[i] != b[i]) {\r\n r = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n function subtract(a, b, aL) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * BASE + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1;) a.shift();\r\n }\r\n\r\n return function (x, y, pr, dp) {\r\n var cmp, e, i, k, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0, yL, yz,\r\n Ctor = x.constructor,\r\n sign = x.s == y.s ? 1 : -1,\r\n xd = x.d,\r\n yd = y.d;\r\n\r\n // Either 0?\r\n if (!x.s) return new Ctor(x);\r\n if (!y.s) throw Error(decimalError + 'Division by zero');\r\n\r\n e = x.e - y.e;\r\n yL = yd.length;\r\n xL = xd.length;\r\n q = new Ctor(sign);\r\n qd = q.d = [];\r\n\r\n // Result exponent may be one less than e.\r\n for (i = 0; yd[i] == (xd[i] || 0); ) ++i;\r\n if (yd[i] > (xd[i] || 0)) --e;\r\n\r\n if (pr == null) {\r\n sd = pr = Ctor.precision;\r\n } else if (dp) {\r\n sd = pr + (getBase10Exponent(x) - getBase10Exponent(y)) + 1;\r\n } else {\r\n sd = pr;\r\n }\r\n\r\n if (sd < 0) return new Ctor(0);\r\n\r\n // Convert precision in number of base 10 digits to base 1e7 digits.\r\n sd = sd / LOG_BASE + 2 | 0;\r\n i = 0;\r\n\r\n // divisor < 1e7\r\n if (yL == 1) {\r\n k = 0;\r\n yd = yd[0];\r\n sd++;\r\n\r\n // k is the carry.\r\n for (; (i < xL || k) && sd--; i++) {\r\n t = k * BASE + (xd[i] || 0);\r\n qd[i] = t / yd | 0;\r\n k = t % yd | 0;\r\n }\r\n\r\n // divisor >= 1e7\r\n } else {\r\n\r\n // Normalise xd and yd so highest order digit of yd is >= BASE/2\r\n k = BASE / (yd[0] + 1) | 0;\r\n\r\n if (k > 1) {\r\n yd = multiplyInteger(yd, k);\r\n xd = multiplyInteger(xd, k);\r\n yL = yd.length;\r\n xL = xd.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xd.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL;) rem[remL++] = 0;\r\n\r\n yz = yd.slice();\r\n yz.unshift(0);\r\n yd0 = yd[0];\r\n\r\n if (yd[1] >= BASE / 2) ++yd0;\r\n\r\n do {\r\n k = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, k.\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * BASE + (rem[1] || 0);\r\n\r\n // k will be how many times the divisor goes into the current remainder.\r\n k = rem0 / yd0 | 0;\r\n\r\n // Algorithm:\r\n // 1. product = divisor * trial digit (k)\r\n // 2. if product > remainder: product -= divisor, k--\r\n // 3. remainder -= product\r\n // 4. if product was < remainder at 2:\r\n // 5. compare new remainder and divisor\r\n // 6. If remainder > divisor: remainder -= divisor, k++\r\n\r\n if (k > 1) {\r\n if (k >= BASE) k = BASE - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiplyInteger(yd, k);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n cmp = compare(prod, rem, prodL, remL);\r\n\r\n // product > remainder.\r\n if (cmp == 1) {\r\n k--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yd, prodL);\r\n }\r\n } else {\r\n\r\n // cmp is -1.\r\n // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\r\n // to avoid it. If k is 1 there is a need to compare yd and rem again below.\r\n if (k == 0) cmp = k = 1;\r\n prod = yd.slice();\r\n }\r\n\r\n prodL = prod.length;\r\n if (prodL < remL) prod.unshift(0);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL);\r\n\r\n // If product was < previous remainder.\r\n if (cmp == -1) {\r\n remL = rem.length;\r\n\r\n // Compare divisor and new remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n if (cmp < 1) {\r\n k++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yd, remL);\r\n }\r\n }\r\n\r\n remL = rem.length;\r\n } else if (cmp === 0) {\r\n k++;\r\n rem = [0];\r\n } // if cmp === 1, k will be 0\r\n\r\n // Add the next digit, k, to the result array.\r\n qd[i++] = k;\r\n\r\n // Update the remainder.\r\n if (cmp && rem[0]) {\r\n rem[remL++] = xd[xi] || 0;\r\n } else {\r\n rem = [xd[xi]];\r\n remL = 1;\r\n }\r\n\r\n } while ((xi++ < xL || rem[0] !== void 0) && sd--);\r\n }\r\n\r\n // Leading zero?\r\n if (!qd[0]) qd.shift();\r\n\r\n q.e = e;\r\n\r\n return round(q, dp ? pr + getBase10Exponent(q) + 1 : pr);\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of `x` truncated to `sd`\r\n * significant digits.\r\n *\r\n * Taylor/Maclaurin series.\r\n *\r\n * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n *\r\n * Argument reduction:\r\n * Repeat x = x / 32, k += 5, until |x| < 0.1\r\n * exp(x) = exp(x / 2^k)^(2^k)\r\n *\r\n * Previously, the argument was initially reduced by\r\n * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10)\r\n * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n * found to be slower than just dividing repeatedly by 32 as above.\r\n *\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n */\r\n function exp(x, sd) {\r\n var denominator, guard, pow, sum, t, wpr,\r\n i = 0,\r\n k = 0,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n if (getBase10Exponent(x) > 16) throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n\r\n // exp(0) = 1\r\n if (!x.s) return new Ctor(ONE);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n t = new Ctor(0.03125);\r\n\r\n while (x.abs().gte(0.1)) {\r\n x = x.times(t); // x = x / 2^5\r\n k += 5;\r\n }\r\n\r\n // Estimate the precision increase necessary to ensure the first 4 rounding digits are correct.\r\n guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\r\n wpr += guard;\r\n denominator = pow = sum = new Ctor(ONE);\r\n Ctor.precision = wpr;\r\n\r\n for (;;) {\r\n pow = round(pow.times(x), wpr);\r\n denominator = denominator.times(++i);\r\n t = sum.plus(divide(pow, denominator, wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n while (k--) sum = round(sum.times(sum), wpr);\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n }\r\n }\r\n\r\n\r\n // Calculate the base 10 exponent from the base 1e7 exponent.\r\n function getBase10Exponent(x) {\r\n var e = x.e * LOG_BASE,\r\n w = x.d[0];\r\n\r\n // Add the number of digits of the first word of the digits array.\r\n for (; w >= 10; w /= 10) e++;\r\n return e;\r\n }\r\n\r\n\r\n function getLn10(Ctor, sd, pr) {\r\n\r\n if (sd > Ctor.LN10.sd()) {\r\n\r\n\r\n // Reset global state in case the exception is caught.\r\n external = true;\r\n if (pr) Ctor.precision = pr;\r\n throw Error(decimalError + 'LN10 precision limit exceeded');\r\n }\r\n\r\n return round(new Ctor(Ctor.LN10), sd);\r\n }\r\n\r\n\r\n function getZeroString(k) {\r\n var zs = '';\r\n for (; k--;) zs += '0';\r\n return zs;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of `x` truncated to `sd` significant\r\n * digits.\r\n *\r\n * ln(n) is non-terminating (n != 1)\r\n *\r\n */\r\n function ln(y, sd) {\r\n var c, c0, denominator, e, numerator, sum, t, wpr, x2,\r\n n = 1,\r\n guard = 10,\r\n x = y,\r\n xd = x.d,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // ln(-x) = NaN\r\n // ln(0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // ln(1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n if (x.eq(10)) {\r\n if (sd == null) external = true;\r\n return getLn10(Ctor, wpr);\r\n }\r\n\r\n wpr += guard;\r\n Ctor.precision = wpr;\r\n c = digitsToString(xd);\r\n c0 = c.charAt(0);\r\n e = getBase10Exponent(x);\r\n\r\n if (Math.abs(e) < 1.5e15) {\r\n\r\n // Argument reduction.\r\n // The series converges faster the closer the argument is to 1, so using\r\n // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b\r\n // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\r\n // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\r\n // later be divided by this number, then separate out the power of 10 using\r\n // ln(a*10^b) = ln(a) + b*ln(10).\r\n\r\n // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\r\n //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\r\n // max n is 6 (gives 0.7 - 1.3)\r\n while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\r\n x = x.times(y);\r\n c = digitsToString(x.d);\r\n c0 = c.charAt(0);\r\n n++;\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n\r\n if (c0 > 1) {\r\n x = new Ctor('0.' + c);\r\n e++;\r\n } else {\r\n x = new Ctor(c0 + '.' + c.slice(1));\r\n }\r\n } else {\r\n\r\n // The argument reduction method above may result in overflow if the argument y is a massive\r\n // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\r\n // function using ln(x*10^e) = ln(x) + e*ln(10).\r\n t = getLn10(Ctor, wpr + 2, pr).times(e + '');\r\n x = ln(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(x, pr)) : x;\r\n }\r\n\r\n // x is reduced to a value near 1.\r\n\r\n // Taylor series.\r\n // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\r\n // where x = (y - 1)/(y + 1) (|x| < 1)\r\n sum = numerator = x = divide(x.minus(ONE), x.plus(ONE), wpr);\r\n x2 = round(x.times(x), wpr);\r\n denominator = 3;\r\n\r\n for (;;) {\r\n numerator = round(numerator.times(x2), wpr);\r\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n sum = sum.times(2);\r\n\r\n // Reverse the argument reduction.\r\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n sum = divide(sum, new Ctor(n), wpr);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n denominator += 2;\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\r\n function parseDecimal(x, str) {\r\n var e, i, len;\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48;) ++i;\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(len - 1) === 48;) --len;\r\n str = str.slice(i, len);\r\n\r\n if (str) {\r\n len -= i;\r\n e = e - i - 1;\r\n x.e = mathfloor(e / LOG_BASE);\r\n x.d = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first word of the digits array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE;\r\n\r\n if (i < len) {\r\n if (i) x.d.push(+str.slice(0, i));\r\n for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));\r\n str = str.slice(i);\r\n i = LOG_BASE - str.length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--;) str += '0';\r\n x.d.push(+str);\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) throw Error(exponentOutOfRange + e);\r\n } else {\r\n\r\n // Zero.\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Round `x` to `sd` significant digits, using rounding mode `rm` if present (truncate otherwise).\r\n */\r\n function round(x, sd, rm) {\r\n var i, j, k, n, rd, doRound, w, xdi,\r\n xd = x.d;\r\n\r\n // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // w: the word of xd which contains the rounding digit, a base 1e7 number.\r\n // xdi: the index of w within xd.\r\n // n: the number of digits of w.\r\n // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\r\n // they had leading zeros)\r\n // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\r\n\r\n // Get the length of the first word of the digits array xd.\r\n for (n = 1, k = xd[0]; k >= 10; k /= 10) n++;\r\n i = sd - n;\r\n\r\n // Is the rounding digit in the first word of xd?\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n w = xd[xdi = 0];\r\n } else {\r\n xdi = Math.ceil((i + 1) / LOG_BASE);\r\n k = xd.length;\r\n if (xdi >= k) return x;\r\n w = k = xd[xdi];\r\n\r\n // Get the number of digits of w.\r\n for (n = 1; k >= 10; k /= 10) n++;\r\n\r\n // Get the index of rd within w.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within w, adjusted for leading zeros.\r\n // The number of leading zeros of w is given by LOG_BASE - n.\r\n j = i - LOG_BASE + n;\r\n }\r\n\r\n if (rm !== void 0) {\r\n k = mathpow(10, n - j - 1);\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = w / k % 10 | 0;\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n doRound = sd < 0 || xd[xdi + 1] !== void 0 || w % k;\r\n\r\n // The expression `w % mathpow(10, n - j - 1)` returns all the digits of w to the right of the\r\n // digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression will give\r\n // 714.\r\n\r\n doRound = rm < 4\r\n ? (rd || doRound) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || doRound || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? w / mathpow(10, n - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n }\r\n\r\n if (sd < 1 || !xd[0]) {\r\n if (doRound) {\r\n k = getBase10Exponent(x);\r\n xd.length = 1;\r\n\r\n // Convert sd to decimal places.\r\n sd = sd - k - 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\r\n x.e = mathfloor(-sd / LOG_BASE) || 0;\r\n } else {\r\n xd.length = 1;\r\n\r\n // Zero.\r\n xd[0] = x.e = x.s = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xd.length = xdi;\r\n k = 1;\r\n xdi--;\r\n } else {\r\n xd.length = xdi + 1;\r\n k = mathpow(10, LOG_BASE - i);\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of w.\r\n xd[xdi] = j > 0 ? (w / mathpow(10, n - j) % mathpow(10, j) | 0) * k : 0;\r\n }\r\n\r\n if (doRound) {\r\n for (;;) {\r\n\r\n // Is the digit to be rounded up in the first word of xd?\r\n if (xdi == 0) {\r\n if ((xd[0] += k) == BASE) {\r\n xd[0] = 1;\r\n ++x.e;\r\n }\r\n\r\n break;\r\n } else {\r\n xd[xdi] += k;\r\n if (xd[xdi] != BASE) break;\r\n xd[xdi--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xd.length; xd[--i] === 0;) xd.pop();\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) {\r\n throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function subtract(x, y) {\r\n var d, e, i, j, k, len, xd, xe, xLTy, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // Return y negated if x is zero.\r\n // Return x if y is zero and x is non-zero.\r\n if (!x.s || !y.s) {\r\n if (y.s) y.s = -y.s;\r\n else y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are non-zero numbers with the same sign.\r\n\r\n e = y.e;\r\n xe = x.e;\r\n xd = xd.slice();\r\n k = xe - e;\r\n\r\n // If exponents differ...\r\n if (k) {\r\n xLTy = k < 0;\r\n\r\n if (xLTy) {\r\n d = xd;\r\n k = -k;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = xe;\r\n len = xd.length;\r\n }\r\n\r\n // Numbers with massively different exponents would result in a very high number of zeros\r\n // needing to be prepended, but this can be avoided while still ensuring correct rounding by\r\n // limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\r\n i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\r\n\r\n if (k > i) {\r\n k = i;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents.\r\n d.reverse();\r\n for (i = k; i--;) d.push(0);\r\n d.reverse();\r\n\r\n // Base 1e7 exponents equal.\r\n } else {\r\n\r\n // Check digits to determine which is the bigger number.\r\n\r\n i = xd.length;\r\n len = yd.length;\r\n xLTy = i < len;\r\n if (xLTy) len = i;\r\n\r\n for (i = 0; i < len; i++) {\r\n if (xd[i] != yd[i]) {\r\n xLTy = xd[i] < yd[i];\r\n break;\r\n }\r\n }\r\n\r\n k = 0;\r\n }\r\n\r\n if (xLTy) {\r\n d = xd;\r\n xd = yd;\r\n yd = d;\r\n y.s = -y.s;\r\n }\r\n\r\n len = xd.length;\r\n\r\n // Append zeros to xd if shorter.\r\n // Don't add zeros to yd if shorter as subtraction only needs to start at yd length.\r\n for (i = yd.length - len; i > 0; --i) xd[len++] = 0;\r\n\r\n // Subtract yd from xd.\r\n for (i = yd.length; i > k;) {\r\n if (xd[--i] < yd[i]) {\r\n for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;\r\n --xd[j];\r\n xd[i] += BASE;\r\n }\r\n\r\n xd[i] -= yd[i];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] === 0;) xd.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xd[0] === 0; xd.shift()) --e;\r\n\r\n // Zero?\r\n if (!xd[0]) return new Ctor(0);\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n //return external && xd.length >= pr / LOG_BASE ? round(y, pr) : y;\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function toString(x, isExp, sd) {\r\n var k,\r\n e = getBase10Exponent(x),\r\n str = digitsToString(x.d),\r\n len = str.length;\r\n\r\n if (isExp) {\r\n if (sd && (k = sd - len) > 0) {\r\n str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\r\n } else if (len > 1) {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n\r\n str = str + (e < 0 ? 'e' : 'e+') + e;\r\n } else if (e < 0) {\r\n str = '0.' + getZeroString(-e - 1) + str;\r\n if (sd && (k = sd - len) > 0) str += getZeroString(k);\r\n } else if (e >= len) {\r\n str += getZeroString(e + 1 - len);\r\n if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\r\n } else {\r\n if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\r\n if (sd && (k = sd - len) > 0) {\r\n if (e + 1 === len) str += '.';\r\n str += getZeroString(k);\r\n }\r\n }\r\n\r\n return x.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Does not strip trailing zeros.\r\n function truncate(arr, len) {\r\n if (arr.length > len) {\r\n arr.length = len;\r\n return true;\r\n }\r\n }\r\n\r\n\r\n // Decimal methods\r\n\r\n\r\n /*\r\n * clone\r\n * config/set\r\n */\r\n\r\n\r\n /*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\r\n function clone(obj) {\r\n var i, p, ps;\r\n\r\n /*\r\n * The Decimal constructor and exported function.\r\n * Return a new Decimal instance.\r\n *\r\n * value {number|string|Decimal} A numeric value.\r\n *\r\n */\r\n function Decimal(value) {\r\n var x = this;\r\n\r\n // Decimal called without new.\r\n if (!(x instanceof Decimal)) return new Decimal(value);\r\n\r\n // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\r\n // which points to Object.\r\n x.constructor = Decimal;\r\n\r\n // Duplicate.\r\n if (value instanceof Decimal) {\r\n x.s = value.s;\r\n x.e = value.e;\r\n x.d = (value = value.d) ? value.slice() : value;\r\n return;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n\r\n // Reject Infinity/NaN.\r\n if (value * 0 !== 0) {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n if (value > 0) {\r\n x.s = 1;\r\n } else if (value < 0) {\r\n value = -value;\r\n x.s = -1;\r\n } else {\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n return;\r\n }\r\n\r\n // Fast path for small integers.\r\n if (value === ~~value && value < 1e7) {\r\n x.e = 0;\r\n x.d = [value];\r\n return;\r\n }\r\n\r\n return parseDecimal(x, value.toString());\r\n } else if (typeof value !== 'string') {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n // Minus sign?\r\n if (value.charCodeAt(0) === 45) {\r\n value = value.slice(1);\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n if (isDecimal.test(value)) parseDecimal(x, value);\r\n else throw Error(invalidArgument + value);\r\n }\r\n\r\n Decimal.prototype = P;\r\n\r\n Decimal.ROUND_UP = 0;\r\n Decimal.ROUND_DOWN = 1;\r\n Decimal.ROUND_CEIL = 2;\r\n Decimal.ROUND_FLOOR = 3;\r\n Decimal.ROUND_HALF_UP = 4;\r\n Decimal.ROUND_HALF_DOWN = 5;\r\n Decimal.ROUND_HALF_EVEN = 6;\r\n Decimal.ROUND_HALF_CEIL = 7;\r\n Decimal.ROUND_HALF_FLOOR = 8;\r\n\r\n Decimal.clone = clone;\r\n Decimal.config = Decimal.set = config;\r\n\r\n if (obj === void 0) obj = {};\r\n if (obj) {\r\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'LN10'];\r\n for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\r\n }\r\n\r\n Decimal.config(obj);\r\n\r\n return Decimal;\r\n }\r\n\r\n\r\n /*\r\n * Configure global settings for a Decimal constructor.\r\n *\r\n * `obj` is an object with one or more of the following properties,\r\n *\r\n * precision {number}\r\n * rounding {number}\r\n * toExpNeg {number}\r\n * toExpPos {number}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\r\n function config(obj) {\r\n if (!obj || typeof obj !== 'object') {\r\n throw Error(decimalError + 'Object expected');\r\n }\r\n var i, p, v,\r\n ps = [\r\n 'precision', 1, MAX_DIGITS,\r\n 'rounding', 0, 8,\r\n 'toExpNeg', -1 / 0, 0,\r\n 'toExpPos', 0, 1 / 0\r\n ];\r\n\r\n for (i = 0; i < ps.length; i += 3) {\r\n if ((v = obj[p = ps[i]]) !== void 0) {\r\n if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n if ((v = obj[p = 'LN10']) !== void 0) {\r\n if (v == Math.LN10) this[p] = new this(v);\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n\r\n // Create and configure initial Decimal constructor.\r\n Decimal = clone(Decimal);\r\n\r\n Decimal['default'] = Decimal.Decimal = Decimal;\r\n\r\n // Internal constant.\r\n ONE = new Decimal(1);\r\n\r\n\r\n // Export.\r\n\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () {\r\n return Decimal;\r\n });\r\n\r\n // Node and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n module.exports = Decimal;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalScope) {\r\n globalScope = typeof self != 'undefined' && self && self.self == self\r\n ? self : Function('return this')();\r\n }\r\n\r\n globalScope.Decimal = Decimal;\r\n }\r\n})(this);\r\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = addClass;\n\nvar _hasClass = _interopRequireDefault(require(\"./hasClass\"));\n\nfunction addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className);\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = hasClass;\n\nfunction hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);else return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\nmodule.exports = exports[\"default\"];","'use strict';\n\nfunction replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp('(^|\\\\s)' + classToRemove + '(?:\\\\s|$)', 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nmodule.exports = function removeClass(element, className) {\n if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n};","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","/**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\nfunction arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = arrayEvery;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\nfunction baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n}\n\nmodule.exports = baseEvery;\n","var isSymbol = require('./isSymbol');\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseExtremum;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nmodule.exports = baseGt;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nmodule.exports = baseLt;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nmodule.exports = baseRange;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n}\n\nmodule.exports = baseSome;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;\n","var baseIteratee = require('./_baseIteratee'),\n isArrayLike = require('./isArrayLike'),\n keys = require('./keys');\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nmodule.exports = createFind;\n","var baseRange = require('./_baseRange'),\n isIterateeCall = require('./_isIterateeCall'),\n toFinite = require('./toFinite');\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nmodule.exports = createRange;\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var arrayEvery = require('./_arrayEvery'),\n baseEvery = require('./_baseEvery'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\nfunction every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = every;\n","var createFind = require('./_createFind'),\n findIndex = require('./findIndex');\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nmodule.exports = find;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nmodule.exports = findIndex;\n","var baseFlatten = require('./_baseFlatten'),\n map = require('./map');\n\n/**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\nfunction flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n}\n\nmodule.exports = flatMap;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n}\n\nmodule.exports = isBoolean;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var isNumber = require('./isNumber');\n\n/**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\nfunction isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n}\n\nmodule.exports = isNaN;\n","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nmodule.exports = isNumber;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;\n","var baseExtremum = require('./_baseExtremum'),\n baseGt = require('./_baseGt'),\n identity = require('./identity');\n\n/**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\nfunction max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n}\n\nmodule.exports = max;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseExtremum = require('./_baseExtremum'),\n baseLt = require('./_baseLt'),\n identity = require('./identity');\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nmodule.exports = min;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var createRange = require('./_createRange');\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nmodule.exports = range;\n","var arraySome = require('./_arraySome'),\n baseIteratee = require('./_baseIteratee'),\n baseSome = require('./_baseSome'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\nfunction some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = some;\n","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var baseIteratee = require('./_baseIteratee'),\n baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","var getOwnPropertyNames = Object.getOwnPropertyNames, getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n/**\n * Combine two comparators into a single comparators.\n */\nfunction combineComparators(comparatorA, comparatorB) {\n return function isEqual(a, b, state) {\n return comparatorA(a, b, state) && comparatorB(a, b, state);\n };\n}\n/**\n * Wrap the provided `areItemsEqual` method to manage the circular state, allowing\n * for circular references to be safely included in the comparison without creating\n * stack overflows.\n */\nfunction createIsCircular(areItemsEqual) {\n return function isCircular(a, b, state) {\n if (!a || !b || typeof a !== 'object' || typeof b !== 'object') {\n return areItemsEqual(a, b, state);\n }\n var cache = state.cache;\n var cachedA = cache.get(a);\n var cachedB = cache.get(b);\n if (cachedA && cachedB) {\n return cachedA === b && cachedB === a;\n }\n cache.set(a, b);\n cache.set(b, a);\n var result = areItemsEqual(a, b, state);\n cache.delete(a);\n cache.delete(b);\n return result;\n };\n}\n/**\n * Get the properties to strictly examine, which include both own properties that are\n * not enumerable and symbol properties.\n */\nfunction getStrictProperties(object) {\n return getOwnPropertyNames(object).concat(getOwnPropertySymbols(object));\n}\n/**\n * Whether the object contains the property passed as an own property.\n */\nvar hasOwn = Object.hasOwn ||\n (function (object, property) {\n return hasOwnProperty.call(object, property);\n });\n/**\n * Whether the values passed are strictly equal or both NaN.\n */\nfunction sameValueZeroEqual(a, b) {\n return a || b ? a === b : a === b || (a !== a && b !== b);\n}\n\nvar OWNER = '_owner';\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor, keys = Object.keys;\n/**\n * Whether the arrays are equal in value.\n */\nfunction areArraysEqual(a, b, state) {\n var index = a.length;\n if (b.length !== index) {\n return false;\n }\n while (index-- > 0) {\n if (!state.equals(a[index], b[index], index, index, a, b, state)) {\n return false;\n }\n }\n return true;\n}\n/**\n * Whether the dates passed are equal in value.\n */\nfunction areDatesEqual(a, b) {\n return sameValueZeroEqual(a.getTime(), b.getTime());\n}\n/**\n * Whether the `Map`s are equal in value.\n */\nfunction areMapsEqual(a, b, state) {\n if (a.size !== b.size) {\n return false;\n }\n var matchedIndices = {};\n var aIterable = a.entries();\n var index = 0;\n var aResult;\n var bResult;\n while ((aResult = aIterable.next())) {\n if (aResult.done) {\n break;\n }\n var bIterable = b.entries();\n var hasMatch = false;\n var matchIndex = 0;\n while ((bResult = bIterable.next())) {\n if (bResult.done) {\n break;\n }\n var _a = aResult.value, aKey = _a[0], aValue = _a[1];\n var _b = bResult.value, bKey = _b[0], bValue = _b[1];\n if (!hasMatch &&\n !matchedIndices[matchIndex] &&\n (hasMatch =\n state.equals(aKey, bKey, index, matchIndex, a, b, state) &&\n state.equals(aValue, bValue, aKey, bKey, a, b, state))) {\n matchedIndices[matchIndex] = true;\n }\n matchIndex++;\n }\n if (!hasMatch) {\n return false;\n }\n index++;\n }\n return true;\n}\n/**\n * Whether the objects are equal in value.\n */\nfunction areObjectsEqual(a, b, state) {\n var properties = keys(a);\n var index = properties.length;\n if (keys(b).length !== index) {\n return false;\n }\n var property;\n // Decrementing `while` showed faster results than either incrementing or\n // decrementing `for` loop and than an incrementing `while` loop. Declarative\n // methods like `some` / `every` were not used to avoid incurring the garbage\n // cost of anonymous callbacks.\n while (index-- > 0) {\n property = properties[index];\n if (property === OWNER &&\n (a.$$typeof || b.$$typeof) &&\n a.$$typeof !== b.$$typeof) {\n return false;\n }\n if (!hasOwn(b, property) ||\n !state.equals(a[property], b[property], property, property, a, b, state)) {\n return false;\n }\n }\n return true;\n}\n/**\n * Whether the objects are equal in value with strict property checking.\n */\nfunction areObjectsEqualStrict(a, b, state) {\n var properties = getStrictProperties(a);\n var index = properties.length;\n if (getStrictProperties(b).length !== index) {\n return false;\n }\n var property;\n var descriptorA;\n var descriptorB;\n // Decrementing `while` showed faster results than either incrementing or\n // decrementing `for` loop and than an incrementing `while` loop. Declarative\n // methods like `some` / `every` were not used to avoid incurring the garbage\n // cost of anonymous callbacks.\n while (index-- > 0) {\n property = properties[index];\n if (property === OWNER &&\n (a.$$typeof || b.$$typeof) &&\n a.$$typeof !== b.$$typeof) {\n return false;\n }\n if (!hasOwn(b, property)) {\n return false;\n }\n if (!state.equals(a[property], b[property], property, property, a, b, state)) {\n return false;\n }\n descriptorA = getOwnPropertyDescriptor(a, property);\n descriptorB = getOwnPropertyDescriptor(b, property);\n if ((descriptorA || descriptorB) &&\n (!descriptorA ||\n !descriptorB ||\n descriptorA.configurable !== descriptorB.configurable ||\n descriptorA.enumerable !== descriptorB.enumerable ||\n descriptorA.writable !== descriptorB.writable)) {\n return false;\n }\n }\n return true;\n}\n/**\n * Whether the primitive wrappers passed are equal in value.\n */\nfunction arePrimitiveWrappersEqual(a, b) {\n return sameValueZeroEqual(a.valueOf(), b.valueOf());\n}\n/**\n * Whether the regexps passed are equal in value.\n */\nfunction areRegExpsEqual(a, b) {\n return a.source === b.source && a.flags === b.flags;\n}\n/**\n * Whether the `Set`s are equal in value.\n */\nfunction areSetsEqual(a, b, state) {\n if (a.size !== b.size) {\n return false;\n }\n var matchedIndices = {};\n var aIterable = a.values();\n var aResult;\n var bResult;\n while ((aResult = aIterable.next())) {\n if (aResult.done) {\n break;\n }\n var bIterable = b.values();\n var hasMatch = false;\n var matchIndex = 0;\n while ((bResult = bIterable.next())) {\n if (bResult.done) {\n break;\n }\n if (!hasMatch &&\n !matchedIndices[matchIndex] &&\n (hasMatch = state.equals(aResult.value, bResult.value, aResult.value, bResult.value, a, b, state))) {\n matchedIndices[matchIndex] = true;\n }\n matchIndex++;\n }\n if (!hasMatch) {\n return false;\n }\n }\n return true;\n}\n/**\n * Whether the TypedArray instances are equal in value.\n */\nfunction areTypedArraysEqual(a, b) {\n var index = a.length;\n if (b.length !== index) {\n return false;\n }\n while (index-- > 0) {\n if (a[index] !== b[index]) {\n return false;\n }\n }\n return true;\n}\n\nvar ARGUMENTS_TAG = '[object Arguments]';\nvar BOOLEAN_TAG = '[object Boolean]';\nvar DATE_TAG = '[object Date]';\nvar MAP_TAG = '[object Map]';\nvar NUMBER_TAG = '[object Number]';\nvar OBJECT_TAG = '[object Object]';\nvar REG_EXP_TAG = '[object RegExp]';\nvar SET_TAG = '[object Set]';\nvar STRING_TAG = '[object String]';\nvar isArray = Array.isArray;\nvar isTypedArray = typeof ArrayBuffer === 'function' && ArrayBuffer.isView\n ? ArrayBuffer.isView\n : null;\nvar assign = Object.assign;\nvar getTag = Object.prototype.toString.call.bind(Object.prototype.toString);\n/**\n * Create a comparator method based on the type-specific equality comparators passed.\n */\nfunction createEqualityComparator(_a) {\n var areArraysEqual = _a.areArraysEqual, areDatesEqual = _a.areDatesEqual, areMapsEqual = _a.areMapsEqual, areObjectsEqual = _a.areObjectsEqual, arePrimitiveWrappersEqual = _a.arePrimitiveWrappersEqual, areRegExpsEqual = _a.areRegExpsEqual, areSetsEqual = _a.areSetsEqual, areTypedArraysEqual = _a.areTypedArraysEqual;\n /**\n * compare the value of the two objects and return true if they are equivalent in values\n */\n return function comparator(a, b, state) {\n // If the items are strictly equal, no need to do a value comparison.\n if (a === b) {\n return true;\n }\n // If the items are not non-nullish objects, then the only possibility\n // of them being equal but not strictly is if they are both `NaN`. Since\n // `NaN` is uniquely not equal to itself, we can use self-comparison of\n // both objects, which is faster than `isNaN()`.\n if (a == null ||\n b == null ||\n typeof a !== 'object' ||\n typeof b !== 'object') {\n return a !== a && b !== b;\n }\n var constructor = a.constructor;\n // Checks are listed in order of commonality of use-case:\n // 1. Common complex object types (plain object, array)\n // 2. Common data values (date, regexp)\n // 3. Less-common complex object types (map, set)\n // 4. Less-common data values (promise, primitive wrappers)\n // Inherently this is both subjective and assumptive, however\n // when reviewing comparable libraries in the wild this order\n // appears to be generally consistent.\n // Constructors should match, otherwise there is potential for false positives\n // between class and subclass or custom object and POJO.\n if (constructor !== b.constructor) {\n return false;\n }\n // `isPlainObject` only checks against the object's own realm. Cross-realm\n // comparisons are rare, and will be handled in the ultimate fallback, so\n // we can avoid capturing the string tag.\n if (constructor === Object) {\n return areObjectsEqual(a, b, state);\n }\n // `isArray()` works on subclasses and is cross-realm, so we can avoid capturing\n // the string tag or doing an `instanceof` check.\n if (isArray(a)) {\n return areArraysEqual(a, b, state);\n }\n // `isTypedArray()` works on all possible TypedArray classes, so we can avoid\n // capturing the string tag or comparing against all possible constructors.\n if (isTypedArray != null && isTypedArray(a)) {\n return areTypedArraysEqual(a, b, state);\n }\n // Try to fast-path equality checks for other complex object types in the\n // same realm to avoid capturing the string tag. Strict equality is used\n // instead of `instanceof` because it is more performant for the common\n // use-case. If someone is subclassing a native class, it will be handled\n // with the string tag comparison.\n if (constructor === Date) {\n return areDatesEqual(a, b, state);\n }\n if (constructor === RegExp) {\n return areRegExpsEqual(a, b, state);\n }\n if (constructor === Map) {\n return areMapsEqual(a, b, state);\n }\n if (constructor === Set) {\n return areSetsEqual(a, b, state);\n }\n // Since this is a custom object, capture the string tag to determing its type.\n // This is reasonably performant in modern environments like v8 and SpiderMonkey.\n var tag = getTag(a);\n if (tag === DATE_TAG) {\n return areDatesEqual(a, b, state);\n }\n if (tag === REG_EXP_TAG) {\n return areRegExpsEqual(a, b, state);\n }\n if (tag === MAP_TAG) {\n return areMapsEqual(a, b, state);\n }\n if (tag === SET_TAG) {\n return areSetsEqual(a, b, state);\n }\n if (tag === OBJECT_TAG) {\n // The exception for value comparison is custom `Promise`-like class instances. These should\n // be treated the same as standard `Promise` objects, which means strict equality, and if\n // it reaches this point then that strict equality comparison has already failed.\n return (typeof a.then !== 'function' &&\n typeof b.then !== 'function' &&\n areObjectsEqual(a, b, state));\n }\n // If an arguments tag, it should be treated as a standard object.\n if (tag === ARGUMENTS_TAG) {\n return areObjectsEqual(a, b, state);\n }\n // As the penultimate fallback, check if the values passed are primitive wrappers. This\n // is very rare in modern JS, which is why it is deprioritized compared to all other object\n // types.\n if (tag === BOOLEAN_TAG || tag === NUMBER_TAG || tag === STRING_TAG) {\n return arePrimitiveWrappersEqual(a, b, state);\n }\n // If not matching any tags that require a specific type of comparison, then we hard-code false because\n // the only thing remaining is strict equality, which has already been compared. This is for a few reasons:\n // - Certain types that cannot be introspected (e.g., `WeakMap`). For these types, this is the only\n // comparison that can be made.\n // - For types that can be introspected, but rarely have requirements to be compared\n // (`ArrayBuffer`, `DataView`, etc.), the cost is avoided to prioritize the common\n // use-cases (may be included in a future release, if requested enough).\n // - For types that can be introspected but do not have an objective definition of what\n // equality is (`Error`, etc.), the subjective decision is to be conservative and strictly compare.\n // In all cases, these decisions should be reevaluated based on changes to the language and\n // common development practices.\n return false;\n };\n}\n/**\n * Create the configuration object used for building comparators.\n */\nfunction createEqualityComparatorConfig(_a) {\n var circular = _a.circular, createCustomConfig = _a.createCustomConfig, strict = _a.strict;\n var config = {\n areArraysEqual: strict\n ? areObjectsEqualStrict\n : areArraysEqual,\n areDatesEqual: areDatesEqual,\n areMapsEqual: strict\n ? combineComparators(areMapsEqual, areObjectsEqualStrict)\n : areMapsEqual,\n areObjectsEqual: strict\n ? areObjectsEqualStrict\n : areObjectsEqual,\n arePrimitiveWrappersEqual: arePrimitiveWrappersEqual,\n areRegExpsEqual: areRegExpsEqual,\n areSetsEqual: strict\n ? combineComparators(areSetsEqual, areObjectsEqualStrict)\n : areSetsEqual,\n areTypedArraysEqual: strict\n ? areObjectsEqualStrict\n : areTypedArraysEqual,\n };\n if (createCustomConfig) {\n config = assign({}, config, createCustomConfig(config));\n }\n if (circular) {\n var areArraysEqual$1 = createIsCircular(config.areArraysEqual);\n var areMapsEqual$1 = createIsCircular(config.areMapsEqual);\n var areObjectsEqual$1 = createIsCircular(config.areObjectsEqual);\n var areSetsEqual$1 = createIsCircular(config.areSetsEqual);\n config = assign({}, config, {\n areArraysEqual: areArraysEqual$1,\n areMapsEqual: areMapsEqual$1,\n areObjectsEqual: areObjectsEqual$1,\n areSetsEqual: areSetsEqual$1,\n });\n }\n return config;\n}\n/**\n * Default equality comparator pass-through, used as the standard `isEqual` creator for\n * use inside the built comparator.\n */\nfunction createInternalEqualityComparator(compare) {\n return function (a, b, _indexOrKeyA, _indexOrKeyB, _parentA, _parentB, state) {\n return compare(a, b, state);\n };\n}\n/**\n * Create the `isEqual` function used by the consuming application.\n */\nfunction createIsEqual(_a) {\n var circular = _a.circular, comparator = _a.comparator, createState = _a.createState, equals = _a.equals, strict = _a.strict;\n if (createState) {\n return function isEqual(a, b) {\n var _a = createState(), _b = _a.cache, cache = _b === void 0 ? circular ? new WeakMap() : undefined : _b, meta = _a.meta;\n return comparator(a, b, {\n cache: cache,\n equals: equals,\n meta: meta,\n strict: strict,\n });\n };\n }\n if (circular) {\n return function isEqual(a, b) {\n return comparator(a, b, {\n cache: new WeakMap(),\n equals: equals,\n meta: undefined,\n strict: strict,\n });\n };\n }\n var state = {\n cache: undefined,\n equals: equals,\n meta: undefined,\n strict: strict,\n };\n return function isEqual(a, b) {\n return comparator(a, b, state);\n };\n}\n\n/**\n * Whether the items passed are deeply-equal in value.\n */\nvar deepEqual = createCustomEqual();\n/**\n * Whether the items passed are deeply-equal in value based on strict comparison.\n */\nvar strictDeepEqual = createCustomEqual({ strict: true });\n/**\n * Whether the items passed are deeply-equal in value, including circular references.\n */\nvar circularDeepEqual = createCustomEqual({ circular: true });\n/**\n * Whether the items passed are deeply-equal in value, including circular references,\n * based on strict comparison.\n */\nvar strictCircularDeepEqual = createCustomEqual({\n circular: true,\n strict: true,\n});\n/**\n * Whether the items passed are shallowly-equal in value.\n */\nvar shallowEqual = createCustomEqual({\n createInternalComparator: function () { return sameValueZeroEqual; },\n});\n/**\n * Whether the items passed are shallowly-equal in value based on strict comparison\n */\nvar strictShallowEqual = createCustomEqual({\n strict: true,\n createInternalComparator: function () { return sameValueZeroEqual; },\n});\n/**\n * Whether the items passed are shallowly-equal in value, including circular references.\n */\nvar circularShallowEqual = createCustomEqual({\n circular: true,\n createInternalComparator: function () { return sameValueZeroEqual; },\n});\n/**\n * Whether the items passed are shallowly-equal in value, including circular references,\n * based on strict comparison.\n */\nvar strictCircularShallowEqual = createCustomEqual({\n circular: true,\n createInternalComparator: function () { return sameValueZeroEqual; },\n strict: true,\n});\n/**\n * Create a custom equality comparison method.\n *\n * This can be done to create very targeted comparisons in extreme hot-path scenarios\n * where the standard methods are not performant enough, but can also be used to provide\n * support for legacy environments that do not support expected features like\n * `RegExp.prototype.flags` out of the box.\n */\nfunction createCustomEqual(options) {\n if (options === void 0) { options = {}; }\n var _a = options.circular, circular = _a === void 0 ? false : _a, createCustomInternalComparator = options.createInternalComparator, createState = options.createState, _b = options.strict, strict = _b === void 0 ? false : _b;\n var config = createEqualityComparatorConfig(options);\n var comparator = createEqualityComparator(config);\n var equals = createCustomInternalComparator\n ? createCustomInternalComparator(comparator)\n : createInternalEqualityComparator(comparator);\n return createIsEqual({ circular: circular, comparator: comparator, createState: createState, equals: equals, strict: strict });\n}\n\nexport { circularDeepEqual, circularShallowEqual, createCustomEqual, deepEqual, sameValueZeroEqual, shallowEqual, strictCircularDeepEqual, strictCircularShallowEqual, strictDeepEqual, strictShallowEqual };\n//# sourceMappingURL=index.mjs.map\n","function safeRequestAnimationFrame(callback) {\n if (typeof requestAnimationFrame !== 'undefined') requestAnimationFrame(callback);\n}\nexport default function setRafTimeout(callback) {\n var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var currTime = -1;\n var shouldUpdate = function shouldUpdate(now) {\n if (currTime < 0) {\n currTime = now;\n }\n if (now - currTime > timeout) {\n callback(now);\n currTime = -1;\n } else {\n safeRequestAnimationFrame(shouldUpdate);\n }\n };\n requestAnimationFrame(shouldUpdate);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _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 _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport setRafTimeout from './setRafTimeout';\nexport default function createAnimateManager() {\n var currStyle = {};\n var handleChange = function handleChange() {\n return null;\n };\n var shouldStop = false;\n var setStyle = function setStyle(_style) {\n if (shouldStop) {\n return;\n }\n if (Array.isArray(_style)) {\n if (!_style.length) {\n return;\n }\n var styles = _style;\n var _styles = _toArray(styles),\n curr = _styles[0],\n restStyles = _styles.slice(1);\n if (typeof curr === 'number') {\n setRafTimeout(setStyle.bind(null, restStyles), curr);\n return;\n }\n setStyle(curr);\n setRafTimeout(setStyle.bind(null, restStyles));\n return;\n }\n if (_typeof(_style) === 'object') {\n currStyle = _style;\n handleChange(currStyle);\n }\n if (typeof _style === 'function') {\n _style();\n }\n };\n return {\n stop: function stop() {\n shouldStop = true;\n },\n start: function start(style) {\n shouldStop = false;\n setStyle(style);\n },\n subscribe: function subscribe(_handleChange) {\n handleChange = _handleChange;\n return function () {\n handleChange = function handleChange() {\n return null;\n };\n };\n }\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/* eslint no-console: 0 */\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nvar IN_LINE_PREFIX_LIST = ['-webkit-', '-moz-', '-o-', '-ms-'];\nvar IN_COMPATIBLE_PROPERTY = ['transform', 'transformOrigin', 'transition'];\nexport var getIntersectionKeys = function getIntersectionKeys(preObj, nextObj) {\n return [Object.keys(preObj), Object.keys(nextObj)].reduce(function (a, b) {\n return a.filter(function (c) {\n return b.includes(c);\n });\n });\n};\nexport var identity = function identity(param) {\n return param;\n};\n\n/*\n * @description: convert camel case to dash case\n * string => string\n */\nexport var getDashCase = function getDashCase(name) {\n return name.replace(/([A-Z])/g, function (v) {\n return \"-\".concat(v.toLowerCase());\n });\n};\n\n/*\n * @description: add compatible style prefix\n * (string, string) => object\n */\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (IN_COMPATIBLE_PROPERTY.indexOf(name) === -1) {\n return _defineProperty({}, name, Number.isNaN(value) ? 0 : value);\n }\n var isTransition = name === 'transition';\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var styleVal = value;\n return PREFIX_LIST.reduce(function (result, property, i) {\n if (isTransition) {\n styleVal = value.replace(/(transform|transform-origin)/gim, \"\".concat(IN_LINE_PREFIX_LIST[i], \"$1\"));\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, property + camelName, styleVal));\n }, {});\n};\nexport var log = function log() {\n var _console;\n (_console = console).log.apply(_console, arguments);\n};\n\n/*\n * @description: log the value of a varible\n * string => any => any\n */\nexport var debug = function debug(name) {\n return function (item) {\n log(name, item);\n return item;\n };\n};\n\n/*\n * @description: log name, args, return value of a function\n * function => function\n */\nexport var debugf = function debugf(tag, f) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var res = f.apply(void 0, args);\n var name = tag || f.name || 'anonymous function';\n var argNames = \"(\".concat(args.map(JSON.stringify).join(', '), \")\");\n log(\"\".concat(name, \": \").concat(argNames, \" => \").concat(JSON.stringify(res)));\n return res;\n };\n};\n\n/*\n * @description: map object on every element in this object.\n * (function, object) => object\n */\nexport var mapObject = function mapObject(fn, obj) {\n return Object.keys(obj).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, fn(key, obj[key])));\n }, {});\n};\n\n/*\n * @description: add compatible prefix to style\n * object => object\n */\nexport var translateStyle = function translateStyle(style) {\n return Object.keys(style).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), generatePrefixStyle(key, res[key]));\n }, style);\n};\nexport var compose = function compose() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (!args.length) {\n return identity;\n }\n var fns = args.reverse();\n // first function can receive multiply arguments\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 getTransitionVal = function getTransitionVal(props, duration, easing) {\n return props.map(function (prop) {\n return \"\".concat(getDashCase(prop), \" \").concat(duration, \"ms \").concat(easing);\n }).join(',');\n};\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format, a, b, c, d, e, f) {\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 args = [a, b, c, d, e, f];\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _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 { warn } from './util';\nvar ACCURACY = 1e-4;\nvar cubicBezierFactor = function cubicBezierFactor(c1, c2) {\n return [0, 3 * c1, 3 * c2 - 6 * c1, 3 * c1 - 3 * c2 + 1];\n};\nvar multyTime = function multyTime(params, t) {\n return params.map(function (param, i) {\n return param * Math.pow(t, i);\n }).reduce(function (pre, curr) {\n return pre + curr;\n });\n};\nvar cubicBezier = function cubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n return multyTime(params, t);\n };\n};\nvar derivativeCubicBezier = function derivativeCubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n var newParams = [].concat(_toConsumableArray(params.map(function (param, i) {\n return param * i;\n }).slice(1)), [0]);\n return multyTime(newParams, t);\n };\n};\n\n// calculate cubic-bezier using Newton's method\nexport var configBezier = function configBezier() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var x1 = args[0],\n y1 = args[1],\n x2 = args[2],\n y2 = args[3];\n if (args.length === 1) {\n switch (args[0]) {\n case 'linear':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n case 'ease':\n x1 = 0.25;\n y1 = 0.1;\n x2 = 0.25;\n y2 = 1.0;\n break;\n case 'ease-in':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n case 'ease-out':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n case 'ease-in-out':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n default:\n {\n var easing = args[0].split('(');\n if (easing[0] === 'cubic-bezier' && easing[1].split(')')[0].split(',').length === 4) {\n var _easing$1$split$0$spl = easing[1].split(')')[0].split(',').map(function (x) {\n return parseFloat(x);\n });\n var _easing$1$split$0$spl2 = _slicedToArray(_easing$1$split$0$spl, 4);\n x1 = _easing$1$split$0$spl2[0];\n y1 = _easing$1$split$0$spl2[1];\n x2 = _easing$1$split$0$spl2[2];\n y2 = _easing$1$split$0$spl2[3];\n } else {\n warn(false, '[configBezier]: arguments should be one of ' + \"oneOf 'linear', 'ease', 'ease-in', 'ease-out', \" + \"'ease-in-out','cubic-bezier(x1,y1,x2,y2)', instead received %s\", args);\n }\n }\n }\n }\n warn([x1, x2, y1, y2].every(function (num) {\n return typeof num === 'number' && num >= 0 && num <= 1;\n }), '[configBezier]: arguments should be x1, y1, x2, y2 of [0, 1] instead received %s', args);\n var curveX = cubicBezier(x1, x2);\n var curveY = cubicBezier(y1, y2);\n var derCurveX = derivativeCubicBezier(x1, x2);\n var rangeValue = function rangeValue(value) {\n if (value > 1) {\n return 1;\n }\n if (value < 0) {\n return 0;\n }\n return value;\n };\n var bezier = function bezier(_t) {\n var t = _t > 1 ? 1 : _t;\n var x = t;\n for (var i = 0; i < 8; ++i) {\n var evalT = curveX(x) - t;\n var derVal = derCurveX(x);\n if (Math.abs(evalT - t) < ACCURACY || derVal < ACCURACY) {\n return curveY(x);\n }\n x = rangeValue(x - evalT / derVal);\n }\n return curveY(x);\n };\n bezier.isStepper = false;\n return bezier;\n};\nexport var configSpring = function configSpring() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _config$stiff = config.stiff,\n stiff = _config$stiff === void 0 ? 100 : _config$stiff,\n _config$damping = config.damping,\n damping = _config$damping === void 0 ? 8 : _config$damping,\n _config$dt = config.dt,\n dt = _config$dt === void 0 ? 17 : _config$dt;\n var stepper = function stepper(currX, destX, currV) {\n var FSpring = -(currX - destX) * stiff;\n var FDamping = currV * damping;\n var newV = currV + (FSpring - FDamping) * dt / 1000;\n var newX = currV * dt / 1000 + currX;\n if (Math.abs(newX - destX) < ACCURACY && Math.abs(newV) < ACCURACY) {\n return [destX, 0];\n }\n return [newX, newV];\n };\n stepper.isStepper = true;\n stepper.dt = dt;\n return stepper;\n};\nexport var configEasing = function configEasing() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n var easing = args[0];\n if (typeof easing === 'string') {\n switch (easing) {\n case 'ease':\n case 'ease-in-out':\n case 'ease-out':\n case 'ease-in':\n case 'linear':\n return configBezier(easing);\n case 'spring':\n return configSpring();\n default:\n if (easing.split('(')[0] === 'cubic-bezier') {\n return configBezier(easing);\n }\n warn(false, \"[configEasing]: first argument should be one of 'ease', 'ease-in', \" + \"'ease-out', 'ease-in-out','cubic-bezier(x1,y1,x2,y2)', 'linear' and 'spring', instead received %s\", args);\n }\n }\n if (typeof easing === 'function') {\n return easing;\n }\n warn(false, '[configEasing]: first argument type should be function or string, instead received %s', args);\n return null;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _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 _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 ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport { getIntersectionKeys, mapObject } from './util';\nvar alpha = function alpha(begin, end, k) {\n return begin + (end - begin) * k;\n};\nvar needContinue = function needContinue(_ref) {\n var from = _ref.from,\n to = _ref.to;\n return from !== to;\n};\n\n/*\n * @description: cal new from value and velocity in each stepper\n * @return: { [styleProperty]: { from, to, velocity } }\n */\nvar calStepperVals = function calStepperVals(easing, preVals, steps) {\n var nextStepVals = mapObject(function (key, val) {\n if (needContinue(val)) {\n var _easing = easing(val.from, val.to, val.velocity),\n _easing2 = _slicedToArray(_easing, 2),\n newX = _easing2[0],\n newV = _easing2[1];\n return _objectSpread(_objectSpread({}, val), {}, {\n from: newX,\n velocity: newV\n });\n }\n return val;\n }, preVals);\n if (steps < 1) {\n return mapObject(function (key, val) {\n if (needContinue(val)) {\n return _objectSpread(_objectSpread({}, val), {}, {\n velocity: alpha(val.velocity, nextStepVals[key].velocity, steps),\n from: alpha(val.from, nextStepVals[key].from, steps)\n });\n }\n return val;\n }, preVals);\n }\n return calStepperVals(easing, nextStepVals, steps - 1);\n};\n\n// configure update function\nexport default (function (from, to, easing, duration, render) {\n var interKeys = getIntersectionKeys(from, to);\n var timingStyle = interKeys.reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, [from[key], to[key]]));\n }, {});\n var stepperStyle = interKeys.reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, {\n from: from[key],\n velocity: 0,\n to: to[key]\n }));\n }, {});\n var cafId = -1;\n var preTime;\n var beginTime;\n var update = function update() {\n return null;\n };\n var getCurrStyle = function getCurrStyle() {\n return mapObject(function (key, val) {\n return val.from;\n }, stepperStyle);\n };\n var shouldStopAnimation = function shouldStopAnimation() {\n return !Object.values(stepperStyle).filter(needContinue).length;\n };\n\n // stepper timing function like spring\n var stepperUpdate = function stepperUpdate(now) {\n if (!preTime) {\n preTime = now;\n }\n var deltaTime = now - preTime;\n var steps = deltaTime / easing.dt;\n stepperStyle = calStepperVals(easing, stepperStyle, steps);\n // get union set and add compatible prefix\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), getCurrStyle(stepperStyle)));\n preTime = now;\n if (!shouldStopAnimation()) {\n cafId = requestAnimationFrame(update);\n }\n };\n\n // t => val timing function like cubic-bezier\n var timingUpdate = function timingUpdate(now) {\n if (!beginTime) {\n beginTime = now;\n }\n var t = (now - beginTime) / duration;\n var currStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(t)]));\n }, timingStyle);\n\n // get union set and add compatible prefix\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), currStyle));\n if (t < 1) {\n cafId = requestAnimationFrame(update);\n } else {\n var finalStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(1)]));\n }, timingStyle);\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), finalStyle));\n }\n };\n update = easing.isStepper ? stepperUpdate : timingUpdate;\n\n // return start animation method\n return function () {\n requestAnimationFrame(update);\n\n // return stop animation method\n return function () {\n cancelAnimationFrame(cafId);\n };\n };\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"children\", \"begin\", \"duration\", \"attributeName\", \"easing\", \"isActive\", \"steps\", \"from\", \"to\", \"canBegin\", \"onAnimationEnd\", \"shouldReAnimate\", \"onAnimationReStart\"];\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _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(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nimport React, { PureComponent, cloneElement, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport { deepEqual } from 'fast-equals';\nimport createAnimateManager from './AnimateManager';\nimport { configEasing } from './easing';\nimport configUpdate from './configUpdate';\nimport { getTransitionVal, identity, translateStyle } from './util';\nvar Animate = /*#__PURE__*/function (_PureComponent) {\n _inherits(Animate, _PureComponent);\n var _super = _createSuper(Animate);\n function Animate(props, context) {\n var _this;\n _classCallCheck(this, Animate);\n _this = _super.call(this, props, context);\n var _this$props = _this.props,\n isActive = _this$props.isActive,\n attributeName = _this$props.attributeName,\n from = _this$props.from,\n to = _this$props.to,\n steps = _this$props.steps,\n children = _this$props.children,\n duration = _this$props.duration;\n _this.handleStyleChange = _this.handleStyleChange.bind(_assertThisInitialized(_this));\n _this.changeStyle = _this.changeStyle.bind(_assertThisInitialized(_this));\n if (!isActive || duration <= 0) {\n _this.state = {\n style: {}\n };\n\n // if children is a function and animation is not active, set style to 'to'\n if (typeof children === 'function') {\n _this.state = {\n style: to\n };\n }\n return _possibleConstructorReturn(_this);\n }\n if (steps && steps.length) {\n _this.state = {\n style: steps[0].style\n };\n } else if (from) {\n if (typeof children === 'function') {\n _this.state = {\n style: from\n };\n return _possibleConstructorReturn(_this);\n }\n _this.state = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n } else {\n _this.state = {\n style: {}\n };\n }\n return _this;\n }\n _createClass(Animate, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props2 = this.props,\n isActive = _this$props2.isActive,\n canBegin = _this$props2.canBegin;\n this.mounted = true;\n if (!isActive || !canBegin) {\n return;\n }\n this.runAnimation(this.props);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props3 = this.props,\n isActive = _this$props3.isActive,\n canBegin = _this$props3.canBegin,\n attributeName = _this$props3.attributeName,\n shouldReAnimate = _this$props3.shouldReAnimate,\n to = _this$props3.to,\n currentFrom = _this$props3.from;\n var style = this.state.style;\n if (!canBegin) {\n return;\n }\n if (!isActive) {\n var newState = {\n style: attributeName ? _defineProperty({}, attributeName, to) : to\n };\n if (this.state && style) {\n if (attributeName && style[attributeName] !== to || !attributeName && style !== to) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(newState);\n }\n }\n return;\n }\n if (deepEqual(prevProps.to, to) && prevProps.canBegin && prevProps.isActive) {\n return;\n }\n var isTriggered = !prevProps.canBegin || !prevProps.isActive;\n if (this.manager) {\n this.manager.stop();\n }\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n var from = isTriggered || shouldReAnimate ? currentFrom : prevProps.to;\n if (this.state && style) {\n var _newState = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n if (attributeName && [attributeName] !== from || !attributeName && style !== from) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(_newState);\n }\n }\n this.runAnimation(_objectSpread(_objectSpread({}, this.props), {}, {\n from: from,\n begin: 0\n }));\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false;\n var onAnimationEnd = this.props.onAnimationEnd;\n if (this.unSubscribe) {\n this.unSubscribe();\n }\n if (this.manager) {\n this.manager.stop();\n this.manager = null;\n }\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n if (onAnimationEnd) {\n onAnimationEnd();\n }\n }\n }, {\n key: \"handleStyleChange\",\n value: function handleStyleChange(style) {\n this.changeStyle(style);\n }\n }, {\n key: \"changeStyle\",\n value: function changeStyle(style) {\n if (this.mounted) {\n this.setState({\n style: style\n });\n }\n }\n }, {\n key: \"runJSAnimation\",\n value: function runJSAnimation(props) {\n var _this2 = this;\n var from = props.from,\n to = props.to,\n duration = props.duration,\n easing = props.easing,\n begin = props.begin,\n onAnimationEnd = props.onAnimationEnd,\n onAnimationStart = props.onAnimationStart;\n var startAnimation = configUpdate(from, to, configEasing(easing), duration, this.changeStyle);\n var finalStartAnimation = function finalStartAnimation() {\n _this2.stopJSAnimation = startAnimation();\n };\n this.manager.start([onAnimationStart, begin, finalStartAnimation, duration, onAnimationEnd]);\n }\n }, {\n key: \"runStepAnimation\",\n value: function runStepAnimation(props) {\n var _this3 = this;\n var steps = props.steps,\n begin = props.begin,\n onAnimationStart = props.onAnimationStart;\n var _steps$ = steps[0],\n initialStyle = _steps$.style,\n _steps$$duration = _steps$.duration,\n initialTime = _steps$$duration === void 0 ? 0 : _steps$$duration;\n var addStyle = function addStyle(sequence, nextItem, index) {\n if (index === 0) {\n return sequence;\n }\n var duration = nextItem.duration,\n _nextItem$easing = nextItem.easing,\n easing = _nextItem$easing === void 0 ? 'ease' : _nextItem$easing,\n style = nextItem.style,\n nextProperties = nextItem.properties,\n onAnimationEnd = nextItem.onAnimationEnd;\n var preItem = index > 0 ? steps[index - 1] : nextItem;\n var properties = nextProperties || Object.keys(style);\n if (typeof easing === 'function' || easing === 'spring') {\n return [].concat(_toConsumableArray(sequence), [_this3.runJSAnimation.bind(_this3, {\n from: preItem.style,\n to: style,\n duration: duration,\n easing: easing\n }), duration]);\n }\n var transition = getTransitionVal(properties, duration, easing);\n var newStyle = _objectSpread(_objectSpread(_objectSpread({}, preItem.style), style), {}, {\n transition: transition\n });\n return [].concat(_toConsumableArray(sequence), [newStyle, duration, onAnimationEnd]).filter(identity);\n };\n return this.manager.start([onAnimationStart].concat(_toConsumableArray(steps.reduce(addStyle, [initialStyle, Math.max(initialTime, begin)])), [props.onAnimationEnd]));\n }\n }, {\n key: \"runAnimation\",\n value: function runAnimation(props) {\n if (!this.manager) {\n this.manager = createAnimateManager();\n }\n var begin = props.begin,\n duration = props.duration,\n attributeName = props.attributeName,\n propsTo = props.to,\n easing = props.easing,\n onAnimationStart = props.onAnimationStart,\n onAnimationEnd = props.onAnimationEnd,\n steps = props.steps,\n children = props.children;\n var manager = this.manager;\n this.unSubscribe = manager.subscribe(this.handleStyleChange);\n if (typeof easing === 'function' || typeof children === 'function' || easing === 'spring') {\n this.runJSAnimation(props);\n return;\n }\n if (steps.length > 1) {\n this.runStepAnimation(props);\n return;\n }\n var to = attributeName ? _defineProperty({}, attributeName, propsTo) : propsTo;\n var transition = getTransitionVal(Object.keys(to), duration, easing);\n manager.start([onAnimationStart, begin, _objectSpread(_objectSpread({}, to), {}, {\n transition: transition\n }), duration, onAnimationEnd]);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n children = _this$props4.children,\n begin = _this$props4.begin,\n duration = _this$props4.duration,\n attributeName = _this$props4.attributeName,\n easing = _this$props4.easing,\n isActive = _this$props4.isActive,\n steps = _this$props4.steps,\n from = _this$props4.from,\n to = _this$props4.to,\n canBegin = _this$props4.canBegin,\n onAnimationEnd = _this$props4.onAnimationEnd,\n shouldReAnimate = _this$props4.shouldReAnimate,\n onAnimationReStart = _this$props4.onAnimationReStart,\n others = _objectWithoutProperties(_this$props4, _excluded);\n var count = Children.count(children);\n // eslint-disable-next-line react/destructuring-assignment\n var stateStyle = translateStyle(this.state.style);\n if (typeof children === 'function') {\n return children(stateStyle);\n }\n if (!isActive || count === 0 || duration <= 0) {\n return children;\n }\n var cloneContainer = function cloneContainer(container) {\n var _container$props = container.props,\n _container$props$styl = _container$props.style,\n style = _container$props$styl === void 0 ? {} : _container$props$styl,\n className = _container$props.className;\n var res = /*#__PURE__*/cloneElement(container, _objectSpread(_objectSpread({}, others), {}, {\n style: _objectSpread(_objectSpread({}, style), stateStyle),\n className: className\n }));\n return res;\n };\n if (count === 1) {\n return cloneContainer(Children.only(children));\n }\n return /*#__PURE__*/React.createElement(\"div\", null, Children.map(children, function (child) {\n return cloneContainer(child);\n }));\n }\n }]);\n return Animate;\n}(PureComponent);\nAnimate.displayName = 'Animate';\nAnimate.defaultProps = {\n begin: 0,\n duration: 1000,\n from: '',\n to: '',\n attributeName: '',\n easing: 'ease',\n isActive: true,\n canBegin: true,\n steps: [],\n onAnimationEnd: function onAnimationEnd() {},\n onAnimationStart: function onAnimationStart() {}\n};\nAnimate.propTypes = {\n from: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n to: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n attributeName: PropTypes.string,\n // animation duration\n duration: PropTypes.number,\n begin: PropTypes.number,\n easing: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n steps: PropTypes.arrayOf(PropTypes.shape({\n duration: PropTypes.number.isRequired,\n style: PropTypes.object.isRequired,\n easing: PropTypes.oneOfType([PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']), PropTypes.func]),\n // transition css properties(dash case), optional\n properties: PropTypes.arrayOf('string'),\n onAnimationEnd: PropTypes.func\n })),\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n isActive: PropTypes.bool,\n canBegin: PropTypes.bool,\n onAnimationEnd: PropTypes.func,\n // decide if it should reanimate with initial from style when props change\n shouldReAnimate: PropTypes.bool,\n onAnimationStart: PropTypes.func,\n onAnimationReStart: PropTypes.func\n};\nexport default Animate;","var _excluded = [\"children\", \"appearOptions\", \"enterOptions\", \"leaveOptions\"];\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React, { Component, Children } from 'react';\nimport { Transition } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport Animate from './Animate';\nif (Number.isFinite === undefined) {\n Number.isFinite = function (value) {\n return typeof value === 'number' && isFinite(value);\n };\n}\nvar parseDurationOfSingleTransition = function parseDurationOfSingleTransition() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var steps = options.steps,\n duration = options.duration;\n if (steps && steps.length) {\n return steps.reduce(function (result, entry) {\n return result + (Number.isFinite(entry.duration) && entry.duration > 0 ? entry.duration : 0);\n }, 0);\n }\n if (Number.isFinite(duration)) {\n return duration;\n }\n return 0;\n};\nvar AnimateGroupChild = /*#__PURE__*/function (_Component) {\n _inherits(AnimateGroupChild, _Component);\n var _super = _createSuper(AnimateGroupChild);\n function AnimateGroupChild() {\n var _this;\n _classCallCheck(this, AnimateGroupChild);\n _this = _super.call(this);\n _defineProperty(_assertThisInitialized(_this), \"handleEnter\", function (node, isAppearing) {\n var _this$props = _this.props,\n appearOptions = _this$props.appearOptions,\n enterOptions = _this$props.enterOptions;\n _this.handleStyleActive(isAppearing ? appearOptions : enterOptions);\n });\n _defineProperty(_assertThisInitialized(_this), \"handleExit\", function () {\n var leaveOptions = _this.props.leaveOptions;\n _this.handleStyleActive(leaveOptions);\n });\n _this.state = {\n isActive: false\n };\n return _this;\n }\n _createClass(AnimateGroupChild, [{\n key: \"handleStyleActive\",\n value: function handleStyleActive(style) {\n if (style) {\n var onAnimationEnd = style.onAnimationEnd ? function () {\n style.onAnimationEnd();\n } : null;\n this.setState(_objectSpread(_objectSpread({}, style), {}, {\n onAnimationEnd: onAnimationEnd,\n isActive: true\n }));\n }\n }\n }, {\n key: \"parseTimeout\",\n value: function parseTimeout() {\n var _this$props2 = this.props,\n appearOptions = _this$props2.appearOptions,\n enterOptions = _this$props2.enterOptions,\n leaveOptions = _this$props2.leaveOptions;\n return parseDurationOfSingleTransition(appearOptions) + parseDurationOfSingleTransition(enterOptions) + parseDurationOfSingleTransition(leaveOptions);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props3 = this.props,\n children = _this$props3.children,\n appearOptions = _this$props3.appearOptions,\n enterOptions = _this$props3.enterOptions,\n leaveOptions = _this$props3.leaveOptions,\n props = _objectWithoutProperties(_this$props3, _excluded);\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.handleEnter,\n onExit: this.handleExit,\n timeout: this.parseTimeout()\n }), function () {\n return /*#__PURE__*/React.createElement(Animate, _this2.state, Children.only(children));\n });\n }\n }]);\n return AnimateGroupChild;\n}(Component);\nAnimateGroupChild.propTypes = {\n appearOptions: PropTypes.object,\n enterOptions: PropTypes.object,\n leaveOptions: PropTypes.object,\n children: PropTypes.element\n};\nexport default AnimateGroupChild;","import React, { Children } from 'react';\nimport { TransitionGroup } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport AnimateGroupChild from './AnimateGroupChild';\nfunction AnimateGroup(props) {\n var component = props.component,\n children = props.children,\n appear = props.appear,\n enter = props.enter,\n leave = props.leave;\n return /*#__PURE__*/React.createElement(TransitionGroup, {\n component: component\n }, Children.map(children, function (child, index) {\n return /*#__PURE__*/React.createElement(AnimateGroupChild, {\n appearOptions: appear,\n enterOptions: enter,\n leaveOptions: leave,\n key: \"child-\".concat(index) // eslint-disable-line\n }, child);\n }));\n}\nAnimateGroup.propTypes = {\n appear: PropTypes.object,\n enter: PropTypes.object,\n leave: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.array, PropTypes.element]),\n component: PropTypes.any\n};\nAnimateGroup.defaultProps = {\n component: 'span'\n};\nexport default AnimateGroup;","import Animate from './Animate';\nimport { configBezier, configSpring } from './easing';\nimport { translateStyle } from './util';\nimport AnimateGroup from './AnimateGroup';\nexport { configSpring, configBezier, AnimateGroup, translateStyle };\nexport default Animate;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _addClass = _interopRequireDefault(require(\"dom-helpers/class/addClass\"));\n\nvar _removeClass = _interopRequireDefault(require(\"dom-helpers/class/removeClass\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _addClass.default)(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _removeClass.default)(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](http://www.nganimate.org/) library, you should use it if you're\n * using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n *
\n * {\"I'll receive my-node-* classes\"}\n *
\n *
\n * \n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity: 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**.\n */\n\n\nvar CSSTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.onEnter = function (node, appearing) {\n var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'),\n className = _this$getClassNames.className;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, className);\n\n if (_this.props.onEnter) {\n _this.props.onEnter(node, appearing);\n }\n };\n\n _this.onEntering = function (node, appearing) {\n var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'),\n activeClassName = _this$getClassNames2.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onEntering) {\n _this.props.onEntering(node, appearing);\n }\n };\n\n _this.onEntered = function (node, appearing) {\n var appearClassName = _this.getClassNames('appear').doneClassName;\n\n var enterClassName = _this.getClassNames('enter').doneClassName;\n\n var doneClassName = appearing ? appearClassName + \" \" + enterClassName : enterClassName;\n\n _this.removeClasses(node, appearing ? 'appear' : 'enter');\n\n addClass(node, doneClassName);\n\n if (_this.props.onEntered) {\n _this.props.onEntered(node, appearing);\n }\n };\n\n _this.onExit = function (node) {\n var _this$getClassNames3 = _this.getClassNames('exit'),\n className = _this$getClassNames3.className;\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n addClass(node, className);\n\n if (_this.props.onExit) {\n _this.props.onExit(node);\n }\n };\n\n _this.onExiting = function (node) {\n var _this$getClassNames4 = _this.getClassNames('exit'),\n activeClassName = _this$getClassNames4.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onExiting) {\n _this.props.onExiting(node);\n }\n };\n\n _this.onExited = function (node) {\n var _this$getClassNames5 = _this.getClassNames('exit'),\n doneClassName = _this$getClassNames5.doneClassName;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, doneClassName);\n\n if (_this.props.onExited) {\n _this.props.onExited(node);\n }\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + '-' : '';\n var className = isStringClassNames ? prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? className + '-active' : classNames[type + 'Active'];\n var doneClassName = isStringClassNames ? className + '-done' : classNames[type + 'Done'];\n return {\n className: className,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$getClassNames6 = this.getClassNames(type),\n className = _this$getClassNames6.className,\n activeClassName = _this$getClassNames6.activeClassName,\n doneClassName = _this$getClassNames6.doneClassName;\n\n className && removeClass(node, className);\n activeClassName && removeClass(node, activeClassName);\n doneClassName && removeClass(node, doneClassName);\n };\n\n _proto.reflowAndAddClass = function reflowAndAddClass(node, className) {\n // This is for to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n if (className) {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n /* eslint-enable no-unused-expressions */\n\n addClass(node, className);\n }\n };\n\n _proto.render = function render() {\n var props = _extends({}, this.props);\n\n delete props.classNames;\n return _react.default.createElement(_Transition.default, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(_react.default.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, _Transition.default.propTypes, {\n /**\n * The animation classNames applied to the component as it enters, exits or\n * has finished the transition. A single name can be provided and it will be\n * suffixed for each stage: e.g.\n *\n * `classNames=\"fade\"` applies `fade-enter`, `fade-enter-active`,\n * `fade-enter-done`, `fade-exit`, `fade-exit-active`, `fade-exit-done`,\n * `fade-appear`, `fade-appear-active`, and `fade-appear-done`.\n *\n * **Note**: `fade-appear-done` and `fade-enter-done` will _both_ be applied.\n * This allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply an\n * epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: _PropTypes.classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nvar _default = CSSTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = require(\"react-dom\");\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\n/**\n * The `` component is a specialized `Transition` component\n * that animates between two children.\n *\n * ```jsx\n * \n *
I appear first
\n *
I replace the above
\n *
\n * ```\n */\nvar ReplaceTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ReplaceTransition, _React$Component);\n\n function ReplaceTransition() {\n var _this;\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;\n\n _this.handleEnter = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _this.handleLifecycle('onEnter', 0, args);\n };\n\n _this.handleEntering = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return _this.handleLifecycle('onEntering', 0, args);\n };\n\n _this.handleEntered = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return _this.handleLifecycle('onEntered', 0, args);\n };\n\n _this.handleExit = function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return _this.handleLifecycle('onExit', 1, args);\n };\n\n _this.handleExiting = function () {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return _this.handleLifecycle('onExiting', 1, args);\n };\n\n _this.handleExited = function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n return _this.handleLifecycle('onExited', 1, args);\n };\n\n return _this;\n }\n\n var _proto = ReplaceTransition.prototype;\n\n _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) {\n var _child$props;\n\n var children = this.props.children;\n\n var child = _react.default.Children.toArray(children)[idx];\n\n if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);\n if (this.props[handler]) this.props[handler]((0, _reactDom.findDOMNode)(this));\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n inProp = _this$props.in,\n props = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\"]);\n\n var _React$Children$toArr = _react.default.Children.toArray(children),\n first = _React$Children$toArr[0],\n second = _React$Children$toArr[1];\n\n delete props.onEnter;\n delete props.onEntering;\n delete props.onEntered;\n delete props.onExit;\n delete props.onExiting;\n delete props.onExited;\n return _react.default.createElement(_TransitionGroup.default, props, inProp ? _react.default.cloneElement(first, {\n key: 'first',\n onEnter: this.handleEnter,\n onEntering: this.handleEntering,\n onEntered: this.handleEntered\n }) : _react.default.cloneElement(second, {\n key: 'second',\n onEnter: this.handleExit,\n onEntering: this.handleExiting,\n onEntered: this.handleExited\n }));\n };\n\n return ReplaceTransition;\n}(_react.default.Component);\n\nReplaceTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n in: _propTypes.default.bool.isRequired,\n children: function children(props, propName) {\n if (_react.default.Children.count(props[propName]) !== 2) return new Error(\"\\\"\" + propName + \"\\\" must be exactly two transition components.\");\n return null;\n }\n} : {};\nvar _default = ReplaceTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 0 },\n * entered: { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nexports.EXITING = EXITING;\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n var _proto = Transition.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: null // allows for nested Transitions\n\n };\n };\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n var node = _reactDom.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n\n var child = _react.default.Children.only(children);\n\n return _react.default.cloneElement(child, childProps);\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`, `'unmounted'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the `` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = _PropTypes.timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _ChildMapping = require(\"./utils/ChildMapping\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n /**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\n};\n\nvar TransitionGroup =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: {\n isMounting: !this.appeared\n }\n };\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n this.mounted = true;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n };\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return children;\n }\n\n return _react.default.createElement(Component, props, children);\n };\n\n return TransitionGroup;\n}(_react.default.Component);\n\nTransitionGroup.childContextTypes = {\n transitionGroup: _propTypes.default.object.isRequired\n};\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: _propTypes.default.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: _propTypes.default.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: _propTypes.default.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: _propTypes.default.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _CSSTransition = _interopRequireDefault(require(\"./CSSTransition\"));\n\nvar _ReplaceTransition = _interopRequireDefault(require(\"./ReplaceTransition\"));\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = {\n Transition: _Transition.default,\n TransitionGroup: _TransitionGroup.default,\n ReplaceTransition: _ReplaceTransition.default,\n CSSTransition: _CSSTransition.default\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.getChildMapping = getChildMapping;\nexports.mergeChildMappings = mergeChildMappings;\nexports.getInitialChildMapping = getInitialChildMapping;\nexports.getNextChildMapping = getNextChildMapping;\n\nvar _react = require(\"react\");\n\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\nfunction getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) _react.Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\n\nfunction mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nfunction getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\n\nfunction getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!(0, _react.isValidElement)(child)) return;\n var hasPrev = key in prevChildMapping;\n var hasNext = key in nextChildMapping;\n var prevChild = prevChildMapping[key];\n var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = (0, _react.cloneElement)(child, {\n in: false\n });\n } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.classNamesShape = exports.timeoutsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar timeoutsShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n enter: _propTypes.default.number,\n exit: _propTypes.default.number,\n appear: _propTypes.default.number\n}).isRequired]) : null;\nexports.timeoutsShape = timeoutsShape;\nvar classNamesShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({\n enter: _propTypes.default.string,\n exit: _propTypes.default.string,\n active: _propTypes.default.string\n}), _propTypes.default.shape({\n enter: _propTypes.default.string,\n enterDone: _propTypes.default.string,\n enterActive: _propTypes.default.string,\n exit: _propTypes.default.string,\n exitDone: _propTypes.default.string,\n exitActive: _propTypes.default.string\n})]) : null;\nexports.classNamesShape = classNamesShape;","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\"];\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(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\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, numbe, 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}","var _excluded = [\"value\", \"background\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Render a group of bar\n */\nimport React, { PureComponent } from 'react';\nimport 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 } from '../util/BarUtils';\nexport var Bar = /*#__PURE__*/function (_PureComponent) {\n _inherits(Bar, _PureComponent);\n var _super = _createSuper(Bar);\n function Bar() {\n var _this;\n _classCallCheck(this, Bar);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isAnimationFinished: false\n });\n _defineProperty(_assertThisInitialized(_this), \"id\", uniqueId('recharts-bar-'));\n _defineProperty(_assertThisInitialized(_this), \"handleAnimationEnd\", function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n _this.setState({\n isAnimationFinished: true\n });\n if (onAnimationEnd) {\n onAnimationEnd();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleAnimationStart\", function () {\n var onAnimationStart = _this.props.onAnimationStart;\n _this.setState({\n isAnimationFinished: false\n });\n if (onAnimationStart) {\n onAnimationStart();\n }\n });\n return _this;\n }\n _createClass(Bar, [{\n key: \"renderRectanglesStatically\",\n value: function renderRectanglesStatically(data) {\n var _this2 = this;\n var _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);\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);\n return data.map(function (entry, i) {\n var value = entry.value,\n background = entry.background,\n rest = _objectWithoutProperties(entry, _excluded);\n if (!background) {\n return null;\n }\n var props = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, rest), {}, {\n fill: '#eee'\n }, background), backgroundProps), adaptEventsOfChild(_this4.props, entry, i)), {}, {\n onAnimationStart: _this4.handleAnimationStart,\n onAnimationEnd: _this4.handleAnimationEnd,\n dataKey: dataKey,\n index: i,\n key: \"background-bar-\".concat(i),\n className: 'recharts-bar-background-rectangle'\n });\n return /*#__PURE__*/React.createElement(BarRectangle, _extends({\n option: _this4.props.background,\n isActive: i === activeIndex\n }, props));\n });\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar(needClip, clipPathId) {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n var _this$props5 = this.props,\n data = _this$props5.data,\n xAxis = _this$props5.xAxis,\n yAxis = _this$props5.yAxis,\n layout = _this$props5.layout,\n children = _this$props5.children;\n var errorBarItems = findAllByType(children, ErrorBar);\n if (!errorBarItems) {\n return null;\n }\n var offset = layout === 'vertical' ? data[0].height / 2 : data[0].width / 2;\n var dataPointFormatter = function dataPointFormatter(dataPoint, dataKey) {\n /**\n * if the value coming from `getComposedData` is an array then this is a stacked bar chart.\n * arr[1] represents end value of the bar since the data is in the form of [startValue, endValue].\n * */\n var value = Array.isArray(dataPoint.value) ? dataPoint.value[1] : dataPoint.value;\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: value,\n errorVal: getValueByDataKey(dataPoint, dataKey)\n };\n };\n var errorBarProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, errorBarProps, errorBarItems.map(function (item) {\n return /*#__PURE__*/React.cloneElement(item, {\n key: \"error-bar-\".concat(clipPathId, \"-\").concat(item.props.dataKey),\n data: data,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: layout,\n offset: offset,\n dataPointFormatter: dataPointFormatter\n });\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n hide = _this$props6.hide,\n data = _this$props6.data,\n className = _this$props6.className,\n xAxis = _this$props6.xAxis,\n yAxis = _this$props6.yAxis,\n left = _this$props6.left,\n top = _this$props6.top,\n width = _this$props6.width,\n height = _this$props6.height,\n isAnimationActive = _this$props6.isAnimationActive,\n background = _this$props6.background,\n id = _this$props6.id;\n if (hide || !data || !data.length) {\n return null;\n }\n var isAnimationFinished = this.state.isAnimationFinished;\n var layerClass = clsx('recharts-bar', className);\n var needClipX = xAxis && xAxis.allowDataOverflow;\n var needClipY = yAxis && yAxis.allowDataOverflow;\n var needClip = needClipX || needClipY;\n var clipPathId = isNil(id) ? this.id : id;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClipX || needClipY ? /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: needClipX ? left : left - width / 2,\n y: needClipY ? top : top - height / 2,\n width: needClipX ? width : width * 2,\n height: needClipY ? height : height * 2\n }))) : null, /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-bar-rectangles\",\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n }, background ? this.renderBackground() : null, this.renderRectangles()), this.renderErrorBar(needClip, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, data));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curData: nextProps.data,\n prevData: prevState.curData\n };\n }\n if (nextProps.data !== prevState.curData) {\n return {\n curData: nextProps.data\n };\n }\n return null;\n }\n }]);\n return Bar;\n}(PureComponent);\n_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: true,\n isAnimationActive: !Global.isSsr,\n animationBegin: 0,\n animationDuration: 400,\n animationEasing: 'ease'\n});\n/**\n * Compose the data of each group\n * @param {Object} props Props for the component\n * @param {Object} item An instance of Bar\n * @param {Array} barPosition The offset and size of each bar\n * @param {Object} xAxis The configuration of x-axis\n * @param {Object} yAxis The configuration of y-axis\n * @param {Array} stackedData The stacked data of a bar item\n * @return{Array} Composed data\n */\n_defineProperty(Bar, \"getComposedData\", function (_ref2) {\n var props = _ref2.props,\n item = _ref2.item,\n barPosition = _ref2.barPosition,\n bandSize = _ref2.bandSize,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n stackedData = _ref2.stackedData,\n dataStartIndex = _ref2.dataStartIndex,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var pos = findPositionOfBar(barPosition, item);\n if (!pos) {\n return null;\n }\n var layout = props.layout;\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n children = _item$props.children,\n minPointSize = _item$props.minPointSize;\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n var stackedDomain = stackedData ? numericAxis.scale.domain() : null;\n var baseValue = getBaseValueOfBar({\n numericAxis: numericAxis\n });\n var cells = findAllByType(children, Cell);\n var rects = displayedData.map(function (entry, index) {\n var value, x, y, width, height, background;\n if (stackedData) {\n value = truncateByDomain(stackedData[dataStartIndex + index], stackedDomain);\n } else {\n value = getValueByDataKey(entry, dataKey);\n if (!Array.isArray(value)) {\n value = [baseValue, value];\n }\n }\n if (layout === 'horizontal') {\n var _ref4;\n var _ref3 = [yAxis.scale(value[0]), yAxis.scale(value[1])],\n baseValueScale = _ref3[0],\n currentValueScale = _ref3[1];\n x = getCateCoordinateOfBar({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n y = (_ref4 = currentValueScale !== null && currentValueScale !== void 0 ? currentValueScale : baseValueScale) !== null && _ref4 !== void 0 ? _ref4 : undefined;\n width = pos.size;\n var computedHeight = baseValueScale - currentValueScale;\n height = Number.isNaN(computedHeight) ? 0 : computedHeight;\n background = {\n x: x,\n y: yAxis.y,\n width: width,\n height: yAxis.height\n };\n if (Math.abs(minPointSize) > 0 && Math.abs(height) < Math.abs(minPointSize)) {\n var delta = mathSign(height || minPointSize) * (Math.abs(minPointSize) - Math.abs(height));\n y -= delta;\n height += delta;\n }\n } else {\n var _ref5 = [xAxis.scale(value[0]), xAxis.scale(value[1])],\n _baseValueScale = _ref5[0],\n _currentValueScale = _ref5[1];\n x = _baseValueScale;\n y = getCateCoordinateOfBar({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n width = _currentValueScale - _baseValueScale;\n height = pos.size;\n background = {\n x: xAxis.x,\n y: y,\n width: xAxis.width,\n height: height\n };\n if (Math.abs(minPointSize) > 0 && Math.abs(width) < Math.abs(minPointSize)) {\n var _delta = mathSign(width || minPointSize) * (Math.abs(minPointSize) - Math.abs(width));\n width += _delta;\n }\n }\n return _objectSpread(_objectSpread(_objectSpread({}, entry), {}, {\n x: x,\n y: y,\n width: width,\n height: height,\n value: stackedData ? value : value[1],\n payload: entry,\n background: background\n }, cells && cells[index] && cells[index].props), {}, {\n tooltipPayload: [getTooltipItem(item, entry)],\n tooltipPosition: {\n x: x + width / 2,\n y: y + height / 2\n }\n });\n });\n return _objectSpread({\n data: rects,\n layout: layout\n }, offset);\n});","var _excluded = [\"offset\", \"layout\", \"width\", \"dataKey\", \"data\", \"dataPointFormatter\", \"xAxis\", \"yAxis\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/**\n * @fileOverview Render a group of error bar\n */\nimport React from 'react';\nimport { Layer } from '../container/Layer';\nimport { filterProps } from '../util/ReactUtils';\nexport function ErrorBar(props) {\n var offset = props.offset,\n layout = props.layout,\n width = props.width,\n dataKey = props.dataKey,\n data = props.data,\n dataPointFormatter = props.dataPointFormatter,\n xAxis = props.xAxis,\n yAxis = props.yAxis,\n others = _objectWithoutProperties(props, _excluded);\n var svgProps = filterProps(others);\n var errorBars = data.map(function (entry) {\n var _dataPointFormatter = dataPointFormatter(entry, dataKey),\n x = _dataPointFormatter.x,\n y = _dataPointFormatter.y,\n value = _dataPointFormatter.value,\n errorVal = _dataPointFormatter.errorVal;\n if (!errorVal) {\n return null;\n }\n var lineCoordinates = [];\n var lowBound, highBound;\n if (Array.isArray(errorVal)) {\n var _errorVal = _slicedToArray(errorVal, 2);\n lowBound = _errorVal[0];\n highBound = _errorVal[1];\n } else {\n lowBound = highBound = errorVal;\n }\n if (layout === 'vertical') {\n // error bar for horizontal charts, the y is fixed, x is a range value\n var scale = xAxis.scale;\n var yMid = y + offset;\n var yMin = yMid + width;\n var yMax = yMid - width;\n var xMin = scale(value - lowBound);\n var xMax = scale(value + highBound);\n\n // the right line of |--|\n lineCoordinates.push({\n x1: xMax,\n y1: yMin,\n x2: xMax,\n y2: yMax\n });\n // the middle line of |--|\n lineCoordinates.push({\n x1: xMin,\n y1: yMid,\n x2: xMax,\n y2: yMid\n });\n // the left line of |--|\n lineCoordinates.push({\n x1: xMin,\n y1: yMin,\n x2: xMin,\n y2: yMax\n });\n } else if (layout === 'horizontal') {\n // error bar for horizontal charts, the x is fixed, y is a range value\n var _scale = yAxis.scale;\n var xMid = x + offset;\n var _xMin = xMid - width;\n var _xMax = xMid + width;\n var _yMin = _scale(value - lowBound);\n var _yMax = _scale(value + highBound);\n\n // the top line\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMax,\n x2: _xMax,\n y2: _yMax\n });\n // the middle line\n lineCoordinates.push({\n x1: xMid,\n y1: _yMin,\n x2: xMid,\n y2: _yMax\n });\n // the bottom line\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMin,\n x2: _xMax,\n y2: _yMin\n });\n }\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-errorBar\",\n key: \"bar-\".concat(lineCoordinates.map(function (c) {\n return \"\".concat(c.x1, \"-\").concat(c.x2, \"-\").concat(c.y1, \"-\").concat(c.y2);\n }))\n }, svgProps), lineCoordinates.map(function (coordinates) {\n return /*#__PURE__*/React.createElement(\"line\", _extends({}, coordinates, {\n key: \"line-\".concat(coordinates.x1, \"-\").concat(coordinates.x2, \"-\").concat(coordinates.y1, \"-\").concat(coordinates.y2)\n }));\n }));\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-errorBars\"\n }, errorBars);\n}\nErrorBar.defaultProps = {\n stroke: 'black',\n strokeWidth: 1.5,\n width: 5,\n offset: 0,\n layout: 'horizontal'\n};\nErrorBar.displayName = 'ErrorBar';","var _excluded = [\"type\", \"layout\", \"connectNulls\", \"ref\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Line\n */\nimport React, { PureComponent } from 'react';\nimport Animate from 'react-smooth';\nimport 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, isDotProps } from '../util/ReactUtils';\nimport { Global } from '../util/Global';\nimport { getCateCoordinateOfLine, getValueByDataKey } from '../util/ChartUtils';\nexport var Line = /*#__PURE__*/function (_PureComponent) {\n _inherits(Line, _PureComponent);\n var _super = _createSuper(Line);\n function Line() {\n var _this;\n _classCallCheck(this, Line);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isAnimationFinished: true,\n totalLength: 0\n });\n _defineProperty(_assertThisInitialized(_this), \"generateSimpleStrokeDasharray\", function (totalLength, length) {\n return \"\".concat(length, \"px \").concat(totalLength - length, \"px\");\n });\n _defineProperty(_assertThisInitialized(_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(_assertThisInitialized(_this), \"id\", uniqueId('recharts-line-'));\n _defineProperty(_assertThisInitialized(_this), \"pathRef\", function (node) {\n _this.mainCurve = node;\n });\n _defineProperty(_assertThisInitialized(_this), \"handleAnimationEnd\", function () {\n _this.setState({\n isAnimationFinished: true\n });\n if (_this.props.onAnimationEnd) {\n _this.props.onAnimationEnd();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleAnimationStart\", function () {\n _this.setState({\n isAnimationFinished: false\n });\n if (_this.props.onAnimationStart) {\n _this.props.onAnimationStart();\n }\n });\n return _this;\n }\n _createClass(Line, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!this.props.isAnimationActive) {\n return;\n }\n var totalLength = this.getTotalLength();\n this.setState({\n totalLength: totalLength\n });\n }\n }, {\n key: \"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);\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)) !== null && _filterProps !== void 0 ? _filterProps : {\n r: 3,\n strokeWidth: 2\n },\n _ref2$r = _ref2.r,\n r = _ref2$r === void 0 ? 3 : _ref2$r,\n _ref2$strokeWidth = _ref2.strokeWidth,\n strokeWidth = _ref2$strokeWidth === void 0 ? 2 : _ref2$strokeWidth;\n var _ref3 = isDotProps(dot) ? dot : {},\n _ref3$clipDot = _ref3.clipDot,\n clipDot = _ref3$clipDot === void 0 ? true : _ref3$clipDot;\n var dotSize = r * 2 + strokeWidth;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClipX || needClipY ? /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: needClipX ? left : left - width / 2,\n y: needClipY ? top : top - height / 2,\n width: needClipX ? width : width * 2,\n height: needClipY ? height : height * 2\n })), !clipDot && /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-dots-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left - dotSize / 2,\n y: top - dotSize / 2,\n width: width + dotSize,\n height: height + dotSize\n }))) : null, !hasSinglePoint && this.renderCurve(needClip, clipPathId), this.renderErrorBar(needClip, clipPathId), (hasSinglePoint || dot) && this.renderDots(needClip, clipDot, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, points));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curPoints: nextProps.points,\n prevPoints: prevState.curPoints\n };\n }\n if (nextProps.points !== prevState.curPoints) {\n return {\n curPoints: nextProps.points\n };\n }\n return null;\n }\n }, {\n key: \"repeat\",\n value: function repeat(lines, count) {\n var linesUnit = lines.length % 2 !== 0 ? [].concat(_toConsumableArray(lines), [0]) : lines;\n var result = [];\n for (var i = 0; i < count; ++i) {\n result = [].concat(_toConsumableArray(result), _toConsumableArray(linesUnit));\n }\n return result;\n }\n }, {\n key: \"renderDotItem\",\n value: function renderDotItem(option, props) {\n var dotItem;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n dotItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n dotItem = option(props);\n } else {\n var className = clsx('recharts-line-dot', option ? option.className : '');\n dotItem = /*#__PURE__*/React.createElement(Dot, _extends({}, props, {\n className: className\n }));\n }\n return dotItem;\n }\n }]);\n return Line;\n}(PureComponent);\n_defineProperty(Line, \"displayName\", 'Line');\n_defineProperty(Line, \"defaultProps\", {\n xAxisId: 0,\n yAxisId: 0,\n connectNulls: false,\n activeDot: true,\n dot: true,\n legendType: 'line',\n stroke: '#3182bd',\n strokeWidth: 1,\n fill: '#fff',\n points: [],\n isAnimationActive: !Global.isSsr,\n animateNewValues: true,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease',\n hide: false,\n label: false\n});\n/**\n * Compose the data of each group\n * @param {Object} props The props from the component\n * @param {Object} xAxis The configuration of x-axis\n * @param {Object} yAxis The configuration of y-axis\n * @param {String} dataKey The unique key of a group\n * @return {Array} Composed data\n */\n_defineProperty(Line, \"getComposedData\", function (_ref4) {\n var props = _ref4.props,\n xAxis = _ref4.xAxis,\n yAxis = _ref4.yAxis,\n xAxisTicks = _ref4.xAxisTicks,\n yAxisTicks = _ref4.yAxisTicks,\n dataKey = _ref4.dataKey,\n bandSize = _ref4.bandSize,\n displayedData = _ref4.displayedData,\n offset = _ref4.offset;\n var layout = props.layout;\n var points = displayedData.map(function (entry, index) {\n var value = getValueByDataKey(entry, dataKey);\n if (layout === 'horizontal') {\n return {\n x: getCateCoordinateOfLine({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n y: isNil(value) ? null : yAxis.scale(value),\n value: value,\n payload: entry\n };\n }\n return {\n x: isNil(value) ? null : xAxis.scale(value),\n y: getCateCoordinateOfLine({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n value: value,\n payload: entry\n };\n });\n return _objectSpread({\n points: points,\n layout: layout\n }, offset);\n});","/**\n * @fileOverview X Axis\n */\n\n/** Define of XAxis props */\n\nexport var XAxis = function XAxis() {\n return null;\n};\nXAxis.displayName = 'XAxis';\nXAxis.defaultProps = {\n allowDecimals: true,\n hide: false,\n orientation: 'bottom',\n width: 0,\n height: 30,\n mirror: false,\n xAxisId: 0,\n tickCount: 5,\n type: 'category',\n padding: {\n left: 0,\n right: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false,\n allowDuplicatedCategory: true\n};","/**\n * @fileOverview Y Axis\n */\n\nexport var YAxis = function YAxis() {\n return null;\n};\nYAxis.displayName = 'YAxis';\nYAxis.defaultProps = {\n allowDuplicatedCategory: true,\n allowDecimals: true,\n hide: false,\n orientation: 'left',\n width: 60,\n height: 0,\n mirror: false,\n yAxisId: 0,\n tickCount: 5,\n type: 'number',\n padding: {\n top: 0,\n bottom: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false\n};","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}","/**\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(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport 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}","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(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/**\n * @fileOverview Cross\n */\nimport React from 'react';\nimport 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};","var _excluded = [\"viewBox\"],\n _excluded2 = [\"viewBox\"],\n _excluded3 = [\"ticks\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Cartesian Axis\n */\nimport React, { Component } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport get from 'lodash/get';\nimport clsx from 'clsx';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { Label } from '../component/Label';\nimport { isNumber } from '../util/DataUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nimport { getTicks } from './getTicks';\n\n/** The orientation of the axis in correspondence to the chart */\n\n/** A unit to be appended to a value */\n\n/** The formatter function of tick */\n\nexport var CartesianAxis = /*#__PURE__*/function (_Component) {\n _inherits(CartesianAxis, _Component);\n var _super = _createSuper(CartesianAxis);\n function CartesianAxis(props) {\n var _this;\n _classCallCheck(this, CartesianAxis);\n _this = _super.call(this, props);\n _this.state = {\n fontSize: '',\n letterSpacing: ''\n };\n return _this;\n }\n _createClass(CartesianAxis, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(_ref, nextState) {\n var viewBox = _ref.viewBox,\n restProps = _objectWithoutProperties(_ref, _excluded);\n // props.viewBox is sometimes generated every time -\n // check that specially as object equality is likely to fail\n var _this$props = this.props,\n viewBoxOld = _this$props.viewBox,\n restPropsOld = _objectWithoutProperties(_this$props, _excluded2);\n return !shallowEqual(viewBox, viewBoxOld) || !shallowEqual(restProps, restPropsOld) || !shallowEqual(nextState, this.state);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var htmlLayer = this.layerReference;\n if (!htmlLayer) return;\n var tick = htmlLayer.getElementsByClassName('recharts-cartesian-axis-tick-value')[0];\n if (tick) {\n this.setState({\n fontSize: window.getComputedStyle(tick).fontSize,\n letterSpacing: window.getComputedStyle(tick).letterSpacing\n });\n }\n }\n\n /**\n * Calculate the coordinates of endpoints in ticks\n * @param {Object} data The data of a simple tick\n * @return {Object} (x1, y1): The coordinate of endpoint close to tick text\n * (x2, y2): The coordinate of endpoint close to axis\n */\n }, {\n key: \"getTickLineCoord\",\n value: function getTickLineCoord(data) {\n var _this$props2 = this.props,\n x = _this$props2.x,\n y = _this$props2.y,\n width = _this$props2.width,\n height = _this$props2.height,\n orientation = _this$props2.orientation,\n tickSize = _this$props2.tickSize,\n mirror = _this$props2.mirror,\n tickMargin = _this$props2.tickMargin;\n var x1, x2, y1, y2, tx, ty;\n var sign = mirror ? -1 : 1;\n var finalTickSize = data.tickSize || tickSize;\n var tickCoord = isNumber(data.tickCoord) ? data.tickCoord : data.coordinate;\n switch (orientation) {\n case 'top':\n x1 = x2 = data.coordinate;\n y2 = y + +!mirror * height;\n y1 = y2 - sign * finalTickSize;\n ty = y1 - sign * tickMargin;\n tx = tickCoord;\n break;\n case 'left':\n y1 = y2 = data.coordinate;\n x2 = x + +!mirror * width;\n x1 = x2 - sign * finalTickSize;\n tx = x1 - sign * tickMargin;\n ty = tickCoord;\n break;\n case 'right':\n y1 = y2 = data.coordinate;\n x2 = x + +mirror * width;\n x1 = x2 + sign * finalTickSize;\n tx = x1 + sign * tickMargin;\n ty = tickCoord;\n break;\n default:\n x1 = x2 = data.coordinate;\n y2 = y + +mirror * height;\n y1 = y2 + sign * finalTickSize;\n ty = y1 + sign * tickMargin;\n tx = tickCoord;\n break;\n }\n return {\n line: {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n },\n tick: {\n x: tx,\n y: ty\n }\n };\n }\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor() {\n var _this$props3 = this.props,\n orientation = _this$props3.orientation,\n mirror = _this$props3.mirror;\n var textAnchor;\n switch (orientation) {\n case 'left':\n textAnchor = mirror ? 'start' : 'end';\n break;\n case 'right':\n textAnchor = mirror ? 'end' : 'start';\n break;\n default:\n textAnchor = 'middle';\n break;\n }\n return textAnchor;\n }\n }, {\n key: \"getTickVerticalAnchor\",\n value: function getTickVerticalAnchor() {\n var _this$props4 = this.props,\n orientation = _this$props4.orientation,\n mirror = _this$props4.mirror;\n var verticalAnchor = 'end';\n switch (orientation) {\n case 'left':\n case 'right':\n verticalAnchor = 'middle';\n break;\n case 'top':\n verticalAnchor = mirror ? 'start' : 'end';\n break;\n default:\n verticalAnchor = mirror ? 'end' : 'start';\n break;\n }\n return verticalAnchor;\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props5 = this.props,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height,\n orientation = _this$props5.orientation,\n mirror = _this$props5.mirror,\n axisLine = _this$props5.axisLine;\n var props = _objectSpread(_objectSpread(_objectSpread({}, filterProps(this.props)), filterProps(axisLine)), {}, {\n fill: 'none'\n });\n if (orientation === 'top' || orientation === 'bottom') {\n var needHeight = +(orientation === 'top' && !mirror || orientation === 'bottom' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x,\n y1: y + needHeight * height,\n x2: x + width,\n y2: y + needHeight * height\n });\n } else {\n var needWidth = +(orientation === 'left' && !mirror || orientation === 'right' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x + needWidth * width,\n y1: y,\n x2: x + needWidth * width,\n y2: y + height\n });\n }\n return /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: 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);\n var customTickProps = filterProps(tick);\n var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {\n fill: 'none'\n }, filterProps(tickLine));\n var items = finalTicks.map(function (entry, i) {\n var _this2$getTickLineCoo = _this2.getTickLineCoord(entry),\n lineCoord = _this2$getTickLineCoo.line,\n tickCoord = _this2$getTickLineCoo.tick;\n var tickProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n textAnchor: textAnchor,\n verticalAnchor: verticalAnchor\n }, axisProps), {}, {\n stroke: 'none',\n fill: stroke\n }, customTickProps), tickCoord), {}, {\n index: i,\n payload: entry,\n visibleTicksCount: finalTicks.length,\n tickFormatter: tickFormatter\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-cartesian-axis-tick\",\n key: \"tick-\".concat(entry.value, \"-\").concat(entry.coordinate, \"-\").concat(entry.tickCoord)\n }, adaptEventsOfChild(_this2.props, entry, i)), tickLine && /*#__PURE__*/React.createElement(\"line\", _extends({}, tickLineProps, lineCoord, {\n className: clsx('recharts-cartesian-axis-tick-line', get(tickLine, 'className'))\n })), tick && CartesianAxis.renderTickItem(tick, tickProps, \"\".concat(isFunction(tickFormatter) ? tickFormatter(entry.value, i) : entry.value).concat(unit || '')));\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n var _this$props7 = this.props,\n axisLine = _this$props7.axisLine,\n width = _this$props7.width,\n height = _this$props7.height,\n ticksGenerator = _this$props7.ticksGenerator,\n className = _this$props7.className,\n hide = _this$props7.hide;\n if (hide) {\n return null;\n }\n var _this$props8 = this.props,\n ticks = _this$props8.ticks,\n noTicksProps = _objectWithoutProperties(_this$props8, _excluded3);\n var finalTicks = ticks;\n if (isFunction(ticksGenerator)) {\n finalTicks = ticks && ticks.length > 0 ? ticksGenerator(this.props) : ticksGenerator(noTicksProps);\n }\n if (width <= 0 || height <= 0 || !finalTicks || !finalTicks.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-cartesian-axis', className),\n ref: function ref(_ref2) {\n _this3.layerReference = _ref2;\n }\n }, axisLine && this.renderAxisLine(), this.renderTicks(finalTicks, this.state.fontSize, this.state.letterSpacing), Label.renderCallByParent(this.props));\n }\n }], [{\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n tickItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = /*#__PURE__*/React.createElement(Text, _extends({}, props, {\n className: \"recharts-cartesian-axis-tick-value\"\n }), value);\n }\n return tickItem;\n }\n }]);\n return CartesianAxis;\n}(Component);\n_defineProperty(CartesianAxis, \"displayName\", 'CartesianAxis');\n_defineProperty(CartesianAxis, \"defaultProps\", {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n viewBox: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n // The orientation of axis\n orientation: 'bottom',\n // The ticks\n ticks: [],\n stroke: '#666',\n tickLine: true,\n axisLine: true,\n tick: true,\n mirror: false,\n minTickGap: 5,\n // The width or height of tick\n tickSize: 6,\n tickMargin: 2,\n interval: 'preserveEnd'\n});","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(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (!name) {\n return null;\n }\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var result = PREFIX_LIST.reduce(function (res, entry) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, entry + camelName, value));\n }, {});\n result[name] = value;\n return result;\n};","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 _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Brush\n */\nimport React, { PureComponent, Children } from 'react';\nimport clsx from 'clsx';\nimport { scalePoint } from 'victory-vendor/d3-scale';\nimport isFunction from 'lodash/isFunction';\nimport range from 'lodash/range';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { isNumber } from '../util/DataUtils';\nimport { generatePrefixStyle } from '../util/CssPrefixUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar createScale = function createScale(_ref) {\n var data = _ref.data,\n startIndex = _ref.startIndex,\n endIndex = _ref.endIndex,\n x = _ref.x,\n width = _ref.width,\n travellerWidth = _ref.travellerWidth;\n if (!data || !data.length) {\n return {};\n }\n var len = data.length;\n var scale = scalePoint().domain(range(0, len)).range([x, x + width - travellerWidth]);\n var scaleValues = scale.domain().map(function (entry) {\n return scale(entry);\n });\n return {\n isTextActive: false,\n isSlideMoving: false,\n isTravellerMoving: false,\n isTravellerFocused: false,\n startX: scale(startIndex),\n endX: scale(endIndex),\n scale: scale,\n scaleValues: scaleValues\n };\n};\nvar isTouch = function isTouch(e) {\n return e.changedTouches && !!e.changedTouches.length;\n};\nexport var Brush = /*#__PURE__*/function (_PureComponent) {\n _inherits(Brush, _PureComponent);\n var _super = _createSuper(Brush);\n function Brush(props) {\n var _this;\n _classCallCheck(this, Brush);\n _this = _super.call(this, props);\n _defineProperty(_assertThisInitialized(_this), \"handleDrag\", function (e) {\n if (_this.leaveTimer) {\n clearTimeout(_this.leaveTimer);\n _this.leaveTimer = null;\n }\n if (_this.state.isTravellerMoving) {\n _this.handleTravellerMove(e);\n } else if (_this.state.isSlideMoving) {\n _this.handleSlideDrag(e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleTouchMove\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleDrag(e.changedTouches[0]);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleDragEnd\", function () {\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: false\n }, function () {\n var _this$props = _this.props,\n endIndex = _this$props.endIndex,\n onDragEnd = _this$props.onDragEnd,\n startIndex = _this$props.startIndex;\n onDragEnd === null || onDragEnd === void 0 || onDragEnd({\n endIndex: endIndex,\n startIndex: startIndex\n });\n });\n _this.detachDragEndListener();\n });\n _defineProperty(_assertThisInitialized(_this), \"handleLeaveWrapper\", function () {\n if (_this.state.isTravellerMoving || _this.state.isSlideMoving) {\n _this.leaveTimer = window.setTimeout(_this.handleDragEnd, _this.props.leaveTimeOut);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleEnterSlideOrTraveller\", function () {\n _this.setState({\n isTextActive: true\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"handleLeaveSlideOrTraveller\", function () {\n _this.setState({\n isTextActive: false\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"handleSlideDragStart\", function (e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: true,\n slideMoveStartX: event.pageX\n });\n _this.attachDragEndListener();\n });\n _this.travellerDragStartHandlers = {\n startX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'startX'),\n endX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'endX')\n };\n _this.state = {};\n return _this;\n }\n _createClass(Brush, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.leaveTimer) {\n clearTimeout(this.leaveTimer);\n this.leaveTimer = null;\n }\n this.detachDragEndListener();\n }\n }, {\n key: \"getIndex\",\n value: function getIndex(_ref2) {\n var startX = _ref2.startX,\n endX = _ref2.endX;\n var scaleValues = this.state.scaleValues;\n var _this$props2 = this.props,\n gap = _this$props2.gap,\n data = _this$props2.data;\n var lastIndex = data.length - 1;\n var min = Math.min(startX, endX);\n var max = Math.max(startX, endX);\n var minIndex = Brush.getIndexInRange(scaleValues, min);\n var maxIndex = Brush.getIndexInRange(scaleValues, max);\n return {\n startIndex: minIndex - minIndex % gap,\n endIndex: maxIndex === lastIndex ? lastIndex : maxIndex - maxIndex % gap\n };\n }\n }, {\n key: \"getTextOfTick\",\n value: function getTextOfTick(index) {\n var _this$props3 = this.props,\n data = _this$props3.data,\n tickFormatter = _this$props3.tickFormatter,\n dataKey = _this$props3.dataKey;\n var text = getValueByDataKey(data[index], dataKey, index);\n return isFunction(tickFormatter) ? tickFormatter(text, index) : text;\n }\n }, {\n key: \"attachDragEndListener\",\n value: function attachDragEndListener() {\n window.addEventListener('mouseup', this.handleDragEnd, true);\n window.addEventListener('touchend', this.handleDragEnd, true);\n window.addEventListener('mousemove', this.handleDrag, true);\n }\n }, {\n key: \"detachDragEndListener\",\n value: function detachDragEndListener() {\n window.removeEventListener('mouseup', this.handleDragEnd, true);\n window.removeEventListener('touchend', this.handleDragEnd, true);\n window.removeEventListener('mousemove', this.handleDrag, true);\n }\n }, {\n key: \"handleSlideDrag\",\n value: function handleSlideDrag(e) {\n var _this$state = this.state,\n slideMoveStartX = _this$state.slideMoveStartX,\n startX = _this$state.startX,\n endX = _this$state.endX;\n var _this$props4 = this.props,\n x = _this$props4.x,\n width = _this$props4.width,\n travellerWidth = _this$props4.travellerWidth,\n startIndex = _this$props4.startIndex,\n endIndex = _this$props4.endIndex,\n onChange = _this$props4.onChange;\n var delta = e.pageX - slideMoveStartX;\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - endX, x + width - travellerWidth - startX);\n } else if (delta < 0) {\n delta = Math.max(delta, x - startX, x - endX);\n }\n var newIndex = this.getIndex({\n startX: startX + delta,\n endX: endX + delta\n });\n if ((newIndex.startIndex !== startIndex || newIndex.endIndex !== endIndex) && onChange) {\n onChange(newIndex);\n }\n this.setState({\n startX: startX + delta,\n endX: endX + delta,\n slideMoveStartX: e.pageX\n });\n }\n }, {\n key: \"handleTravellerDragStart\",\n value: function handleTravellerDragStart(id, e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n this.setState({\n isSlideMoving: false,\n isTravellerMoving: true,\n movingTravellerId: id,\n brushMoveStartX: event.pageX\n });\n this.attachDragEndListener();\n }\n }, {\n key: \"handleTravellerMove\",\n value: function handleTravellerMove(e) {\n var _this$setState;\n var _this$state2 = this.state,\n brushMoveStartX = _this$state2.brushMoveStartX,\n movingTravellerId = _this$state2.movingTravellerId,\n endX = _this$state2.endX,\n startX = _this$state2.startX;\n var prevValue = this.state[movingTravellerId];\n var _this$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((_this$setState = {}, _defineProperty(_this$setState, movingTravellerId, prevValue + delta), _defineProperty(_this$setState, \"brushMoveStartX\", e.pageX), _this$setState), function () {\n if (onChange) {\n if (isFullGap()) {\n onChange(newIndex);\n }\n }\n });\n }\n }, {\n key: \"handleTravellerMoveKeyboard\",\n value: function handleTravellerMoveKeyboard(direction, id) {\n var _this2 = this;\n // scaleValues are a list of coordinates. For example: [65, 250, 435, 620, 805, 990].\n var _this$state3 = this.state,\n scaleValues = _this$state3.scaleValues,\n startX = _this$state3.startX,\n endX = _this$state3.endX;\n // currentScaleValue refers to which coordinate the current traveller should be placed at.\n var currentScaleValue = this.state[id];\n var currentIndex = scaleValues.indexOf(currentScaleValue);\n if (currentIndex === -1) {\n return;\n }\n var newIndex = currentIndex + direction;\n if (newIndex === -1 || newIndex >= scaleValues.length) {\n return;\n }\n var newScaleValue = scaleValues[newIndex];\n\n // Prevent travellers from being on top of each other or overlapping\n if (id === 'startX' && newScaleValue >= endX || id === 'endX' && newScaleValue <= startX) {\n return;\n }\n this.setState(_defineProperty({}, id, newScaleValue), function () {\n _this2.props.onChange(_this2.getIndex({\n startX: _this2.state.startX,\n endX: _this2.state.endX\n }));\n });\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this$props6 = this.props,\n x = _this$props6.x,\n y = _this$props6.y,\n width = _this$props6.width,\n height = _this$props6.height,\n fill = _this$props6.fill,\n stroke = _this$props6.stroke;\n return /*#__PURE__*/React.createElement(\"rect\", {\n stroke: stroke,\n fill: fill,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderPanorama\",\n value: function renderPanorama() {\n var _this$props7 = this.props,\n x = _this$props7.x,\n y = _this$props7.y,\n width = _this$props7.width,\n height = _this$props7.height,\n data = _this$props7.data,\n children = _this$props7.children,\n padding = _this$props7.padding;\n var chartElement = Children.only(children);\n if (!chartElement) {\n return null;\n }\n return /*#__PURE__*/React.cloneElement(chartElement, {\n x: x,\n y: y,\n width: width,\n height: height,\n margin: padding,\n compact: true,\n data: data\n });\n }\n }, {\n key: \"renderTravellerLayer\",\n value: function renderTravellerLayer(travellerX, id) {\n var _this3 = this;\n var _this$props8 = this.props,\n y = _this$props8.y,\n travellerWidth = _this$props8.travellerWidth,\n height = _this$props8.height,\n traveller = _this$props8.traveller,\n ariaLabel = _this$props8.ariaLabel,\n data = _this$props8.data,\n startIndex = _this$props8.startIndex,\n endIndex = _this$props8.endIndex;\n var x = Math.max(travellerX, this.props.x);\n var travellerProps = _objectSpread(_objectSpread({}, filterProps(this.props)), {}, {\n x: x,\n y: y,\n width: travellerWidth,\n height: height\n });\n var ariaLabelBrush = ariaLabel || \"Min value: \".concat(data[startIndex].name, \", Max value: \").concat(data[endIndex].name);\n return /*#__PURE__*/React.createElement(Layer, {\n tabIndex: 0,\n role: \"slider\",\n \"aria-label\": ariaLabelBrush,\n \"aria-valuenow\": travellerX,\n className: \"recharts-brush-traveller\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.travellerDragStartHandlers[id],\n onTouchStart: this.travellerDragStartHandlers[id],\n onKeyDown: function onKeyDown(e) {\n if (!['ArrowLeft', 'ArrowRight'].includes(e.key)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n _this3.handleTravellerMoveKeyboard(e.key === 'ArrowRight' ? 1 : -1, id);\n },\n onFocus: function onFocus() {\n _this3.setState({\n isTravellerFocused: true\n });\n },\n onBlur: function onBlur() {\n _this3.setState({\n isTravellerFocused: false\n });\n },\n style: {\n cursor: 'col-resize'\n }\n }, Brush.renderTraveller(traveller, travellerProps));\n }\n }, {\n key: \"renderSlide\",\n value: function renderSlide(startX, endX) {\n var _this$props9 = this.props,\n y = _this$props9.y,\n height = _this$props9.height,\n stroke = _this$props9.stroke,\n travellerWidth = _this$props9.travellerWidth;\n var x = Math.min(startX, endX) + travellerWidth;\n var width = Math.max(Math.abs(endX - startX) - travellerWidth, 0);\n return /*#__PURE__*/React.createElement(\"rect\", {\n className: \"recharts-brush-slide\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.handleSlideDragStart,\n onTouchStart: this.handleSlideDragStart,\n style: {\n cursor: 'move'\n },\n stroke: \"none\",\n fill: stroke,\n fillOpacity: 0.2,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderText\",\n value: function renderText() {\n var _this$props10 = this.props,\n startIndex = _this$props10.startIndex,\n endIndex = _this$props10.endIndex,\n y = _this$props10.y,\n height = _this$props10.height,\n travellerWidth = _this$props10.travellerWidth,\n stroke = _this$props10.stroke;\n var _this$state4 = this.state,\n startX = _this$state4.startX,\n endX = _this$state4.endX;\n var offset = 5;\n var attrs = {\n pointerEvents: 'none',\n fill: stroke\n };\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-brush-texts\"\n }, /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"end\",\n verticalAnchor: \"middle\",\n x: Math.min(startX, endX) - offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(startIndex)), /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"start\",\n verticalAnchor: \"middle\",\n x: Math.max(startX, endX) + travellerWidth + offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(endIndex)));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props11 = this.props,\n data = _this$props11.data,\n className = _this$props11.className,\n children = _this$props11.children,\n x = _this$props11.x,\n y = _this$props11.y,\n width = _this$props11.width,\n height = _this$props11.height,\n alwaysShowText = _this$props11.alwaysShowText;\n var _this$state5 = this.state,\n startX = _this$state5.startX,\n endX = _this$state5.endX,\n isTextActive = _this$state5.isTextActive,\n isSlideMoving = _this$state5.isSlideMoving,\n isTravellerMoving = _this$state5.isTravellerMoving,\n isTravellerFocused = _this$state5.isTravellerFocused;\n if (!data || !data.length || !isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || width <= 0 || height <= 0) {\n return null;\n }\n var layerClass = clsx('recharts-brush', className);\n var isPanoramic = React.Children.count(children) === 1;\n var style = generatePrefixStyle('userSelect', 'none');\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass,\n onMouseLeave: this.handleLeaveWrapper,\n onTouchMove: this.handleTouchMove,\n style: style\n }, this.renderBackground(), isPanoramic && this.renderPanorama(), this.renderSlide(startX, endX), this.renderTravellerLayer(startX, 'startX'), this.renderTravellerLayer(endX, 'endX'), (isTextActive || isSlideMoving || isTravellerMoving || isTravellerFocused || alwaysShowText) && this.renderText());\n }\n }], [{\n key: \"renderDefaultTraveller\",\n value: function renderDefaultTraveller(props) {\n var x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n stroke = props.stroke;\n var lineY = Math.floor(y + height / 2) - 1;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n fill: stroke,\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY,\n x2: x + width - 1,\n y2: lineY,\n fill: \"none\",\n stroke: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY + 2,\n x2: x + width - 1,\n y2: lineY + 2,\n fill: \"none\",\n stroke: \"#fff\"\n }));\n }\n }, {\n key: \"renderTraveller\",\n value: function renderTraveller(option, props) {\n var rectangle;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rectangle = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n rectangle = option(props);\n } else {\n rectangle = Brush.renderDefaultTraveller(props);\n }\n return rectangle;\n }\n }, {\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var data = nextProps.data,\n width = nextProps.width,\n x = nextProps.x,\n travellerWidth = nextProps.travellerWidth,\n updateId = nextProps.updateId,\n startIndex = nextProps.startIndex,\n endIndex = nextProps.endIndex;\n if (data !== prevState.prevData || updateId !== prevState.prevUpdateId) {\n return _objectSpread({\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width\n }, data && data.length ? createScale({\n data: data,\n width: width,\n x: x,\n travellerWidth: travellerWidth,\n startIndex: startIndex,\n endIndex: endIndex\n }) : {\n scale: null,\n scaleValues: null\n });\n }\n if (prevState.scale && (width !== prevState.prevWidth || x !== prevState.prevX || travellerWidth !== prevState.prevTravellerWidth)) {\n prevState.scale.range([x, x + width - travellerWidth]);\n var scaleValues = prevState.scale.domain().map(function (entry) {\n return prevState.scale(entry);\n });\n return {\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width,\n startX: prevState.scale(nextProps.startIndex),\n endX: prevState.scale(nextProps.endIndex),\n scaleValues: scaleValues\n };\n }\n return null;\n }\n }, {\n key: \"getIndexInRange\",\n value: function getIndexInRange(valueRange, x) {\n var len = valueRange.length;\n var start = 0;\n var end = len - 1;\n while (end - start > 1) {\n var middle = Math.floor((start + end) / 2);\n if (valueRange[middle] > x) {\n end = middle;\n } else {\n start = middle;\n }\n }\n return x >= valueRange[end] ? end : start;\n }\n }]);\n return Brush;\n}(PureComponent);\n_defineProperty(Brush, \"displayName\", 'Brush');\n_defineProperty(Brush, \"defaultProps\", {\n height: 40,\n travellerWidth: 5,\n gap: 1,\n fill: '#fff',\n stroke: '#666',\n padding: {\n top: 1,\n right: 1,\n bottom: 1,\n left: 1\n },\n leaveTimeOut: 1000,\n alwaysShowText: false\n});","export var ifOverflowMatches = function ifOverflowMatches(props, value) {\n var alwaysShow = props.alwaysShow;\n var ifOverflow = props.ifOverflow;\n if (alwaysShow) {\n ifOverflow = 'extendDomain';\n }\n return ifOverflow === value;\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Reference Dot\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Dot } from '../shape/Dot';\nimport { Label } from '../component/Label';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { createLabeledScales } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar getCoordinate = function getCoordinate(props) {\n var x = props.x,\n y = props.y,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var result = scales.apply({\n x: x,\n y: y\n }, {\n bandAware: true\n });\n if (ifOverflowMatches(props, 'discard') && !scales.isInRange(result)) {\n return null;\n }\n return result;\n};\nexport function ReferenceDot(props) {\n var x = props.x,\n y = props.y,\n r = props.r,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n var isX = isNumOrStr(x);\n var isY = isNumOrStr(y);\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n if (!isX || !isY) {\n return null;\n }\n var coordinate = getCoordinate(props);\n if (!coordinate) {\n return null;\n }\n var cx = coordinate.x,\n cy = coordinate.y;\n var shape = props.shape,\n className = props.className;\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n var dotProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), {}, {\n cx: cx,\n cy: cy\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-reference-dot', className)\n }, ReferenceDot.renderDot(shape, dotProps), Label.renderCallByParent(props, {\n x: cx - r,\n y: cy - r,\n width: 2 * r,\n height: 2 * r\n }));\n}\nReferenceDot.displayName = 'ReferenceDot';\nReferenceDot.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#fff',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1\n};\nReferenceDot.renderDot = function (option, props) {\n var dot;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n dot = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, _extends({}, props, {\n cx: props.cx,\n cy: props.cy,\n className: \"recharts-reference-dot-dot\"\n }));\n }\n return dot;\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(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';\nvar renderLine = function renderLine(option, props) {\n var line;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n line = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n line = option(props);\n } else {\n line = /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: \"recharts-reference-line-line\"\n }));\n }\n return line;\n};\n\n// TODO: ScaleHelper\nvar getEndPoints = function getEndPoints(scales, isFixedX, isFixedY, isSegment, props) {\n var _props$viewBox = props.viewBox,\n x = _props$viewBox.x,\n y = _props$viewBox.y,\n width = _props$viewBox.width,\n height = _props$viewBox.height,\n position = props.position;\n if (isFixedY) {\n var yCoord = props.y,\n orientation = props.yAxis.orientation;\n var coord = scales.y.apply(yCoord, {\n position: position\n });\n if (ifOverflowMatches(props, 'discard') && !scales.y.isInRange(coord)) {\n return null;\n }\n var points = [{\n x: x + width,\n y: coord\n }, {\n x: x,\n y: coord\n }];\n return orientation === 'left' ? points.reverse() : points;\n }\n if (isFixedX) {\n var xCoord = props.x,\n _orientation = props.xAxis.orientation;\n var _coord = scales.x.apply(xCoord, {\n position: position\n });\n if (ifOverflowMatches(props, 'discard') && !scales.x.isInRange(_coord)) {\n return null;\n }\n var _points = [{\n x: _coord,\n y: y + height\n }, {\n x: _coord,\n y: y\n }];\n return _orientation === 'top' ? _points.reverse() : _points;\n }\n if (isSegment) {\n var segment = props.segment;\n var _points2 = segment.map(function (p) {\n return scales.apply(p, {\n position: position\n });\n });\n if (ifOverflowMatches(props, 'discard') && some(_points2, function (p) {\n return !scales.isInRange(p);\n })) {\n return null;\n }\n return _points2;\n }\n return null;\n};\nexport function ReferenceLine(props) {\n var fixedX = props.x,\n fixedY = props.y,\n segment = props.segment,\n xAxis = props.xAxis,\n yAxis = props.yAxis,\n shape = props.shape,\n className = props.className,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var isX = isNumOrStr(fixedX);\n var isY = isNumOrStr(fixedY);\n var isSegment = segment && segment.length === 2;\n var endPoints = getEndPoints(scales, isX, isY, isSegment, props);\n if (!endPoints) {\n return null;\n }\n var _endPoints = _slicedToArray(endPoints, 2),\n _endPoints$ = _endPoints[0],\n x1 = _endPoints$.x,\n y1 = _endPoints$.y,\n _endPoints$2 = _endPoints[1],\n x2 = _endPoints$2.x,\n y2 = _endPoints$2.y;\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n var lineProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), {}, {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-reference-line', className)\n }, renderLine(shape, lineProps), Label.renderCallByParent(props, rectWithCoords({\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n })));\n}\nReferenceLine.displayName = 'ReferenceLine';\nReferenceLine.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n fill: 'none',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1,\n position: 'middle'\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Reference Line\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { createLabeledScales, rectWithPoints } from '../util/CartesianUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nimport { Rectangle } from '../shape/Rectangle';\nimport { filterProps } from '../util/ReactUtils';\nvar getRect = function getRect(hasX1, hasX2, hasY1, hasY2, props) {\n var xValue1 = props.x1,\n xValue2 = props.x2,\n yValue1 = props.y1,\n yValue2 = props.y2,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n if (!xAxis || !yAxis) return null;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var p1 = {\n x: hasX1 ? scales.x.apply(xValue1, {\n position: 'start'\n }) : scales.x.rangeMin,\n y: hasY1 ? scales.y.apply(yValue1, {\n position: 'start'\n }) : scales.y.rangeMin\n };\n var p2 = {\n x: hasX2 ? scales.x.apply(xValue2, {\n position: 'end'\n }) : scales.x.rangeMax,\n y: hasY2 ? scales.y.apply(yValue2, {\n position: 'end'\n }) : scales.y.rangeMax\n };\n if (ifOverflowMatches(props, 'discard') && (!scales.isInRange(p1) || !scales.isInRange(p2))) {\n return null;\n }\n return rectWithPoints(p1, p2);\n};\nexport function ReferenceArea(props) {\n var x1 = props.x1,\n x2 = props.x2,\n y1 = props.y1,\n y2 = props.y2,\n className = props.className,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var hasX1 = isNumOrStr(x1);\n var hasX2 = isNumOrStr(x2);\n var hasY1 = isNumOrStr(y1);\n var hasY2 = isNumOrStr(y2);\n var shape = props.shape;\n if (!hasX1 && !hasX2 && !hasY1 && !hasY2 && !shape) {\n return null;\n }\n var rect = getRect(hasX1, hasX2, hasY1, hasY2, props);\n if (!rect && !shape) {\n return null;\n }\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-reference-area', className)\n }, ReferenceArea.renderRect(shape, _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), rect)), Label.renderCallByParent(props, rect));\n}\nReferenceArea.displayName = 'ReferenceArea';\nReferenceArea.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#ccc',\n fillOpacity: 0.5,\n stroke: 'none',\n strokeWidth: 1\n};\nReferenceArea.renderRect = function (option, props) {\n var rect;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rect = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n rect = option(props);\n } else {\n rect = /*#__PURE__*/React.createElement(Rectangle, _extends({}, props, {\n className: \"recharts-reference-area-rect\"\n }));\n }\n return rect;\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { ReferenceDot } from '../cartesian/ReferenceDot';\nimport { ReferenceLine } from '../cartesian/ReferenceLine';\nimport { ReferenceArea } from '../cartesian/ReferenceArea';\nimport { ifOverflowMatches } from './IfOverflowMatches';\nimport { findAllByType } from './ReactUtils';\nimport { isNumber } from './DataUtils';\nexport var detectReferenceElementsDomain = function detectReferenceElementsDomain(children, domain, axisId, axisType, specifiedTicks) {\n var lines = findAllByType(children, ReferenceLine);\n var dots = findAllByType(children, ReferenceDot);\n var elements = [].concat(_toConsumableArray(lines), _toConsumableArray(dots));\n var areas = findAllByType(children, ReferenceArea);\n var idKey = \"\".concat(axisType, \"Id\");\n var valueKey = axisType[0];\n var finalDomain = domain;\n if (elements.length) {\n finalDomain = elements.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[valueKey])) {\n var value = el.props[valueKey];\n return [Math.min(result[0], value), Math.max(result[1], value)];\n }\n return result;\n }, finalDomain);\n }\n if (areas.length) {\n var key1 = \"\".concat(valueKey, \"1\");\n var key2 = \"\".concat(valueKey, \"2\");\n finalDomain = areas.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[key1]) && isNumber(el.props[key2])) {\n var value1 = el.props[key1];\n var value2 = el.props[key2];\n return [Math.min(result[0], value1, value2), Math.max(result[1], value1, value2)];\n }\n return result;\n }, finalDomain);\n }\n if (specifiedTicks && specifiedTicks.length) {\n finalDomain = specifiedTicks.reduce(function (result, tick) {\n if (isNumber(tick)) {\n return [Math.min(result[0], tick), Math.max(result[1], tick)];\n }\n return result;\n }, finalDomain);\n }\n return finalDomain;\n};","import EventEmitter from 'eventemitter3';\nvar eventCenter = new EventEmitter();\nexport { eventCenter };\nexport var SYNC_EVENT = 'recharts.syncMouseEvents';","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nexport var AccessibilityManager = /*#__PURE__*/function () {\n function AccessibilityManager() {\n _classCallCheck(this, AccessibilityManager);\n _defineProperty(this, \"activeIndex\", 0);\n _defineProperty(this, \"coordinateList\", []);\n _defineProperty(this, \"layout\", 'horizontal');\n }\n _createClass(AccessibilityManager, [{\n key: \"setDetails\",\n value: function setDetails(_ref) {\n var _ref$coordinateList = _ref.coordinateList,\n coordinateList = _ref$coordinateList === void 0 ? [] : _ref$coordinateList,\n _ref$container = _ref.container,\n container = _ref$container === void 0 ? null : _ref$container,\n _ref$layout = _ref.layout,\n layout = _ref$layout === void 0 ? null : _ref$layout,\n _ref$offset = _ref.offset,\n offset = _ref$offset === void 0 ? null : _ref$offset,\n _ref$mouseHandlerCall = _ref.mouseHandlerCallback,\n mouseHandlerCallback = _ref$mouseHandlerCall === void 0 ? null : _ref$mouseHandlerCall;\n this.coordinateList = coordinateList !== null && coordinateList !== void 0 ? coordinateList : this.coordinateList;\n this.container = container !== null && container !== void 0 ? container : this.container;\n this.layout = layout !== null && layout !== void 0 ? layout : this.layout;\n this.offset = offset !== null && offset !== void 0 ? offset : this.offset;\n this.mouseHandlerCallback = mouseHandlerCallback !== null && mouseHandlerCallback !== void 0 ? mouseHandlerCallback : this.mouseHandlerCallback;\n\n // Keep activeIndex in the bounds between 0 and the last coordinate index\n this.activeIndex = Math.min(Math.max(this.activeIndex, 0), this.coordinateList.length - 1);\n }\n }, {\n key: \"focus\",\n value: function focus() {\n this.spoofMouse();\n }\n }, {\n key: \"keyboardEvent\",\n value: function keyboardEvent(e) {\n // The AccessibilityManager relies on the Tooltip component. When tooltips suddenly stop existing,\n // it can cause errors. We use this function to check. We don't want arrow keys to be processed\n // if there are no tooltips, since that will cause unexpected behavior of users.\n if (this.coordinateList.length === 0) {\n return;\n }\n switch (e.key) {\n case 'ArrowRight':\n {\n if (this.layout !== 'horizontal') {\n return;\n }\n this.activeIndex = Math.min(this.activeIndex + 1, this.coordinateList.length - 1);\n this.spoofMouse();\n break;\n }\n case 'ArrowLeft':\n {\n if (this.layout !== 'horizontal') {\n return;\n }\n this.activeIndex = Math.max(this.activeIndex - 1, 0);\n this.spoofMouse();\n break;\n }\n default:\n {\n break;\n }\n }\n }\n }, {\n key: \"spoofMouse\",\n value: function spoofMouse() {\n var _window, _window2;\n if (this.layout !== 'horizontal') {\n return;\n }\n\n // This can happen when the tooltips suddenly stop existing as children of the component\n // That update doesn't otherwise fire events, so we have to double check here.\n if (this.coordinateList.length === 0) {\n return;\n }\n var _this$container$getBo = this.container.getBoundingClientRect(),\n x = _this$container$getBo.x,\n y = _this$container$getBo.y,\n height = _this$container$getBo.height;\n var coordinate = this.coordinateList[this.activeIndex].coordinate;\n var scrollOffsetX = ((_window = window) === null || _window === void 0 ? void 0 : _window.scrollX) || 0;\n var scrollOffsetY = ((_window2 = window) === null || _window2 === void 0 ? void 0 : _window2.scrollY) || 0;\n var pageX = x + coordinate + scrollOffsetX;\n var pageY = y + this.offset.top + height / 2 + scrollOffsetY;\n this.mouseHandlerCallback({\n pageX: pageX,\n pageY: pageY\n });\n }\n }]);\n return AccessibilityManager;\n}();","import { 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}","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 _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 _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(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(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React, { Component, cloneElement, isValidElement, createElement } from 'react';\nimport 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 find from 'lodash/find';\nimport every from 'lodash/every';\nimport clsx from 'clsx';\n// eslint-disable-next-line no-restricted-imports\n\nimport invariant from 'tiny-invariant';\nimport { getRadialCursorPoints } from '../util/cursor/getRadialCursorPoints';\nimport { getTicks } from '../cartesian/getTicks';\nimport { Surface } from '../container/Surface';\nimport { Layer } from '../container/Layer';\nimport { Tooltip } from '../component/Tooltip';\nimport { Legend } from '../component/Legend';\nimport { Curve } from '../shape/Curve';\nimport { Cross } from '../shape/Cross';\nimport { Sector } from '../shape/Sector';\nimport { Dot } from '../shape/Dot';\nimport { isInRectangle, Rectangle } from '../shape/Rectangle';\nimport { filterProps, findAllByType, findChildByType, getDisplayName, getReactEventByType, isChildrenEqual, parseChildIndex, renderByOrder, validateWidthHeight } from '../util/ReactUtils';\nimport { CartesianAxis } from '../cartesian/CartesianAxis';\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, getCoordinatesOfGrid, 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 { getCursorPoints } from '../util/cursor/getCursorPoints';\nimport { getCursorRectangle } from '../util/cursor/getCursorRectangle';\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};\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 var hide = child.props.hide;\n if (hide) {\n return result;\n }\n\n /**\n * Fixes: https://github.com/recharts/recharts/issues/3669\n * Defaulting to chartData below to fix an edge case where the tooltip does not include data from all charts\n * when a separate dataset is passed to chart prop data and specified on Line/Area/etc prop data\n */\n var data = (_child$props$data = child.props.data) !== null && _child$props$data !== void 0 ? _child$props$data : chartData;\n if (data && state.dataStartIndex + state.dataEndIndex !== 0) {\n data = data.slice(state.dataStartIndex, state.dataEndIndex + 1);\n }\n var payload;\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // graphic child has data props\n var entries = data === undefined ? displayedData : data;\n payload = findEntryInArray(entries, tooltipAxis.dataKey, activeLabel);\n } else {\n payload = data && data[activeIndex] || displayedData[activeIndex];\n }\n if (!payload) {\n return result;\n }\n return [].concat(_toConsumableArray(result), [getTooltipItem(child, payload)]);\n }, []);\n};\n\n/**\n * Returns tooltip data based on a mouse position (as a parameter or in state)\n * @param {Object} state current state\n * @param {Array} chartData the data defined in chart\n * @param {String} layout The layout type of chart\n * @param {Object} rangeObj { x, y } coordinates\n * @return {Object} Tooltip data data\n */\nvar getTooltipData = function getTooltipData(state, chartData, layout, rangeObj) {\n var rangeData = rangeObj || {\n x: state.chartX,\n y: state.chartY\n };\n var pos = calculateTooltipPos(rangeData, layout);\n var ticks = state.orderedTooltipTicks,\n axis = state.tooltipAxis,\n tooltipTicks = state.tooltipTicks;\n var activeIndex = calculateActiveTickIndex(pos, ticks, tooltipTicks, axis);\n if (activeIndex >= 0 && tooltipTicks) {\n var activeLabel = tooltipTicks[activeIndex] && tooltipTicks[activeIndex].value;\n var activePayload = getTooltipContent(state, chartData, activeIndex, activeLabel);\n var activeCoordinate = getActiveCoordinate(layout, ticks, activeIndex, rangeData);\n return {\n activeTooltipIndex: activeIndex,\n activeLabel: activeLabel,\n activePayload: activePayload,\n activeCoordinate: activeCoordinate\n };\n }\n return null;\n};\n\n/**\n * Get the configuration of axis by the options of axis instance\n * @param {Object} props Latest props\n * @param {Array} axes The instance of axes\n * @param {Array} graphicalItems The instances of item\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\nexport var getAxisMapByAxes = function getAxisMapByAxes(props, _ref2) {\n var axes = _ref2.axes,\n graphicalItems = _ref2.graphicalItems,\n axisType = _ref2.axisType,\n axisIdKey = _ref2.axisIdKey,\n stackGroups = _ref2.stackGroups,\n dataStartIndex = _ref2.dataStartIndex,\n dataEndIndex = _ref2.dataEndIndex;\n var layout = props.layout,\n children = props.children,\n stackOffset = props.stackOffset;\n var isCategorical = isCategoricalAxis(layout, axisType);\n\n // Eliminate duplicated axes\n return axes.reduce(function (result, child) {\n var _child$props$domain2;\n var _child$props = child.props,\n type = _child$props.type,\n dataKey = _child$props.dataKey,\n allowDataOverflow = _child$props.allowDataOverflow,\n allowDuplicatedCategory = _child$props.allowDuplicatedCategory,\n scale = _child$props.scale,\n ticks = _child$props.ticks,\n includeHidden = _child$props.includeHidden;\n var axisId = child.props[axisIdKey];\n if (result[axisId]) {\n return result;\n }\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId;\n }),\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var domain, duplicateDomain, categoricalDomain;\n\n /*\n * This is a hack to short-circuit the domain creation here to enhance performance.\n * Usually, the data is used to determine the domain, but when the user specifies\n * a domain upfront (via props), there is no need to calculate the domain start and end,\n * which is very expensive for a larger amount of data.\n * The only thing that would prohibit short-circuiting is when the user doesn't allow data overflow,\n * because the axis is supposed to ignore the specified domain that way.\n */\n if (isDomainSpecifiedByUser(child.props.domain, allowDataOverflow, type)) {\n domain = parseSpecifiedDomain(child.props.domain, null, allowDataOverflow);\n /* The chart can be categorical and have the domain specified in numbers\n * we still need to calculate the categorical domain\n * TODO: refactor this more\n */\n if (isCategorical && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n }\n\n // if the domain is defaulted we need this for `originalDomain` as well\n var defaultDomain = getDefaultDomainByAxisType(type);\n\n // we didn't create the domain from user's props above, so we need to calculate it\n if (!domain || domain.length === 0) {\n var _child$props$domain;\n var childDomain = (_child$props$domain = child.props.domain) !== null && _child$props$domain !== void 0 ? _child$props$domain : defaultDomain;\n if (dataKey) {\n // has dataKey in \n domain = getDomainOfDataByKey(displayedData, dataKey, type);\n if (type === 'category' && isCategorical) {\n // the field type is category data and this axis is categorical axis\n var duplicate = hasDuplicate(domain);\n if (allowDuplicatedCategory && duplicate) {\n duplicateDomain = domain;\n // When category axis has duplicated text, serial numbers are used to generate scale\n domain = range(0, len);\n } else if (!allowDuplicatedCategory) {\n // remove duplicated category\n domain = parseDomainOfCategoryAxis(childDomain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n }\n } else if (type === 'category') {\n // the field type is category data and this axis is numerical axis\n if (!allowDuplicatedCategory) {\n domain = parseDomainOfCategoryAxis(childDomain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 || entry === '' || isNil(entry) ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n } else {\n // eliminate undefined or null or empty string\n domain = domain.filter(function (entry) {\n return entry !== '' && !isNil(entry);\n });\n }\n } else if (type === 'number') {\n // the field type is numerical\n var errorBarsDomain = parseErrorBarsOfAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && (includeHidden || !item.props.hide);\n }), dataKey, axisType, layout);\n if (errorBarsDomain) {\n domain = errorBarsDomain;\n }\n }\n if (isCategorical && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n } else if (isCategorical) {\n // the axis is a categorical axis\n domain = range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack && type === 'number') {\n // when stackOffset is 'expand', the domain may be calculated as [0, 1.000000000002]\n domain = stackOffset === 'expand' ? [0, 1] : getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n } else {\n domain = getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && (includeHidden || !item.props.hide);\n }), type, layout, true);\n }\n if (type === 'number') {\n // To detect wether there is any reference lines whose props alwaysShow is true\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType, ticks);\n if (childDomain) {\n domain = parseSpecifiedDomain(childDomain, domain, allowDataOverflow);\n }\n } else if (type === 'category' && childDomain) {\n var axisDomain = childDomain;\n var isDomainValid = domain.every(function (entry) {\n return axisDomain.indexOf(entry) >= 0;\n });\n if (isDomainValid) {\n domain = axisDomain;\n }\n }\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({}, child.props), {}, {\n axisType: axisType,\n domain: domain,\n categoricalDomain: categoricalDomain,\n duplicateDomain: duplicateDomain,\n originalDomain: (_child$props$domain2 = child.props.domain) !== null && _child$props$domain2 !== void 0 ? _child$props$domain2 : defaultDomain,\n isCategorical: isCategorical,\n layout: layout\n })));\n }, {});\n};\n\n/**\n * Get the configuration of axis by the options of item,\n * this kind of axis does not display in chart\n * @param {Object} props Latest props\n * @param {Array} graphicalItems The instances of item\n * @param {ReactElement} Axis Axis Component\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\nvar getAxisMapByItems = function getAxisMapByItems(props, _ref3) {\n var graphicalItems = _ref3.graphicalItems,\n Axis = _ref3.Axis,\n axisType = _ref3.axisType,\n axisIdKey = _ref3.axisIdKey,\n stackGroups = _ref3.stackGroups,\n dataStartIndex = _ref3.dataStartIndex,\n dataEndIndex = _ref3.dataEndIndex;\n var layout = props.layout,\n children = props.children;\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var isCategorical = isCategoricalAxis(layout, axisType);\n var index = -1;\n\n // The default type of x-axis is category axis,\n // The default contents of x-axis is the serial numbers of data\n // The default type of y-axis is number axis\n // The default contents of y-axis is the domain of data\n return graphicalItems.reduce(function (result, child) {\n var axisId = child.props[axisIdKey];\n var originalDomain = getDefaultDomainByAxisType('number');\n if (!result[axisId]) {\n index++;\n var domain;\n if (isCategorical) {\n domain = range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack) {\n domain = getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n } else {\n domain = parseSpecifiedDomain(originalDomain, getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), 'number', layout), Axis.defaultProps.allowDataOverflow);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({\n axisType: axisType\n }, Axis.defaultProps), {}, {\n hide: true,\n orientation: get(ORIENT_MAP, \"\".concat(axisType, \".\").concat(index % 2), null),\n domain: domain,\n originalDomain: originalDomain,\n isCategorical: isCategorical,\n layout: layout\n // specify scale when no Axis\n // scale: isCategorical ? 'band' : 'linear',\n })));\n }\n\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};\nexport var generateCategoricalChart = function generateCategoricalChart(_ref6) {\n var _class;\n var chartName = _ref6.chartName,\n GraphicalChild = _ref6.GraphicalChild,\n _ref6$defaultTooltipE = _ref6.defaultTooltipEventType,\n defaultTooltipEventType = _ref6$defaultTooltipE === void 0 ? 'axis' : _ref6$defaultTooltipE,\n _ref6$validateTooltip = _ref6.validateTooltipEventTypes,\n validateTooltipEventTypes = _ref6$validateTooltip === void 0 ? ['axis'] : _ref6$validateTooltip,\n axisComponents = _ref6.axisComponents,\n legendContent = _ref6.legendContent,\n formatAxisMap = _ref6.formatAxisMap,\n defaultProps = _ref6.defaultProps;\n var getFormatItems = function getFormatItems(props, currentState) {\n var graphicalItems = currentState.graphicalItems,\n stackGroups = currentState.stackGroups,\n offset = currentState.offset,\n updateId = currentState.updateId,\n dataStartIndex = currentState.dataStartIndex,\n dataEndIndex = currentState.dataEndIndex;\n var barSize = props.barSize,\n layout = props.layout,\n barGap = props.barGap,\n barCategoryGap = props.barCategoryGap,\n globalMaxBarSize = props.maxBarSize;\n var _getAxisNameByLayout = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout.numericAxisName,\n cateAxisName = _getAxisNameByLayout.cateAxisName;\n var hasBar = hasGraphicalBarItem(graphicalItems);\n var sizeList = hasBar && getBarSizeList({\n barSize: barSize,\n stackGroups: stackGroups\n });\n var formattedItems = [];\n graphicalItems.forEach(function (item, index) {\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: [item],\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n childMaxBarSize = _item$props.maxBarSize;\n // axisId of the numerical axis\n var numericAxisId = item.props[\"\".concat(numericAxisName, \"Id\")];\n // axisId of the categorical axis\n var cateAxisId = item.props[\"\".concat(cateAxisName, \"Id\")];\n var axisObjInitialValue = {};\n var axisObj = axisComponents.reduce(function (result, entry) {\n var _item$type$displayNam, _item$type, _objectSpread6;\n // map of axisId to axis for a specific axis type\n var axisMap = currentState[\"\".concat(entry.axisType, \"Map\")];\n // axisId of axis we are currently computing\n var id = item.props[\"\".concat(entry.axisType, \"Id\")];\n\n /**\n * tell the user in dev mode that their configuration is incorrect if we cannot find a match between\n * axisId on the chart and axisId on the axis. zAxis does not get passed in the map for ComposedChart,\n * leave it out of the check for now.\n */\n !(axisMap && axisMap[id] || entry.axisType === 'zAxis') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Specifying a(n) \".concat(entry.axisType, \"Id requires a corresponding \").concat(entry.axisType\n // @ts-expect-error we should stop reading data from ReactElements\n , \"Id on the targeted graphical component \").concat((_item$type$displayNam = item === null || item === void 0 || (_item$type = item.type) === null || _item$type === void 0 ? void 0 : _item$type.displayName) !== null && _item$type$displayNam !== void 0 ? _item$type$displayNam : '')) : invariant(false) : void 0;\n\n // the axis we are currently formatting\n var axis = axisMap[id];\n return _objectSpread(_objectSpread({}, result), {}, (_objectSpread6 = {}, _defineProperty(_objectSpread6, entry.axisType, axis), _defineProperty(_objectSpread6, \"\".concat(entry.axisType, \"Ticks\"), getTicksOfAxis(axis)), _objectSpread6));\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 if (itemIsBar) {\n var _ref7, _getBandSizeOfAxis;\n // 如果是bar,计算bar的位置\n var maxBarSize = isNil(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n var barBandSize = (_ref7 = (_getBandSizeOfAxis = getBandSizeOfAxis(cateAxis, cateTicks, true)) !== null && _getBandSizeOfAxis !== void 0 ? _getBandSizeOfAxis : maxBarSize) !== null && _ref7 !== void 0 ? _ref7 : 0;\n barPosition = getBarPosition({\n barGap: barGap,\n barCategoryGap: barCategoryGap,\n bandSize: barBandSize !== bandSize ? barBandSize : bandSize,\n sizeList: sizeList[cateAxisId],\n maxBarSize: maxBarSize\n });\n if (barBandSize !== bandSize) {\n barPosition = barPosition.map(function (pos) {\n return _objectSpread(_objectSpread({}, pos), {}, {\n position: _objectSpread(_objectSpread({}, pos.position), {}, {\n offset: pos.position.offset - barBandSize / 2\n })\n });\n });\n }\n }\n // @ts-expect-error we should stop reading data from ReactElements\n var composedFn = item && item.type && item.type.getComposedData;\n if (composedFn) {\n var _objectSpread7;\n formattedItems.push({\n props: _objectSpread(_objectSpread({}, composedFn(_objectSpread(_objectSpread({}, axisObj), {}, {\n displayedData: displayedData,\n props: props,\n dataKey: dataKey,\n item: item,\n bandSize: bandSize,\n barPosition: barPosition,\n offset: offset,\n stackedData: stackedData,\n layout: layout,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))), {}, (_objectSpread7 = {\n key: item.key || \"item-\".concat(index)\n }, _defineProperty(_objectSpread7, numericAxisName, axisObj[numericAxisName]), _defineProperty(_objectSpread7, cateAxisName, axisObj[cateAxisName]), _defineProperty(_objectSpread7, \"animationId\", updateId), _objectSpread7)),\n childIndex: parseChildIndex(item, props.children),\n item: item\n });\n }\n });\n return formattedItems;\n };\n\n /**\n * The AxisMaps are expensive to render on large data sets\n * so provide the ability to store them in state and only update them when necessary\n * they are dependent upon the start and end index of\n * the brush so it's important that this method is called _after_\n * the state is updated with any new start/end indices\n *\n * @param {Object} props The props object to be used for updating the axismaps\n * dataStartIndex: The start index of the data series when a brush is applied\n * dataEndIndex: The end index of the data series when a brush is applied\n * updateId: The update id\n * @param {Object} prevState Prev state\n * @return {Object} state New state to set\n */\n var updateStateOfAxisMapsOffsetAndStackGroups = function updateStateOfAxisMapsOffsetAndStackGroups(_ref8, prevState) {\n var props = _ref8.props,\n dataStartIndex = _ref8.dataStartIndex,\n dataEndIndex = _ref8.dataEndIndex,\n updateId = _ref8.updateId;\n if (!validateWidthHeight({\n props: props\n })) {\n return null;\n }\n var children = props.children,\n layout = props.layout,\n stackOffset = props.stackOffset,\n data = props.data,\n reverseStackOrder = props.reverseStackOrder;\n var _getAxisNameByLayout2 = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout2.numericAxisName,\n cateAxisName = _getAxisNameByLayout2.cateAxisName;\n var graphicalItems = findAllByType(children, GraphicalChild);\n var stackGroups = getStackGroupsByAxisId(data, graphicalItems, \"\".concat(numericAxisName, \"Id\"), \"\".concat(cateAxisName, \"Id\"), stackOffset, reverseStackOrder);\n var axisObj = axisComponents.reduce(function (result, entry) {\n var name = \"\".concat(entry.axisType, \"Map\");\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, name, getAxisMap(props, _objectSpread(_objectSpread({}, entry), {}, {\n graphicalItems: graphicalItems,\n stackGroups: entry.axisType === numericAxisName && stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))));\n }, {});\n var offset = calculateOffset(_objectSpread(_objectSpread({}, axisObj), {}, {\n props: props,\n graphicalItems: graphicalItems\n }), prevState === null || prevState === void 0 ? void 0 : prevState.legendBBox);\n Object.keys(axisObj).forEach(function (key) {\n axisObj[key] = formatAxisMap(props, axisObj[key], offset, key.replace('Map', ''), chartName);\n });\n var cateAxisMap = axisObj[\"\".concat(cateAxisName, \"Map\")];\n var ticksObj = tooltipTicksGenerator(cateAxisMap);\n var formattedGraphicalItems = getFormatItems(props, _objectSpread(_objectSpread({}, axisObj), {}, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId,\n graphicalItems: graphicalItems,\n stackGroups: stackGroups,\n offset: offset\n }));\n return _objectSpread(_objectSpread({\n formattedGraphicalItems: formattedGraphicalItems,\n graphicalItems: graphicalItems,\n offset: offset,\n stackGroups: stackGroups\n }, ticksObj), axisObj);\n };\n return _class = /*#__PURE__*/function (_Component) {\n _inherits(CategoricalChartWrapper, _Component);\n var _super = _createSuper(CategoricalChartWrapper);\n function CategoricalChartWrapper(_props) {\n var _props$id, _props$throttleDelay;\n var _this;\n _classCallCheck(this, CategoricalChartWrapper);\n _this = _super.call(this, _props);\n _defineProperty(_assertThisInitialized(_this), \"eventEmitterSymbol\", Symbol('rechartsEventEmitter'));\n _defineProperty(_assertThisInitialized(_this), \"accessibilityManager\", new AccessibilityManager());\n _defineProperty(_assertThisInitialized(_this), \"handleLegendBBoxUpdate\", function (box) {\n if (box) {\n var _this$state = _this.state,\n dataStartIndex = _this$state.dataStartIndex,\n dataEndIndex = _this$state.dataEndIndex,\n updateId = _this$state.updateId;\n _this.setState(_objectSpread({\n legendBBox: box\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, _objectSpread(_objectSpread({}, _this.state), {}, {\n legendBBox: box\n }))));\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleReceiveSyncEvent\", function (cId, data, emitter) {\n if (_this.props.syncId === cId) {\n if (emitter === _this.eventEmitterSymbol && typeof _this.props.syncMethod !== 'function') {\n return;\n }\n _this.applySyncEvent(data);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleBrushChange\", function (_ref9) {\n var startIndex = _ref9.startIndex,\n endIndex = _ref9.endIndex;\n // Only trigger changes if the extents of the brush have actually changed\n if (startIndex !== _this.state.dataStartIndex || endIndex !== _this.state.dataEndIndex) {\n var updateId = _this.state.updateId;\n _this.setState(function () {\n return _objectSpread({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n updateId: updateId\n }, _this.state));\n });\n _this.triggerSyncEvent({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n });\n }\n });\n /**\n * The handler of mouse entering chart\n * @param {Object} e Event object\n * @return {Null} null\n */\n _defineProperty(_assertThisInitialized(_this), \"handleMouseEnter\", function (e) {\n var mouse = _this.getMouseInfo(e);\n if (mouse) {\n var _nextState = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n _this.setState(_nextState);\n _this.triggerSyncEvent(_nextState);\n var onMouseEnter = _this.props.onMouseEnter;\n if (isFunction(onMouseEnter)) {\n onMouseEnter(_nextState, e);\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"triggeredAfterMouseMove\", function (e) {\n var mouse = _this.getMouseInfo(e);\n var nextState = mouse ? _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n }) : {\n isTooltipActive: false\n };\n _this.setState(nextState);\n _this.triggerSyncEvent(nextState);\n var onMouseMove = _this.props.onMouseMove;\n if (isFunction(onMouseMove)) {\n onMouseMove(nextState, e);\n }\n });\n /**\n * The handler of mouse entering a scatter\n * @param {Object} el The active scatter\n * @return {Object} no return\n */\n _defineProperty(_assertThisInitialized(_this), \"handleItemMouseEnter\", function (el) {\n _this.setState(function () {\n return {\n isTooltipActive: true,\n activeItem: el,\n activePayload: el.tooltipPayload,\n activeCoordinate: el.tooltipPosition || {\n x: el.cx,\n y: el.cy\n }\n };\n });\n });\n /**\n * The handler of mouse leaving a scatter\n * @return {Object} no return\n */\n _defineProperty(_assertThisInitialized(_this), \"handleItemMouseLeave\", function () {\n _this.setState(function () {\n return {\n isTooltipActive: false\n };\n });\n });\n /**\n * The handler of mouse moving in chart\n * @param {React.MouseEvent} e Event object\n * @return {void} no return\n */\n _defineProperty(_assertThisInitialized(_this), \"handleMouseMove\", function (e) {\n e.persist();\n _this.throttleTriggeredAfterMouseMove(e);\n });\n /**\n * The handler if mouse leaving chart\n * @param {Object} e Event object\n * @return {Null} no return\n */\n _defineProperty(_assertThisInitialized(_this), \"handleMouseLeave\", function (e) {\n var nextState = {\n isTooltipActive: false\n };\n _this.setState(nextState);\n _this.triggerSyncEvent(nextState);\n var onMouseLeave = _this.props.onMouseLeave;\n if (isFunction(onMouseLeave)) {\n onMouseLeave(nextState, e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleOuterEvent\", function (e) {\n var eventName = getReactEventByType(e);\n var event = get(_this.props, \"\".concat(eventName));\n if (eventName && isFunction(event)) {\n var _mouse;\n var mouse;\n if (/.*touch.*/i.test(eventName)) {\n mouse = _this.getMouseInfo(e.changedTouches[0]);\n } else {\n mouse = _this.getMouseInfo(e);\n }\n event((_mouse = mouse) !== null && _mouse !== void 0 ? _mouse : {}, e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleClick\", function (e) {\n var mouse = _this.getMouseInfo(e);\n if (mouse) {\n var _nextState2 = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n _this.setState(_nextState2);\n _this.triggerSyncEvent(_nextState2);\n var onClick = _this.props.onClick;\n if (isFunction(onClick)) {\n onClick(_nextState2, e);\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleMouseDown\", function (e) {\n var onMouseDown = _this.props.onMouseDown;\n if (isFunction(onMouseDown)) {\n var _nextState3 = _this.getMouseInfo(e);\n onMouseDown(_nextState3, e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleMouseUp\", function (e) {\n var onMouseUp = _this.props.onMouseUp;\n if (isFunction(onMouseUp)) {\n var _nextState4 = _this.getMouseInfo(e);\n onMouseUp(_nextState4, e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleTouchMove\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.throttleTriggeredAfterMouseMove(e.changedTouches[0]);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleTouchStart\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseDown(e.changedTouches[0]);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleTouchEnd\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseUp(e.changedTouches[0]);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"triggerSyncEvent\", function (data) {\n if (_this.props.syncId !== undefined) {\n eventCenter.emit(SYNC_EVENT, _this.props.syncId, data, _this.eventEmitterSymbol);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"applySyncEvent\", function (data) {\n var _this$props = _this.props,\n layout = _this$props.layout,\n syncMethod = _this$props.syncMethod;\n var updateId = _this.state.updateId;\n var dataStartIndex = data.dataStartIndex,\n dataEndIndex = data.dataEndIndex;\n if (data.dataStartIndex !== undefined || data.dataEndIndex !== undefined) {\n _this.setState(_objectSpread({\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, _this.state)));\n } else if (data.activeTooltipIndex !== undefined) {\n var chartX = data.chartX,\n chartY = data.chartY;\n var activeTooltipIndex = data.activeTooltipIndex;\n var _this$state2 = _this.state,\n offset = _this$state2.offset,\n tooltipTicks = _this$state2.tooltipTicks;\n if (!offset) {\n return;\n }\n if (typeof syncMethod === 'function') {\n // Call a callback function. If there is an application specific algorithm\n activeTooltipIndex = syncMethod(tooltipTicks, data);\n } else if (syncMethod === 'value') {\n // Set activeTooltipIndex to the index with the same value as data.activeLabel\n // For loop instead of findIndex because the latter is very slow in some browsers\n activeTooltipIndex = -1; // in case we cannot find the element\n for (var i = 0; i < tooltipTicks.length; i++) {\n if (tooltipTicks[i].value === data.activeLabel) {\n activeTooltipIndex = i;\n break;\n }\n }\n }\n var viewBox = _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n });\n // When a categorical chart is combined with another chart, the value of chartX\n // and chartY may beyond the boundaries.\n var validateChartX = Math.min(chartX, viewBox.x + viewBox.width);\n var validateChartY = Math.min(chartY, viewBox.y + viewBox.height);\n var activeLabel = tooltipTicks[activeTooltipIndex] && tooltipTicks[activeTooltipIndex].value;\n var activePayload = getTooltipContent(_this.state, _this.props.data, activeTooltipIndex);\n var activeCoordinate = tooltipTicks[activeTooltipIndex] ? {\n x: layout === 'horizontal' ? tooltipTicks[activeTooltipIndex].coordinate : validateChartX,\n y: layout === 'horizontal' ? validateChartY : tooltipTicks[activeTooltipIndex].coordinate\n } : originCoordinate;\n _this.setState(_objectSpread(_objectSpread({}, data), {}, {\n activeLabel: activeLabel,\n activeCoordinate: activeCoordinate,\n activePayload: activePayload,\n activeTooltipIndex: activeTooltipIndex\n }));\n } else {\n _this.setState(data);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"verticalCoordinatesGenerator\", function (_ref10, syncWithTicks) {\n var xAxis = _ref10.xAxis,\n width = _ref10.width,\n height = _ref10.height,\n offset = _ref10.offset;\n return getCoordinatesOfGrid(getTicks(_objectSpread(_objectSpread(_objectSpread({}, CartesianAxis.defaultProps), xAxis), {}, {\n ticks: getTicksOfAxis(xAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n }\n })), offset.left, offset.left + offset.width, syncWithTicks);\n });\n _defineProperty(_assertThisInitialized(_this), \"horizontalCoordinatesGenerator\", function (_ref11, syncWithTicks) {\n var yAxis = _ref11.yAxis,\n width = _ref11.width,\n height = _ref11.height,\n offset = _ref11.offset;\n return getCoordinatesOfGrid(getTicks(_objectSpread(_objectSpread(_objectSpread({}, CartesianAxis.defaultProps), yAxis), {}, {\n ticks: getTicksOfAxis(yAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n }\n })), offset.top, offset.top + offset.height, syncWithTicks);\n });\n _defineProperty(_assertThisInitialized(_this), \"axesTicksGenerator\", function (axis) {\n return getTicksOfAxis(axis, true);\n });\n _defineProperty(_assertThisInitialized(_this), \"renderCursor\", function (element) {\n var _element$props$active;\n var _this$state3 = _this.state,\n isTooltipActive = _this$state3.isTooltipActive,\n activeCoordinate = _this$state3.activeCoordinate,\n activePayload = _this$state3.activePayload,\n offset = _this$state3.offset,\n activeTooltipIndex = _this$state3.activeTooltipIndex,\n tooltipAxisBandSize = _this$state3.tooltipAxisBandSize;\n var tooltipEventType = _this.getTooltipEventType();\n // The cursor is a part of the Tooltip, and it should be shown (by default) when the Tooltip is active.\n var isActive = (_element$props$active = element.props.active) !== null && _element$props$active !== void 0 ? _element$props$active : isTooltipActive;\n if (!element || !element.props.cursor || !isActive || !activeCoordinate || chartName !== 'ScatterChart' && tooltipEventType !== 'axis') {\n return null;\n }\n var layout = _this.props.layout;\n var restProps;\n var cursorComp = Curve;\n if (chartName === 'ScatterChart') {\n restProps = activeCoordinate;\n cursorComp = Cross;\n } else if (chartName === 'BarChart') {\n restProps = 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 key = element.key || '_recharts-cursor';\n var cursorProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n stroke: '#ccc',\n pointerEvents: 'none'\n }, offset), restProps), filterProps(element.props.cursor)), {}, {\n payload: activePayload,\n payloadIndex: activeTooltipIndex,\n key: key,\n className: 'recharts-tooltip-cursor'\n });\n return /*#__PURE__*/isValidElement(element.props.cursor) ? /*#__PURE__*/cloneElement(element.props.cursor, cursorProps) : /*#__PURE__*/createElement(cursorComp, cursorProps);\n });\n _defineProperty(_assertThisInitialized(_this), \"renderPolarAxis\", function (element, displayName, index) {\n var axisType = get(element, 'type.axisType');\n var axisMap = get(_this.state, \"\".concat(axisType, \"Map\"));\n var axisOption = axisMap && axisMap[element.props[\"\".concat(axisType, \"Id\")]];\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, axisOption), {}, {\n className: axisType,\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n ticks: getTicksOfAxis(axisOption, true)\n }));\n });\n _defineProperty(_assertThisInitialized(_this), \"renderXAxis\", function (element, displayName, index) {\n var xAxisMap = _this.state.xAxisMap;\n var axisObj = xAxisMap[element.props.xAxisId];\n return _this.renderAxis(axisObj, element, displayName, index);\n });\n _defineProperty(_assertThisInitialized(_this), \"renderYAxis\", function (element, displayName, index) {\n var yAxisMap = _this.state.yAxisMap;\n var axisObj = yAxisMap[element.props.yAxisId];\n return _this.renderAxis(axisObj, element, displayName, index);\n });\n /**\n * Draw grid\n * @param {ReactElement} element the grid item\n * @return {ReactElement} The instance of grid\n */\n _defineProperty(_assertThisInitialized(_this), \"renderGrid\", function (element) {\n var _this$state4 = _this.state,\n xAxisMap = _this$state4.xAxisMap,\n yAxisMap = _this$state4.yAxisMap,\n offset = _this$state4.offset;\n var _this$props2 = _this.props,\n width = _this$props2.width,\n height = _this$props2.height;\n var xAxis = getAnyElementOfObject(xAxisMap);\n var yAxisWithFiniteDomain = find(yAxisMap, function (axis) {\n return every(axis.domain, Number.isFinite);\n });\n var yAxis = yAxisWithFiniteDomain || getAnyElementOfObject(yAxisMap);\n var props = element.props || {};\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || 'grid',\n x: isNumber(props.x) ? props.x : offset.left,\n y: isNumber(props.y) ? props.y : offset.top,\n width: isNumber(props.width) ? props.width : offset.width,\n height: isNumber(props.height) ? props.height : offset.height,\n xAxis: xAxis,\n yAxis: yAxis,\n offset: offset,\n chartWidth: width,\n chartHeight: height,\n verticalCoordinatesGenerator: props.verticalCoordinatesGenerator || _this.verticalCoordinatesGenerator,\n horizontalCoordinatesGenerator: props.horizontalCoordinatesGenerator || _this.horizontalCoordinatesGenerator\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"renderPolarGrid\", function (element) {\n var _element$props = element.props,\n radialLines = _element$props.radialLines,\n polarAngles = _element$props.polarAngles,\n polarRadius = _element$props.polarRadius;\n var _this$state5 = _this.state,\n radiusAxisMap = _this$state5.radiusAxisMap,\n angleAxisMap = _this$state5.angleAxisMap;\n var radiusAxis = getAnyElementOfObject(radiusAxisMap);\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n var cx = angleAxis.cx,\n cy = angleAxis.cy,\n innerRadius = angleAxis.innerRadius,\n outerRadius = angleAxis.outerRadius;\n return /*#__PURE__*/cloneElement(element, {\n polarAngles: Array.isArray(polarAngles) ? polarAngles : getTicksOfAxis(angleAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n polarRadius: Array.isArray(polarRadius) ? polarRadius : getTicksOfAxis(radiusAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n key: element.key || 'polar-grid',\n radialLines: radialLines\n });\n });\n /**\n * Draw legend\n * @return {ReactElement} The instance of Legend\n */\n _defineProperty(_assertThisInitialized(_this), \"renderLegend\", function () {\n var formattedGraphicalItems = _this.state.formattedGraphicalItems;\n var _this$props3 = _this.props,\n children = _this$props3.children,\n width = _this$props3.width,\n height = _this$props3.height;\n var margin = _this.props.margin || {};\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var props = getLegendProps({\n children: children,\n formattedGraphicalItems: formattedGraphicalItems,\n legendWidth: legendWidth,\n legendContent: legendContent\n });\n if (!props) {\n return null;\n }\n var item = props.item,\n otherProps = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/cloneElement(item, _objectSpread(_objectSpread({}, otherProps), {}, {\n chartWidth: width,\n chartHeight: height,\n margin: margin,\n onBBoxUpdate: _this.handleLegendBBoxUpdate\n }));\n });\n /**\n * Draw Tooltip\n * @return {ReactElement} The instance of Tooltip\n */\n _defineProperty(_assertThisInitialized(_this), \"renderTooltip\", function () {\n var _tooltipItem$props$ac;\n var children = _this.props.children;\n var tooltipItem = findChildByType(children, Tooltip);\n if (!tooltipItem) {\n return null;\n }\n var _this$state6 = _this.state,\n isTooltipActive = _this$state6.isTooltipActive,\n activeCoordinate = _this$state6.activeCoordinate,\n activePayload = _this$state6.activePayload,\n activeLabel = _this$state6.activeLabel,\n offset = _this$state6.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 });\n });\n _defineProperty(_assertThisInitialized(_this), \"renderBrush\", function (element) {\n var _this$props4 = _this.props,\n margin = _this$props4.margin,\n data = _this$props4.data;\n var _this$state7 = _this.state,\n offset = _this$state7.offset,\n dataStartIndex = _this$state7.dataStartIndex,\n dataEndIndex = _this$state7.dataEndIndex,\n updateId = _this$state7.updateId;\n\n // TODO: update brush when children update\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || '_recharts-brush',\n onChange: combineEventHandlers(_this.handleBrushChange, element.props.onChange),\n data: data,\n x: isNumber(element.props.x) ? element.props.x : offset.left,\n y: isNumber(element.props.y) ? element.props.y : offset.top + offset.height + offset.brushBottom - (margin.bottom || 0),\n width: isNumber(element.props.width) ? element.props.width : offset.width,\n startIndex: dataStartIndex,\n endIndex: dataEndIndex,\n updateId: \"brush-\".concat(updateId)\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"renderReferenceElement\", function (element, displayName, index) {\n if (!element) {\n return null;\n }\n var _assertThisInitialize = _assertThisInitialized(_this),\n clipPathId = _assertThisInitialize.clipPathId;\n var _this$state8 = _this.state,\n xAxisMap = _this$state8.xAxisMap,\n yAxisMap = _this$state8.yAxisMap,\n offset = _this$state8.offset;\n var _element$props2 = element.props,\n xAxisId = _element$props2.xAxisId,\n yAxisId = _element$props2.yAxisId;\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n xAxis: xAxisMap[xAxisId],\n yAxis: yAxisMap[yAxisId],\n viewBox: {\n x: offset.left,\n y: offset.top,\n width: offset.width,\n height: offset.height\n },\n clipPathId: clipPathId\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"renderActivePoints\", function (_ref12) {\n var item = _ref12.item,\n activePoint = _ref12.activePoint,\n basePoint = _ref12.basePoint,\n childIndex = _ref12.childIndex,\n isRange = _ref12.isRange;\n var result = [];\n var key = item.props.key;\n var _item$item$props = item.item.props,\n activeDot = _item$item$props.activeDot,\n dataKey = _item$item$props.dataKey;\n var dotProps = _objectSpread(_objectSpread({\n index: childIndex,\n dataKey: dataKey,\n cx: activePoint.x,\n cy: activePoint.y,\n r: 4,\n fill: getMainColorOfGraphicItem(item.item),\n strokeWidth: 2,\n stroke: '#fff',\n payload: activePoint.payload,\n value: activePoint.value,\n key: \"\".concat(key, \"-activePoint-\").concat(childIndex)\n }, filterProps(activeDot)), adaptEventHandlers(activeDot));\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, dotProps));\n if (basePoint) {\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, _objectSpread(_objectSpread({}, dotProps), {}, {\n cx: basePoint.x,\n cy: basePoint.y,\n key: \"\".concat(key, \"-basePoint-\").concat(childIndex)\n })));\n } else if (isRange) {\n result.push(null);\n }\n return result;\n });\n _defineProperty(_assertThisInitialized(_this), \"renderGraphicChild\", function (element, displayName, index) {\n var item = _this.filterFormatItem(element, displayName, index);\n if (!item) {\n return null;\n }\n var tooltipEventType = _this.getTooltipEventType();\n var _this$state9 = _this.state,\n isTooltipActive = _this$state9.isTooltipActive,\n tooltipAxis = _this$state9.tooltipAxis,\n activeTooltipIndex = _this$state9.activeTooltipIndex,\n activeLabel = _this$state9.activeLabel;\n var children = _this.props.children;\n var tooltipItem = findChildByType(children, Tooltip);\n var _item$props2 = item.props,\n points = _item$props2.points,\n isRange = _item$props2.isRange,\n baseLine = _item$props2.baseLine;\n var _item$item$props2 = item.item.props,\n activeDot = _item$item$props2.activeDot,\n hide = _item$item$props2.hide,\n activeBar = _item$item$props2.activeBar,\n activeShape = _item$item$props2.activeShape;\n var hasActive = Boolean(!hide && isTooltipActive && tooltipItem && (activeDot || activeBar || activeShape));\n var itemEvents = {};\n if (tooltipEventType !== 'axis' && tooltipItem && tooltipItem.props.trigger === 'click') {\n itemEvents = {\n onClick: combineEventHandlers(_this.handleItemMouseEnter, element.props.onClick)\n };\n } else if (tooltipEventType !== 'axis') {\n itemEvents = {\n onMouseLeave: combineEventHandlers(_this.handleItemMouseLeave, element.props.onMouseLeave),\n onMouseEnter: combineEventHandlers(_this.handleItemMouseEnter, element.props.onMouseEnter)\n };\n }\n var graphicalItem = /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, item.props), itemEvents));\n function findWithPayload(entry) {\n // TODO needs to verify dataKey is Function\n return typeof tooltipAxis.dataKey === 'function' ? tooltipAxis.dataKey(entry.payload) : null;\n }\n if (hasActive) {\n if (activeTooltipIndex >= 0) {\n var activePoint, basePoint;\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // number transform to string\n var specifiedKey = typeof tooltipAxis.dataKey === 'function' ? findWithPayload : 'payload.'.concat(tooltipAxis.dataKey.toString());\n activePoint = findEntryInArray(points, specifiedKey, activeLabel);\n basePoint = isRange && baseLine && findEntryInArray(baseLine, specifiedKey, activeLabel);\n } else {\n activePoint = points === null || points === void 0 ? void 0 : points[activeTooltipIndex];\n basePoint = isRange && baseLine && baseLine[activeTooltipIndex];\n }\n if (activeShape || activeBar) {\n var activeIndex = element.props.activeIndex !== undefined ? element.props.activeIndex : activeTooltipIndex;\n return [/*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread(_objectSpread({}, item.props), itemEvents), {}, {\n activeIndex: activeIndex\n })), null, null];\n }\n if (!isNil(activePoint)) {\n return [graphicalItem].concat(_toConsumableArray(_this.renderActivePoints({\n item: item,\n activePoint: activePoint,\n basePoint: basePoint,\n childIndex: activeTooltipIndex,\n isRange: isRange\n })));\n }\n } else {\n var _this$getItemByXY;\n /**\n * We hit this block if consumer uses a Tooltip without XAxis and/or YAxis.\n * In which case, this.state.activeTooltipIndex never gets set\n * because the mouse events that trigger that value getting set never get trigged without the axis components.\n *\n * An example usage case is a FunnelChart\n */\n var _ref13 = (_this$getItemByXY = _this.getItemByXY(_this.state.activeCoordinate)) !== null && _this$getItemByXY !== void 0 ? _this$getItemByXY : {\n graphicalItem: graphicalItem\n },\n _ref13$graphicalItem = _ref13.graphicalItem,\n _ref13$graphicalItem$ = _ref13$graphicalItem.item,\n xyItem = _ref13$graphicalItem$ === void 0 ? element : _ref13$graphicalItem$,\n childIndex = _ref13$graphicalItem.childIndex;\n var elementProps = _objectSpread(_objectSpread(_objectSpread({}, item.props), itemEvents), {}, {\n activeIndex: childIndex\n });\n return [/*#__PURE__*/cloneElement(xyItem, elementProps), null, null];\n }\n }\n if (isRange) {\n return [graphicalItem, null, null];\n }\n return [graphicalItem, null];\n });\n _defineProperty(_assertThisInitialized(_this), \"renderCustomized\", function (element, displayName, index) {\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({\n key: \"recharts-customized-\".concat(index)\n }, _this.props), _this.state));\n });\n _defineProperty(_assertThisInitialized(_this), \"renderMap\", {\n CartesianGrid: {\n handler: _this.renderGrid,\n once: true\n },\n ReferenceArea: {\n handler: _this.renderReferenceElement\n },\n ReferenceLine: {\n handler: _this.renderReferenceElement\n },\n ReferenceDot: {\n handler: _this.renderReferenceElement\n },\n XAxis: {\n handler: _this.renderXAxis\n },\n YAxis: {\n handler: _this.renderYAxis\n },\n Brush: {\n handler: _this.renderBrush,\n once: true\n },\n Bar: {\n handler: _this.renderGraphicChild\n },\n Line: {\n handler: _this.renderGraphicChild\n },\n Area: {\n handler: _this.renderGraphicChild\n },\n Radar: {\n handler: _this.renderGraphicChild\n },\n RadialBar: {\n handler: _this.renderGraphicChild\n },\n Scatter: {\n handler: _this.renderGraphicChild\n },\n Pie: {\n handler: _this.renderGraphicChild\n },\n Funnel: {\n handler: _this.renderGraphicChild\n },\n Tooltip: {\n handler: _this.renderCursor,\n once: true\n },\n PolarGrid: {\n handler: _this.renderPolarGrid,\n once: true\n },\n PolarAngleAxis: {\n handler: _this.renderPolarAxis\n },\n PolarRadiusAxis: {\n handler: _this.renderPolarAxis\n },\n Customized: {\n handler: _this.renderCustomized\n }\n });\n _this.clipPathId = \"\".concat((_props$id = _props.id) !== null && _props$id !== void 0 ? _props$id : uniqueId('recharts'), \"-clip\");\n\n // trigger 60fps\n _this.throttleTriggeredAfterMouseMove = throttle(_this.triggeredAfterMouseMove, (_props$throttleDelay = _props.throttleDelay) !== null && _props$throttleDelay !== void 0 ? _props$throttleDelay : 1000 / 60);\n _this.state = {};\n return _this;\n }\n _createClass(CategoricalChartWrapper, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props$margin$le, _this$props$margin$to;\n this.addListener();\n this.accessibilityManager.setDetails({\n container: this.container,\n offset: {\n left: (_this$props$margin$le = this.props.margin.left) !== null && _this$props$margin$le !== void 0 ? _this$props$margin$le : 0,\n top: (_this$props$margin$to = this.props.margin.top) !== null && _this$props$margin$to !== void 0 ? _this$props$margin$to : 0\n },\n coordinateList: this.state.tooltipTicks,\n mouseHandlerCallback: this.triggeredAfterMouseMove,\n layout: this.props.layout\n });\n }\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:\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n function componentDidUpdate() {}\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$state10 = this.state,\n xAxisMap = _this$state10.xAxisMap,\n yAxisMap = _this$state10.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$state11 = this.state,\n angleAxisMap = _this$state11.angleAxisMap,\n radiusAxisMap = _this$state11.radiusAxisMap;\n if (angleAxisMap && radiusAxisMap) {\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n return inRangeOfSector({\n x: scaledX,\n y: scaledY\n }, angleAxis);\n }\n return null;\n }\n }, {\n key: \"parseEventsOfWrapper\",\n value: function parseEventsOfWrapper() {\n var children = this.props.children;\n var tooltipEventType = this.getTooltipEventType();\n var tooltipItem = findChildByType(children, Tooltip);\n var tooltipEvents = {};\n if (tooltipItem && tooltipEventType === 'axis') {\n if (tooltipItem.props.trigger === 'click') {\n tooltipEvents = {\n onClick: this.handleClick\n };\n } else {\n tooltipEvents = {\n onMouseEnter: this.handleMouseEnter,\n onMouseMove: this.handleMouseMove,\n onMouseLeave: this.handleMouseLeave,\n onTouchMove: this.handleTouchMove,\n onTouchStart: this.handleTouchStart,\n onTouchEnd: this.handleTouchEnd\n };\n }\n }\n\n // @ts-expect-error adaptEventHandlers expects DOM Event but generateCategoricalChart works with React UIEvents\n var outerEvents = adaptEventHandlers(this.props, this.handleOuterEvent);\n return _objectSpread(_objectSpread({}, outerEvents), tooltipEvents);\n }\n }, {\n key: \"addListener\",\n value: function addListener() {\n eventCenter.on(SYNC_EVENT, this.handleReceiveSyncEvent);\n }\n }, {\n key: \"removeListener\",\n value: function removeListener() {\n eventCenter.removeListener(SYNC_EVENT, this.handleReceiveSyncEvent);\n }\n }, {\n key: \"filterFormatItem\",\n value: function filterFormatItem(item, displayName, childIndex) {\n var formattedGraphicalItems = this.state.formattedGraphicalItems;\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var entry = formattedGraphicalItems[i];\n if (entry.item === item || entry.props.key === item.key || displayName === getDisplayName(entry.item.type) && childIndex === entry.childIndex) {\n return entry;\n }\n }\n return null;\n }\n }, {\n key: \"renderAxis\",\n value:\n /**\n * Draw axis\n * @param {Object} axisOptions The options of axis\n * @param {Object} element The axis element\n * @param {String} displayName The display name of axis\n * @param {Number} index The index of element\n * @return {ReactElement} The instance of x-axes\n */\n function renderAxis(axisOptions, element, displayName, index) {\n var _this$props5 = this.props,\n width = _this$props5.width,\n height = _this$props5.height;\n return /*#__PURE__*/React.createElement(CartesianAxis, _extends({}, axisOptions, {\n className: clsx(\"recharts-\".concat(axisOptions.axisType, \" \").concat(axisOptions.axisType), axisOptions.className),\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n ticksGenerator: this.axesTicksGenerator\n }));\n }\n }, {\n key: \"renderClipPath\",\n value: function renderClipPath() {\n var clipPathId = this.clipPathId;\n var _this$state$offset = this.state.offset,\n left = _this$state$offset.left,\n top = _this$state$offset.top,\n height = _this$state$offset.height,\n width = _this$state$offset.width;\n return /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: clipPathId\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left,\n y: top,\n height: height,\n width: width\n })));\n }\n }, {\n key: \"getXScales\",\n value: function getXScales() {\n var xAxisMap = this.state.xAxisMap;\n return xAxisMap ? Object.entries(xAxisMap).reduce(function (res, _ref14) {\n var _ref15 = _slicedToArray(_ref14, 2),\n axisId = _ref15[0],\n axisProps = _ref15[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, _ref16) {\n var _ref17 = _slicedToArray(_ref16, 2),\n axisId = _ref17[0],\n axisProps = _ref17[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$state12 = this.state,\n formattedGraphicalItems = _this$state12.formattedGraphicalItems,\n activeItem = _this$state12.activeItem;\n if (formattedGraphicalItems && formattedGraphicalItems.length) {\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var graphicalItem = formattedGraphicalItems[i];\n var props = graphicalItem.props,\n item = graphicalItem.item;\n var itemDisplayName = getDisplayName(item.type);\n if (itemDisplayName === 'Bar') {\n var activeBarItem = (props.data || []).find(function (entry) {\n return isInRectangle(chartXY, entry);\n });\n if (activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: activeBarItem\n };\n }\n } else if (itemDisplayName === 'RadialBar') {\n var _activeBarItem = (props.data || []).find(function (entry) {\n return inRangeOfSector(chartXY, entry);\n });\n if (_activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: _activeBarItem\n };\n }\n } else if (isFunnel(graphicalItem, activeItem) || isPie(graphicalItem, activeItem) || isScatter(graphicalItem, activeItem)) {\n var activeIndex = getActiveShapeIndexForTooltip({\n graphicalItem: graphicalItem,\n activeTooltipItem: activeItem,\n itemData: item.props.data\n });\n var childIndex = item.props.activeIndex === undefined ? activeIndex : item.props.activeIndex;\n return {\n graphicalItem: _objectSpread(_objectSpread({}, graphicalItem), {}, {\n childIndex: childIndex\n }),\n payload: isScatter(graphicalItem, activeItem) ? item.props.data[activeIndex] : graphicalItem.props.data[activeIndex]\n };\n }\n }\n }\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n if (!validateWidthHeight(this)) {\n return null;\n }\n var _this$props6 = this.props,\n children = _this$props6.children,\n className = _this$props6.className,\n width = _this$props6.width,\n height = _this$props6.height,\n style = _this$props6.style,\n compact = _this$props6.compact,\n title = _this$props6.title,\n desc = _this$props6.desc,\n others = _objectWithoutProperties(_this$props6, _excluded2);\n var attrs = filterProps(others);\n\n // The \"compact\" mode is mainly used as the panorama within Brush\n if (compact) {\n return /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height,\n title: title,\n desc: desc\n }), this.renderClipPath(), renderByOrder(children, 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 : 'img';\n attrs.onKeyDown = function (e) {\n _this2.accessibilityManager.keyboardEvent(e);\n // 'onKeyDown' is not currently a supported prop that can be passed through\n // if it's added, this should be added: this.props.onKeyDown(e);\n };\n\n attrs.onFocus = function () {\n _this2.accessibilityManager.focus();\n // 'onFocus' is not currently a supported prop that can be passed through\n // if it's added, the focus event should be forwarded to the prop\n };\n }\n\n var events = this.parseEventsOfWrapper();\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx('recharts-wrapper', className),\n style: _objectSpread({\n position: 'relative',\n cursor: 'default',\n width: width,\n height: height\n }, style)\n }, events, {\n ref: function ref(node) {\n _this2.container = node;\n },\n role: \"region\"\n }), /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height,\n title: title,\n desc: desc,\n style: FULL_WIDTH_AND_HEIGHT\n }), this.renderClipPath(), renderByOrder(children, this.renderMap)), this.renderLegend(), this.renderTooltip());\n }\n }]);\n return CategoricalChartWrapper;\n }(Component), _defineProperty(_class, \"displayName\", chartName), _defineProperty(_class, \"defaultProps\", _objectSpread({\n layout: 'horizontal',\n stackOffset: 'none',\n barCategoryGap: '10%',\n barGap: 4,\n margin: {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n },\n reverseStackOrder: false,\n syncMethod: 'index'\n }, defaultProps)), _defineProperty(_class, \"getDerivedStateFromProps\", function (nextProps, prevState) {\n var 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 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 // update configuration in children\n var hasGlobalData = !isNil(data);\n var newUpdateId = hasGlobalData ? prevState.updateId : prevState.updateId + 1;\n return _objectSpread(_objectSpread({\n updateId: newUpdateId\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, prevState), {}, {\n updateId: newUpdateId\n }), prevState)), {}, {\n prevChildren: children\n });\n }\n return null;\n }), _defineProperty(_class, \"renderActiveDot\", function (option, props) {\n var dot;\n if ( /*#__PURE__*/isValidElement(option)) {\n dot = /*#__PURE__*/cloneElement(option, props);\n } else if (isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, props);\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-active-dot\",\n key: props.key\n }, dot);\n }), _class;\n};","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}","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}","/**\n * @fileOverview Cross\n */\n\nexport var Cell = function Cell(_props) {\n return null;\n};\nCell.displayName = 'Cell';","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"offset\"];\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { cloneElement, isValidElement, createElement } from 'react';\nimport 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(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { cloneElement } from 'react';\nimport 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 _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Default Legend Content\n */\nimport React, { PureComponent } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { warn } from '../util/LogUtils';\nimport { Surface } from '../container/Surface';\nimport { Symbols } from '../shape/Symbols';\nimport { adaptEventsOfChild } from '../util/types';\nvar SIZE = 32;\nexport var DefaultLegendContent = /*#__PURE__*/function (_PureComponent) {\n _inherits(DefaultLegendContent, _PureComponent);\n var _super = _createSuper(DefaultLegendContent);\n function DefaultLegendContent() {\n _classCallCheck(this, DefaultLegendContent);\n return _super.apply(this, arguments);\n }\n _createClass(DefaultLegendContent, [{\n key: \"renderIcon\",\n value:\n /**\n * Render the path of icon\n * @param {Object} data Data of each legend item\n * @return {String} Path element\n */\n function renderIcon(data) {\n var inactiveColor = this.props.inactiveColor;\n var halfSize = SIZE / 2;\n var sixthSize = SIZE / 6;\n var thirdSize = SIZE / 3;\n var color = data.inactive ? inactiveColor : data.color;\n if (data.type === 'plainline') {\n return /*#__PURE__*/React.createElement(\"line\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n strokeDasharray: data.payload.strokeDasharray,\n x1: 0,\n y1: halfSize,\n x2: SIZE,\n y2: halfSize,\n className: \"recharts-legend-icon\"\n });\n }\n if (data.type === 'line') {\n return /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n d: \"M0,\".concat(halfSize, \"h\").concat(thirdSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n H\").concat(SIZE, \"M\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(thirdSize, \",\").concat(halfSize),\n className: \"recharts-legend-icon\"\n });\n }\n if (data.type === 'rect') {\n return /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"none\",\n fill: color,\n d: \"M0,\".concat(SIZE / 8, \"h\").concat(SIZE, \"v\").concat(SIZE * 3 / 4, \"h\").concat(-SIZE, \"z\"),\n className: \"recharts-legend-icon\"\n });\n }\n if ( /*#__PURE__*/React.isValidElement(data.legendIcon)) {\n var iconProps = _objectSpread({}, data);\n delete iconProps.legendIcon;\n return /*#__PURE__*/React.cloneElement(data.legendIcon, iconProps);\n }\n return /*#__PURE__*/React.createElement(Symbols, {\n fill: color,\n cx: halfSize,\n cy: halfSize,\n size: SIZE,\n sizeType: \"diameter\",\n type: data.type\n });\n }\n\n /**\n * Draw items of legend\n * @return {ReactElement} Items\n */\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this = this;\n var _this$props = this.props,\n payload = _this$props.payload,\n iconSize = _this$props.iconSize,\n layout = _this$props.layout,\n formatter = _this$props.formatter,\n inactiveColor = _this$props.inactiveColor;\n var viewBox = {\n x: 0,\n y: 0,\n width: SIZE,\n height: SIZE\n };\n var itemStyle = {\n display: layout === 'horizontal' ? 'inline-block' : 'block',\n marginRight: 10\n };\n var svgStyle = {\n display: 'inline-block',\n verticalAlign: 'middle',\n marginRight: 4\n };\n return payload.map(function (entry, i) {\n var _clsx;\n var finalFormatter = entry.formatter || formatter;\n var className = clsx((_clsx = {\n 'recharts-legend-item': true\n }, _defineProperty(_clsx, \"legend-item-\".concat(i), true), _defineProperty(_clsx, \"inactive\", entry.inactive), _clsx));\n if (entry.type === 'none') {\n return null;\n }\n\n // Do not render entry.value as functions. Always require static string properties.\n var entryValue = !isFunction(entry.value) ? entry.value : null;\n warn(!isFunction(entry.value), \"The name property is also required when using a function for the dataKey of a chart's cartesian components. Ex: \" // eslint-disable-line max-len\n );\n var color = entry.inactive ? inactiveColor : entry.color;\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n className: className,\n style: itemStyle\n // eslint-disable-next-line react/no-array-index-key\n ,\n key: \"legend-item-\".concat(i)\n }, adaptEventsOfChild(_this.props, entry, i)), /*#__PURE__*/React.createElement(Surface, {\n width: iconSize,\n height: iconSize,\n viewBox: viewBox,\n style: svgStyle\n }, _this.renderIcon(entry)), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-legend-item-text\",\n style: {\n color: color\n }\n }, finalFormatter ? finalFormatter(entryValue, entry, i) : entryValue));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n payload = _this$props2.payload,\n layout = _this$props2.layout,\n align = _this$props2.align;\n if (!payload || !payload.length) {\n return null;\n }\n var finalStyle = {\n padding: 0,\n margin: 0,\n textAlign: layout === 'horizontal' ? align : 'left'\n };\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-default-legend\",\n style: finalStyle\n }, this.renderItems());\n }\n }]);\n return DefaultLegendContent;\n}(PureComponent);\n_defineProperty(DefaultLegendContent, \"displayName\", 'Legend');\n_defineProperty(DefaultLegendContent, \"defaultProps\", {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'middle',\n inactiveColor: '#ccc'\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"ref\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/**\n * @fileOverview Legend\n */\nimport React, { PureComponent } from 'react';\nimport { DefaultLegendContent } from './DefaultLegendContent';\nimport { isNumber } from '../util/DataUtils';\nimport { getUniqPayload } from '../util/payload/getUniqPayload';\nfunction defaultUniqBy(entry) {\n return entry.value;\n}\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n if (typeof content === 'function') {\n return /*#__PURE__*/React.createElement(content, props);\n }\n var ref = props.ref,\n otherProps = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/React.createElement(DefaultLegendContent, otherProps);\n}\nvar EPS = 1;\nexport var Legend = /*#__PURE__*/function (_PureComponent) {\n _inherits(Legend, _PureComponent);\n var _super = _createSuper(Legend);\n function Legend() {\n var _this;\n _classCallCheck(this, Legend);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"lastBoundingBox\", {\n width: -1,\n height: -1\n });\n return _this;\n }\n _createClass(Legend, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"getBBox\",\n value: function getBBox() {\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n return this.wrapperNode.getBoundingClientRect();\n }\n return null;\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var onBBoxUpdate = this.props.onBBoxUpdate;\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var _box = this.wrapperNode.getBoundingClientRect();\n if (Math.abs(_box.width - this.lastBoundingBox.width) > EPS || Math.abs(_box.height - this.lastBoundingBox.height) > EPS) {\n this.lastBoundingBox.width = _box.width;\n this.lastBoundingBox.height = _box.height;\n if (onBBoxUpdate) {\n onBBoxUpdate(_box);\n }\n }\n } else if (this.lastBoundingBox.width !== -1 || this.lastBoundingBox.height !== -1) {\n this.lastBoundingBox.width = -1;\n this.lastBoundingBox.height = -1;\n if (onBBoxUpdate) {\n onBBoxUpdate(null);\n }\n }\n }\n }, {\n key: \"getBBoxSnapshot\",\n value: function getBBoxSnapshot() {\n if (this.lastBoundingBox.width >= 0 && this.lastBoundingBox.height >= 0) {\n return _objectSpread({}, this.lastBoundingBox);\n }\n return {\n width: 0,\n height: 0\n };\n }\n }, {\n key: \"getDefaultPosition\",\n value: function getDefaultPosition(style) {\n var _this$props = this.props,\n layout = _this$props.layout,\n align = _this$props.align,\n verticalAlign = _this$props.verticalAlign,\n margin = _this$props.margin,\n chartWidth = _this$props.chartWidth,\n chartHeight = _this$props.chartHeight;\n var hPos, vPos;\n if (!style || (style.left === undefined || style.left === null) && (style.right === undefined || style.right === null)) {\n if (align === 'center' && layout === 'vertical') {\n var _box2 = this.getBBoxSnapshot();\n hPos = {\n left: ((chartWidth || 0) - _box2.width) / 2\n };\n } else {\n hPos = align === 'right' ? {\n right: margin && margin.right || 0\n } : {\n left: margin && margin.left || 0\n };\n }\n }\n if (!style || (style.top === undefined || style.top === null) && (style.bottom === undefined || style.bottom === null)) {\n if (verticalAlign === 'middle') {\n var _box3 = this.getBBoxSnapshot();\n vPos = {\n top: ((chartHeight || 0) - _box3.height) / 2\n };\n } else {\n vPos = verticalAlign === 'bottom' ? {\n bottom: margin && margin.bottom || 0\n } : {\n top: margin && margin.top || 0\n };\n }\n }\n return _objectSpread(_objectSpread({}, hPos), vPos);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props2 = this.props,\n content = _this$props2.content,\n width = _this$props2.width,\n height = _this$props2.height,\n wrapperStyle = _this$props2.wrapperStyle,\n payloadUniqBy = _this$props2.payloadUniqBy,\n payload = _this$props2.payload;\n var outerStyle = _objectSpread(_objectSpread({\n position: 'absolute',\n width: width || 'auto',\n height: height || 'auto'\n }, this.getDefaultPosition(wrapperStyle)), wrapperStyle);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"recharts-legend-wrapper\",\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: getUniqPayload(payload, payloadUniqBy, defaultUniqBy)\n })));\n }\n }], [{\n key: \"getWithHeight\",\n value: function getWithHeight(item, chartWidth) {\n var layout = item.props.layout;\n if (layout === 'vertical' && isNumber(item.props.height)) {\n return {\n height: item.props.height\n };\n }\n if (layout === 'horizontal') {\n return {\n width: item.props.width || chartWidth\n };\n }\n return null;\n }\n }]);\n return Legend;\n}(PureComponent);\n_defineProperty(Legend, \"displayName\", 'Legend');\n_defineProperty(Legend, \"defaultProps\", {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'bottom'\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _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(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar MULTIPLY_OR_DIVIDE_REGEX = /(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)([*/])(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)/;\nvar ADD_OR_SUBTRACT_REGEX = /(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)([+-])(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)/;\nvar CSS_LENGTH_UNIT_REGEX = /^px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q$/;\nvar NUM_SPLIT_REGEX = /(-?\\d+(?:\\.\\d+)?)([a-zA-Z%]+)?/;\nvar CONVERSION_RATES = {\n cm: 96 / 2.54,\n mm: 96 / 25.4,\n pt: 96 / 72,\n pc: 96 / 6,\n \"in\": 96,\n Q: 96 / (2.54 * 40),\n px: 1\n};\nvar FIXED_CSS_LENGTH_UNITS = Object.keys(CONVERSION_RATES);\nvar STR_NAN = 'NaN';\nfunction convertToPx(value, unit) {\n return value * CONVERSION_RATES[unit];\n}\nvar DecimalCSS = /*#__PURE__*/function () {\n function DecimalCSS(num, unit) {\n _classCallCheck(this, DecimalCSS);\n this.num = num;\n this.unit = unit;\n this.num = num;\n this.unit = unit;\n if (Number.isNaN(num)) {\n this.unit = '';\n }\n if (unit !== '' && !CSS_LENGTH_UNIT_REGEX.test(unit)) {\n this.num = NaN;\n this.unit = '';\n }\n if (FIXED_CSS_LENGTH_UNITS.includes(unit)) {\n this.num = convertToPx(num, unit);\n this.unit = 'px';\n }\n }\n _createClass(DecimalCSS, [{\n key: \"add\",\n value: function add(other) {\n if (this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num + other.num, this.unit);\n }\n }, {\n key: \"subtract\",\n value: function subtract(other) {\n if (this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num - other.num, this.unit);\n }\n }, {\n key: \"multiply\",\n value: function multiply(other) {\n if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num * other.num, this.unit || other.unit);\n }\n }, {\n key: \"divide\",\n value: function divide(other) {\n if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num / other.num, this.unit || other.unit);\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.num).concat(this.unit);\n }\n }, {\n key: \"isNaN\",\n value: function isNaN() {\n return Number.isNaN(this.num);\n }\n }], [{\n key: \"parse\",\n value: function parse(str) {\n var _NUM_SPLIT_REGEX$exec;\n var _ref = (_NUM_SPLIT_REGEX$exec = NUM_SPLIT_REGEX.exec(str)) !== null && _NUM_SPLIT_REGEX$exec !== void 0 ? _NUM_SPLIT_REGEX$exec : [],\n _ref2 = _slicedToArray(_ref, 3),\n numStr = _ref2[1],\n unit = _ref2[2];\n return new DecimalCSS(parseFloat(numStr), unit !== null && unit !== void 0 ? unit : '');\n }\n }]);\n return DecimalCSS;\n}();\nfunction calculateArithmetic(expr) {\n if (expr.includes(STR_NAN)) {\n return STR_NAN;\n }\n var newExpr = expr;\n while (newExpr.includes('*') || newExpr.includes('/')) {\n var _MULTIPLY_OR_DIVIDE_R;\n var _ref3 = (_MULTIPLY_OR_DIVIDE_R = MULTIPLY_OR_DIVIDE_REGEX.exec(newExpr)) !== null && _MULTIPLY_OR_DIVIDE_R !== void 0 ? _MULTIPLY_OR_DIVIDE_R : [],\n _ref4 = _slicedToArray(_ref3, 4),\n leftOperand = _ref4[1],\n operator = _ref4[2],\n rightOperand = _ref4[3];\n var lTs = DecimalCSS.parse(leftOperand !== null && leftOperand !== void 0 ? leftOperand : '');\n var rTs = DecimalCSS.parse(rightOperand !== null && rightOperand !== void 0 ? rightOperand : '');\n var result = operator === '*' ? lTs.multiply(rTs) : lTs.divide(rTs);\n if (result.isNaN()) {\n return STR_NAN;\n }\n newExpr = newExpr.replace(MULTIPLY_OR_DIVIDE_REGEX, result.toString());\n }\n while (newExpr.includes('+') || /.-\\d+(?:\\.\\d+)?/.test(newExpr)) {\n var _ADD_OR_SUBTRACT_REGE;\n var _ref5 = (_ADD_OR_SUBTRACT_REGE = ADD_OR_SUBTRACT_REGEX.exec(newExpr)) !== null && _ADD_OR_SUBTRACT_REGE !== void 0 ? _ADD_OR_SUBTRACT_REGE : [],\n _ref6 = _slicedToArray(_ref5, 4),\n _leftOperand = _ref6[1],\n _operator = _ref6[2],\n _rightOperand = _ref6[3];\n var _lTs = DecimalCSS.parse(_leftOperand !== null && _leftOperand !== void 0 ? _leftOperand : '');\n var _rTs = DecimalCSS.parse(_rightOperand !== null && _rightOperand !== void 0 ? _rightOperand : '');\n var _result = _operator === '+' ? _lTs.add(_rTs) : _lTs.subtract(_rTs);\n if (_result.isNaN()) {\n return STR_NAN;\n }\n newExpr = newExpr.replace(ADD_OR_SUBTRACT_REGEX, _result.toString());\n }\n return newExpr;\n}\nvar PARENTHESES_REGEX = /\\(([^()]*)\\)/;\nfunction calculateParentheses(expr) {\n var newExpr = expr;\n while (newExpr.includes('(')) {\n var _PARENTHESES_REGEX$ex = PARENTHESES_REGEX.exec(newExpr),\n _PARENTHESES_REGEX$ex2 = _slicedToArray(_PARENTHESES_REGEX$ex, 2),\n parentheticalExpression = _PARENTHESES_REGEX$ex2[1];\n newExpr = newExpr.replace(PARENTHESES_REGEX, calculateArithmetic(parentheticalExpression));\n }\n return newExpr;\n}\nfunction evaluateExpression(expression) {\n var newExpr = expression.replace(/\\s+/g, '');\n newExpr = calculateParentheses(newExpr);\n newExpr = calculateArithmetic(newExpr);\n return newExpr;\n}\nexport function safeEvaluateExpression(expression) {\n try {\n return evaluateExpression(expression);\n } catch (e) {\n /* istanbul ignore next */\n return STR_NAN;\n }\n}\nexport function reduceCSSCalc(expression) {\n var result = safeEvaluateExpression(expression.slice(5, -1));\n if (result === STR_NAN) {\n // notify the user\n return '';\n }\n return result;\n}","var _excluded = [\"x\", \"y\", \"lineHeight\", \"capHeight\", \"scaleToFit\", \"textAnchor\", \"verticalAnchor\", \"fill\"],\n _excluded2 = [\"dx\", \"dy\", \"angle\", \"className\", \"breakAll\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport React, { useMemo } from 'react';\nimport isNil from 'lodash/isNil';\nimport clsx from 'clsx';\nimport { isNumber, isNumOrStr } from '../util/DataUtils';\nimport { Global } from '../util/Global';\nimport { filterProps } from '../util/ReactUtils';\nimport { getStringSize } from '../util/DOMUtils';\nimport { reduceCSSCalc } from '../util/ReduceCSSCalc';\nvar BREAKING_SPACES = /[ \\f\\n\\r\\t\\v\\u2028\\u2029]+/;\nvar calculateWordWidths = function calculateWordWidths(_ref) {\n var children = _ref.children,\n breakAll = _ref.breakAll,\n style = _ref.style;\n try {\n var words = [];\n if (!isNil(children)) {\n if (breakAll) {\n words = children.toString().split('');\n } else {\n words = children.toString().split(BREAKING_SPACES);\n }\n }\n var wordsWithComputedWidth = words.map(function (word) {\n return {\n word: word,\n width: getStringSize(word, style).width\n };\n });\n var spaceWidth = breakAll ? 0 : getStringSize(\"\\xA0\", style).width;\n return {\n wordsWithComputedWidth: wordsWithComputedWidth,\n spaceWidth: spaceWidth\n };\n } catch (e) {\n return null;\n }\n};\nvar calculateWordsByLines = function calculateWordsByLines(_ref2, initialWordsWithComputedWith, spaceWidth, lineWidth, scaleToFit) {\n var maxLines = _ref2.maxLines,\n children = _ref2.children,\n style = _ref2.style,\n breakAll = _ref2.breakAll;\n var shouldLimitLines = isNumber(maxLines);\n var text = children;\n var calculate = function calculate() {\n var words = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return words.reduce(function (result, _ref3) {\n var word = _ref3.word,\n width = _ref3.width;\n var currentLine = result[result.length - 1];\n if (currentLine && (lineWidth == null || scaleToFit || currentLine.width + width + spaceWidth < Number(lineWidth))) {\n // Word can be added to an existing line\n currentLine.words.push(word);\n currentLine.width += width + spaceWidth;\n } else {\n // Add first word to line or word is too long to scaleToFit on existing line\n var newLine = {\n words: [word],\n width: width\n };\n result.push(newLine);\n }\n return result;\n }, []);\n };\n var originalResult = calculate(initialWordsWithComputedWith);\n var findLongestLine = function findLongestLine(words) {\n return words.reduce(function (a, b) {\n return a.width > b.width ? a : b;\n });\n };\n if (!shouldLimitLines) {\n return originalResult;\n }\n var suffix = '…';\n var checkOverflow = function checkOverflow(index) {\n var tempText = text.slice(0, index);\n var words = calculateWordWidths({\n breakAll: breakAll,\n style: style,\n children: tempText + suffix\n }).wordsWithComputedWidth;\n var result = calculate(words);\n var doesOverflow = result.length > maxLines || findLongestLine(result).width > Number(lineWidth);\n return [doesOverflow, result];\n };\n var start = 0;\n var end = text.length - 1;\n var iterations = 0;\n var trimmedResult;\n while (start <= end && iterations <= text.length - 1) {\n var middle = Math.floor((start + end) / 2);\n var prev = middle - 1;\n var _checkOverflow = checkOverflow(prev),\n _checkOverflow2 = _slicedToArray(_checkOverflow, 2),\n doesPrevOverflow = _checkOverflow2[0],\n result = _checkOverflow2[1];\n var _checkOverflow3 = checkOverflow(middle),\n _checkOverflow4 = _slicedToArray(_checkOverflow3, 1),\n doesMiddleOverflow = _checkOverflow4[0];\n if (!doesPrevOverflow && !doesMiddleOverflow) {\n start = middle + 1;\n }\n if (doesPrevOverflow && doesMiddleOverflow) {\n end = middle - 1;\n }\n if (!doesPrevOverflow && doesMiddleOverflow) {\n trimmedResult = result;\n break;\n }\n iterations++;\n }\n\n // Fallback to originalResult (result without trimming) if we cannot find the\n // where to trim. This should not happen :tm:\n return trimmedResult || originalResult;\n};\nvar getWordsWithoutCalculate = function getWordsWithoutCalculate(children) {\n var words = !isNil(children) ? children.toString().split(BREAKING_SPACES) : [];\n return [{\n words: words\n }];\n};\nvar getWordsByLines = function getWordsByLines(_ref4) {\n var width = _ref4.width,\n scaleToFit = _ref4.scaleToFit,\n children = _ref4.children,\n style = _ref4.style,\n breakAll = _ref4.breakAll,\n maxLines = _ref4.maxLines;\n // Only perform calculations if using features that require them (multiline, scaleToFit)\n if ((width || scaleToFit) && !Global.isSsr) {\n var wordsWithComputedWidth, spaceWidth;\n var wordWidths = calculateWordWidths({\n breakAll: breakAll,\n children: children,\n style: style\n });\n if (wordWidths) {\n var wcw = wordWidths.wordsWithComputedWidth,\n sw = wordWidths.spaceWidth;\n wordsWithComputedWidth = wcw;\n spaceWidth = sw;\n } else {\n return getWordsWithoutCalculate(children);\n }\n return calculateWordsByLines({\n breakAll: breakAll,\n children: children,\n maxLines: maxLines,\n style: style\n }, wordsWithComputedWidth, spaceWidth, width, scaleToFit);\n }\n return getWordsWithoutCalculate(children);\n};\nvar DEFAULT_FILL = '#808080';\nexport var Text = function Text(_ref5) {\n var _ref5$x = _ref5.x,\n propsX = _ref5$x === void 0 ? 0 : _ref5$x,\n _ref5$y = _ref5.y,\n propsY = _ref5$y === void 0 ? 0 : _ref5$y,\n _ref5$lineHeight = _ref5.lineHeight,\n lineHeight = _ref5$lineHeight === void 0 ? '1em' : _ref5$lineHeight,\n _ref5$capHeight = _ref5.capHeight,\n capHeight = _ref5$capHeight === void 0 ? '0.71em' : _ref5$capHeight,\n _ref5$scaleToFit = _ref5.scaleToFit,\n scaleToFit = _ref5$scaleToFit === void 0 ? false : _ref5$scaleToFit,\n _ref5$textAnchor = _ref5.textAnchor,\n textAnchor = _ref5$textAnchor === void 0 ? 'start' : _ref5$textAnchor,\n _ref5$verticalAnchor = _ref5.verticalAnchor,\n verticalAnchor = _ref5$verticalAnchor === void 0 ? 'end' : _ref5$verticalAnchor,\n _ref5$fill = _ref5.fill,\n fill = _ref5$fill === void 0 ? DEFAULT_FILL : _ref5$fill,\n props = _objectWithoutProperties(_ref5, _excluded);\n var wordsByLines = useMemo(function () {\n return getWordsByLines({\n breakAll: props.breakAll,\n children: props.children,\n maxLines: props.maxLines,\n scaleToFit: scaleToFit,\n style: props.style,\n width: props.width\n });\n }, [props.breakAll, props.children, props.maxLines, scaleToFit, props.style, props.width]);\n var dx = props.dx,\n dy = props.dy,\n angle = props.angle,\n className = props.className,\n breakAll = props.breakAll,\n textProps = _objectWithoutProperties(props, _excluded2);\n if (!isNumOrStr(propsX) || !isNumOrStr(propsY)) {\n return null;\n }\n var x = propsX + (isNumber(dx) ? dx : 0);\n var y = propsY + (isNumber(dy) ? dy : 0);\n var startDy;\n switch (verticalAnchor) {\n case 'start':\n startDy = reduceCSSCalc(\"calc(\".concat(capHeight, \")\"));\n break;\n case 'middle':\n startDy = reduceCSSCalc(\"calc(\".concat((wordsByLines.length - 1) / 2, \" * -\").concat(lineHeight, \" + (\").concat(capHeight, \" / 2))\"));\n break;\n default:\n startDy = reduceCSSCalc(\"calc(\".concat(wordsByLines.length - 1, \" * -\").concat(lineHeight, \")\"));\n break;\n }\n var transforms = [];\n if (scaleToFit) {\n var lineWidth = wordsByLines[0].width;\n var width = props.width;\n transforms.push(\"scale(\".concat((isNumber(width) ? width / lineWidth : 1) / lineWidth, \")\"));\n }\n if (angle) {\n transforms.push(\"rotate(\".concat(angle, \", \").concat(x, \", \").concat(y, \")\"));\n }\n if (transforms.length) {\n textProps.transform = transforms.join(' ');\n }\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, filterProps(textProps, true), {\n x: x,\n y: y,\n className: clsx('recharts-text', className),\n textAnchor: textAnchor,\n fill: fill.includes('url') ? DEFAULT_FILL : fill\n }), wordsByLines.map(function (line, index) {\n var words = line.words.join(breakAll ? '' : ' ');\n return /*#__PURE__*/React.createElement(\"tspan\", {\n x: x,\n dy: index === 0 ? startDy : lineHeight,\n key: words\n }, words);\n }));\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _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(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Default 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 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 return /*#__PURE__*/React.createElement(\"div\", {\n className: wrapperCN,\n style: finalStyle\n }, /*#__PURE__*/React.createElement(\"p\", {\n className: labelCN,\n style: finalLabelStyle\n }, /*#__PURE__*/React.isValidElement(finalLabel) ? finalLabel : \"\".concat(finalLabel)), renderContent());\n};","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(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport clsx from 'clsx';\nimport { translateStyle } from 'react-smooth';\nimport { isNumber } from '../DataUtils';\nvar CSS_CLASS_PREFIX = 'recharts-tooltip-wrapper';\nvar TOOLTIP_HIDDEN = {\n visibility: 'hidden'\n};\nexport function getTooltipCSSClassName(_ref) {\n var _clsx;\n var coordinate = _ref.coordinate,\n translateX = _ref.translateX,\n translateY = _ref.translateY;\n return clsx(CSS_CLASS_PREFIX, (_clsx = {}, _defineProperty(_clsx, \"\".concat(CSS_CLASS_PREFIX, \"-right\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX >= coordinate.x), _defineProperty(_clsx, \"\".concat(CSS_CLASS_PREFIX, \"-left\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX < coordinate.x), _defineProperty(_clsx, \"\".concat(CSS_CLASS_PREFIX, \"-bottom\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY >= coordinate.y), _defineProperty(_clsx, \"\".concat(CSS_CLASS_PREFIX, \"-top\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY < coordinate.y), _clsx));\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 translateStyle({\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 _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React, { PureComponent } from 'react';\nimport { translateStyle } from 'react-smooth';\nimport { getTooltipTranslate } from '../util/tooltip/translate';\nvar EPSILON = 1;\nexport var TooltipBoundingBox = /*#__PURE__*/function (_PureComponent) {\n _inherits(TooltipBoundingBox, _PureComponent);\n var _super = _createSuper(TooltipBoundingBox);\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 = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n dismissed: false,\n dismissedAtCoordinate: {\n x: 0,\n y: 0\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"lastBoundingBox\", {\n width: -1,\n height: -1\n });\n _defineProperty(_assertThisInitialized(_this), \"handleKeyDown\", function (event) {\n if (event.key === 'Escape') {\n var _this$props$coordinat, _this$props$coordinat2, _this$props$coordinat3, _this$props$coordinat4;\n _this.setState({\n dismissed: true,\n dismissedAtCoordinate: {\n x: (_this$props$coordinat = (_this$props$coordinat2 = _this.props.coordinate) === null || _this$props$coordinat2 === void 0 ? void 0 : _this$props$coordinat2.x) !== null && _this$props$coordinat !== void 0 ? _this$props$coordinat : 0,\n y: (_this$props$coordinat3 = (_this$props$coordinat4 = _this.props.coordinate) === null || _this$props$coordinat4 === void 0 ? void 0 : _this$props$coordinat4.y) !== null && _this$props$coordinat3 !== void 0 ? _this$props$coordinat3 : 0\n }\n });\n }\n });\n return _this;\n }\n _createClass(TooltipBoundingBox, [{\n key: \"updateBBox\",\n value: function updateBBox() {\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var box = this.wrapperNode.getBoundingClientRect();\n if (Math.abs(box.width - this.lastBoundingBox.width) > EPSILON || Math.abs(box.height - this.lastBoundingBox.height) > EPSILON) {\n this.lastBoundingBox.width = box.width;\n this.lastBoundingBox.height = box.height;\n }\n } else if (this.lastBoundingBox.width !== -1 || this.lastBoundingBox.height !== -1) {\n this.lastBoundingBox.width = -1;\n this.lastBoundingBox.height = -1;\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n document.addEventListener('keydown', this.handleKeyDown);\n this.updateBBox();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n document.removeEventListener('keydown', this.handleKeyDown);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var _this$props$coordinat5, _this$props$coordinat6;\n if (this.props.active) {\n this.updateBBox();\n }\n if (!this.state.dismissed) {\n return;\n }\n if (((_this$props$coordinat5 = this.props.coordinate) === null || _this$props$coordinat5 === void 0 ? void 0 : _this$props$coordinat5.x) !== this.state.dismissedAtCoordinate.x || ((_this$props$coordinat6 = this.props.coordinate) === null || _this$props$coordinat6 === void 0 ? void 0 : _this$props$coordinat6.y) !== this.state.dismissedAtCoordinate.y) {\n this.state.dismissed = false;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props = this.props,\n active = _this$props.active,\n allowEscapeViewBox = _this$props.allowEscapeViewBox,\n animationDuration = _this$props.animationDuration,\n animationEasing = _this$props.animationEasing,\n children = _this$props.children,\n coordinate = _this$props.coordinate,\n hasPayload = _this$props.hasPayload,\n isAnimationActive = _this$props.isAnimationActive,\n offset = _this$props.offset,\n position = _this$props.position,\n reverseDirection = _this$props.reverseDirection,\n useTranslate3d = _this$props.useTranslate3d,\n viewBox = _this$props.viewBox,\n wrapperStyle = _this$props.wrapperStyle;\n var _getTooltipTranslate = getTooltipTranslate({\n allowEscapeViewBox: allowEscapeViewBox,\n coordinate: coordinate,\n offsetTopLeft: offset,\n position: position,\n reverseDirection: reverseDirection,\n tooltipBox: {\n height: this.lastBoundingBox.height,\n width: this.lastBoundingBox.width\n },\n useTranslate3d: useTranslate3d,\n viewBox: viewBox\n }),\n cssClasses = _getTooltipTranslate.cssClasses,\n cssProperties = _getTooltipTranslate.cssProperties;\n var outerStyle = _objectSpread(_objectSpread(_objectSpread({}, isAnimationActive && active && translateStyle({\n transition: \"transform \".concat(animationDuration, \"ms \").concat(animationEasing)\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 role: \"dialog\",\n className: cssClasses,\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, children)\n );\n }\n }]);\n return TooltipBoundingBox;\n}(PureComponent);","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Tooltip\n */\nimport React, { PureComponent } from 'react';\nimport { DefaultTooltipContent } from './DefaultTooltipContent';\nimport { TooltipBoundingBox } from './TooltipBoundingBox';\nimport { Global } from '../util/Global';\nimport { getUniqPayload } from '../util/payload/getUniqPayload';\nfunction defaultUniqBy(entry) {\n return entry.dataKey;\n}\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n if (typeof content === 'function') {\n return /*#__PURE__*/React.createElement(content, props);\n }\n return /*#__PURE__*/React.createElement(DefaultTooltipContent, props);\n}\nexport var Tooltip = /*#__PURE__*/function (_PureComponent) {\n _inherits(Tooltip, _PureComponent);\n var _super = _createSuper(Tooltip);\n function Tooltip() {\n _classCallCheck(this, Tooltip);\n return _super.apply(this, arguments);\n }\n _createClass(Tooltip, [{\n key: \"render\",\n value: function render() {\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;\n }), payloadUniqBy, defaultUniqBy);\n }\n var hasPayload = finalPayload.length > 0;\n return /*#__PURE__*/React.createElement(TooltipBoundingBox, {\n allowEscapeViewBox: allowEscapeViewBox,\n animationDuration: animationDuration,\n animationEasing: animationEasing,\n isAnimationActive: isAnimationActive,\n active: active,\n coordinate: coordinate,\n hasPayload: hasPayload,\n offset: offset,\n position: position,\n reverseDirection: reverseDirection,\n useTranslate3d: useTranslate3d,\n viewBox: viewBox,\n wrapperStyle: wrapperStyle\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: finalPayload\n })));\n }\n }]);\n return Tooltip;\n}(PureComponent);\n_defineProperty(Tooltip, \"displayName\", 'Tooltip');\n_defineProperty(Tooltip, \"defaultProps\", {\n allowEscapeViewBox: {\n x: false,\n y: false\n },\n animationDuration: 400,\n animationEasing: 'ease',\n contentStyle: {},\n coordinate: {\n x: 0,\n y: 0\n },\n cursor: true,\n cursorStyle: {},\n filterNull: true,\n isAnimationActive: !Global.isSsr,\n itemStyle: {},\n labelStyle: {},\n offset: 10,\n reverseDirection: {\n x: false,\n y: false\n },\n separator: ' : ',\n trigger: 'hover',\n useTranslate3d: false,\n viewBox: {\n x: 0,\n y: 0,\n height: 0,\n width: 0\n },\n wrapperStyle: {}\n});","var _excluded = [\"children\", \"className\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/**\n * @fileOverview Layer\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nexport var Layer = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var children = props.children,\n className = props.className,\n others = _objectWithoutProperties(props, _excluded);\n var layerClass = clsx('recharts-layer', className);\n return /*#__PURE__*/React.createElement(\"g\", _extends({\n className: layerClass\n }, filterProps(others, true), {\n ref: ref\n }), children);\n});","var _excluded = [\"children\", \"width\", \"height\", \"viewBox\", \"className\", \"style\", \"title\", \"desc\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/**\n * @fileOverview Surface\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nexport function Surface(props) {\n var children = props.children,\n width = props.width,\n height = props.height,\n viewBox = props.viewBox,\n className = props.className,\n style = props.style,\n title = props.title,\n desc = props.desc,\n others = _objectWithoutProperties(props, _excluded);\n var svgView = viewBox || {\n width: width,\n height: height,\n x: 0,\n y: 0\n };\n var layerClass = clsx('recharts-surface', className);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({}, filterProps(others, true, 'svg'), {\n className: layerClass,\n width: width,\n height: height,\n style: style,\n viewBox: \"\".concat(svgView.x, \" \").concat(svgView.y, \" \").concat(svgView.width, \" \").concat(svgView.height)\n }), /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"desc\", null, desc), children);\n}","export default function() {}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import pointRadial from \"../pointRadial.js\";\n\nclass Bump {\n constructor(context, x) {\n this._context = context;\n this._x = x;\n }\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n }\n point(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: {\n this._point = 1;\n if (this._line) this._context.lineTo(x, y);\n else this._context.moveTo(x, y);\n break;\n }\n case 1: this._point = 2; // falls through\n default: {\n if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y);\n else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y);\n break;\n }\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nclass BumpRadial {\n constructor(context) {\n this._context = context;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {}\n point(x, y) {\n x = +x, y = +y;\n if (this._point === 0) {\n this._point = 1;\n } else {\n const p0 = pointRadial(this._x0, this._y0);\n const p1 = pointRadial(this._x0, this._y0 = (this._y0 + y) / 2);\n const p2 = pointRadial(x, this._y0);\n const p3 = pointRadial(x, y);\n this._context.moveTo(...p0);\n this._context.bezierCurveTo(...p1, ...p2, ...p3);\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nexport function bumpX(context) {\n return new Bump(context, true);\n}\n\nexport function bumpY(context) {\n return new Bump(context, false);\n}\n\nexport function bumpRadial(context) {\n return new BumpRadial(context);\n}\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x0, y0, y1) {\n var x1 = null,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(area);\n\n x0 = typeof x0 === \"function\" ? x0 : (x0 === undefined) ? pointX : constant(+x0);\n y0 = typeof y0 === \"function\" ? y0 : (y0 === undefined) ? constant(0) : constant(+y0);\n y1 = typeof y1 === \"function\" ? y1 : (y1 === undefined) ? pointY : constant(+y1);\n\n function area(data) {\n var i,\n j,\n k,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\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(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Curve\n */\nimport React from 'react';\nimport { line as shapeLine, area as shapeArea, curveBasisClosed, curveBasisOpen, curveBasis, curveBumpX, curveBumpY, curveLinearClosed, curveLinear, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from 'victory-vendor/d3-shape';\nimport 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\n * @return {String} path\n */\nvar getPath = function getPath(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'linear' : _ref$type,\n _ref$points = _ref.points,\n points = _ref$points === void 0 ? [] : _ref$points,\n baseLine = _ref.baseLine,\n layout = _ref.layout,\n _ref$connectNulls = _ref.connectNulls,\n connectNulls = _ref$connectNulls === void 0 ? false : _ref$connectNulls;\n var curveFactory = getCurveFactory(type, layout);\n var formatPoints = connectNulls ? points.filter(function (entry) {\n return defined(entry);\n }) : points;\n var lineFunction;\n if (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), 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), 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(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Rectangle\n */\nimport React, { useEffect, useRef, useState } from 'react';\nimport 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(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Sector\n */\nimport React from 'react';\nimport 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};","import {pi, sqrt, tau} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst tan30 = sqrt(1 / 3);\nconst tan30_2 = tan30 * 2;\n\nexport default {\n draw(context, size) {\n const y = sqrt(size / tan30_2);\n const x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const w = sqrt(size);\n const x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","import {sin, cos, sqrt, pi, tau} from \"../math.js\";\n\nconst ka = 0.89081309152928522810;\nconst kr = sin(pi / 10) / sin(7 * pi / 10);\nconst kx = sin(tau / 10) * kr;\nconst ky = -cos(tau / 10) * kr;\n\nexport default {\n draw(context, size) {\n const r = sqrt(size * ka);\n const x = kx * r;\n const y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (let i = 1; i < 5; ++i) {\n const a = tau * i / 5;\n const c = cos(a);\n const s = sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n draw(context, size) {\n const y = -sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst c = -0.5;\nconst s = sqrt(3) / 2;\nconst k = 1 / sqrt(12);\nconst a = (k / 2 + 1) * 3;\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / a);\n const x0 = r / 2, y0 = r * k;\n const x1 = x0, y1 = r * k + r;\n const x2 = -x1, y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n","import {min, sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n draw(context, size) {\n const r = sqrt(size + min(size / 28, 0.75)) * 0.59436;\n const t = r / 2;\n const u = t * sqrt3;\n context.moveTo(0, r);\n context.lineTo(0, -r);\n context.moveTo(-u, -t);\n context.lineTo(u, t);\n context.moveTo(-u, t);\n context.lineTo(u, -t);\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n draw(context, size) {\n const s = sqrt(size) * 0.6824;\n const t = s / 2;\n const u = (s * sqrt3) / 2; // cos(Math.PI / 6)\n context.moveTo(0, -s);\n context.lineTo(u, t);\n context.lineTo(-u, t);\n context.closePath();\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 = [\"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(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/**\n * @fileOverview Curve\n */\nimport React from 'react';\nimport 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;","import constant from \"./constant.js\";\nimport {withPath} from \"./path.js\";\nimport asterisk from \"./symbol/asterisk.js\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport diamond2 from \"./symbol/diamond2.js\";\nimport plus from \"./symbol/plus.js\";\nimport square from \"./symbol/square.js\";\nimport square2 from \"./symbol/square2.js\";\nimport star from \"./symbol/star.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport triangle2 from \"./symbol/triangle2.js\";\nimport wye from \"./symbol/wye.js\";\nimport times from \"./symbol/times.js\";\n\n// These symbols are designed to be filled.\nexport const symbolsFill = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\n// These symbols are designed to be stroked (with a width of 1.5px and round caps).\nexport const symbolsStroke = [\n circle,\n plus,\n times,\n triangle2,\n asterisk,\n square2,\n diamond2\n];\n\nexport default function Symbol(type, size) {\n let context = null,\n path = withPath(symbol);\n\n type = typeof type === \"function\" ? type : constant(type || circle);\n size = typeof size === \"function\" ? size : constant(size === undefined ? 64 : +size);\n\n function symbol() {\n let buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\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(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Rectangle\n */\nimport React, { useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport Animate from 'react-smooth';\nimport { filterProps } from '../util/ReactUtils';\nvar getTrapezoidPath = function getTrapezoidPath(x, y, upperWidth, lowerWidth, height) {\n var widthGap = upperWidth - lowerWidth;\n var path;\n path = \"M \".concat(x, \",\").concat(y);\n path += \"L \".concat(x + upperWidth, \",\").concat(y);\n path += \"L \".concat(x + upperWidth - widthGap / 2, \",\").concat(y + height);\n path += \"L \".concat(x + upperWidth - widthGap / 2 - lowerWidth, \",\").concat(y + height);\n path += \"L \".concat(x, \",\").concat(y, \" Z\");\n return path;\n};\nvar defaultProps = {\n x: 0,\n y: 0,\n upperWidth: 0,\n lowerWidth: 0,\n height: 0,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};\nexport var Trapezoid = function Trapezoid(props) {\n var trapezoidProps = _objectSpread(_objectSpread({}, defaultProps), props);\n var pathRef = useRef();\n var _useState = useState(-1),\n _useState2 = _slicedToArray(_useState, 2),\n totalLength = _useState2[0],\n setTotalLength = _useState2[1];\n useEffect(function () {\n if (pathRef.current && pathRef.current.getTotalLength) {\n try {\n var pathTotalLength = pathRef.current.getTotalLength();\n if (pathTotalLength) {\n setTotalLength(pathTotalLength);\n }\n } catch (err) {\n // calculate total length error\n }\n }\n }, []);\n var x = trapezoidProps.x,\n y = trapezoidProps.y,\n upperWidth = trapezoidProps.upperWidth,\n lowerWidth = trapezoidProps.lowerWidth,\n height = trapezoidProps.height,\n className = trapezoidProps.className;\n var animationEasing = trapezoidProps.animationEasing,\n animationDuration = trapezoidProps.animationDuration,\n animationBegin = trapezoidProps.animationBegin,\n isUpdateAnimationActive = trapezoidProps.isUpdateAnimationActive;\n if (x !== +x || y !== +y || upperWidth !== +upperWidth || lowerWidth !== +lowerWidth || height !== +height || upperWidth === 0 && lowerWidth === 0 || height === 0) {\n return null;\n }\n var layerClass = clsx('recharts-trapezoid', className);\n if (!isUpdateAnimationActive) {\n return /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(trapezoidProps, true), {\n className: layerClass,\n d: getTrapezoidPath(x, y, upperWidth, lowerWidth, height)\n })));\n }\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: {\n upperWidth: 0,\n lowerWidth: 0,\n height: height,\n x: x,\n y: y\n },\n to: {\n upperWidth: upperWidth,\n lowerWidth: lowerWidth,\n height: height,\n x: x,\n y: y\n },\n duration: animationDuration,\n animationEasing: animationEasing,\n isActive: isUpdateAnimationActive\n }, function (_ref) {\n var currUpperWidth = _ref.upperWidth,\n currLowerWidth = _ref.lowerWidth,\n currHeight = _ref.height,\n currX = _ref.x,\n currY = _ref.y;\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\"),\n to: \"\".concat(totalLength, \"px 0px\"),\n attributeName: \"strokeDasharray\",\n begin: animationBegin,\n duration: animationDuration,\n easing: animationEasing\n }, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(trapezoidProps, true), {\n className: layerClass,\n d: getTrapezoidPath(currX, currY, currUpperWidth, currLowerWidth, currHeight),\n ref: pathRef\n })));\n });\n};","var _excluded = [\"option\", \"shapeType\", \"propTransformer\", \"activeClassName\", \"isActive\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React, { isValidElement, cloneElement } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport isPlainObject from 'lodash/isPlainObject';\nimport isBoolean from 'lodash/isBoolean';\nimport isEqual from 'lodash/isEqual';\nimport { Rectangle } from '../shape/Rectangle';\nimport { Trapezoid } from '../shape/Trapezoid';\nimport { Sector } from '../shape/Sector';\nimport { Layer } from '../container/Layer';\nimport { Symbols } from '../shape/Symbols';\n\n/**\n * This is an abstraction for rendering a user defined prop for a customized shape in several forms.\n *\n * is the root and will handle taking in:\n * - an object of svg properties\n * - a boolean\n * - a render prop(inline function that returns jsx)\n * - a react element\n *\n * is a subcomponent of and used to match a component\n * to the value of props.shapeType that is passed to the root.\n *\n */\n\nfunction defaultPropTransformer(option, props) {\n return _objectSpread(_objectSpread({}, props), option);\n}\nfunction isSymbolsProps(shapeType, _elementProps) {\n return shapeType === 'symbols';\n}\nfunction ShapeSelector(_ref) {\n var shapeType = _ref.shapeType,\n elementProps = _ref.elementProps;\n switch (shapeType) {\n case 'rectangle':\n return /*#__PURE__*/React.createElement(Rectangle, elementProps);\n case 'trapezoid':\n return /*#__PURE__*/React.createElement(Trapezoid, elementProps);\n case 'sector':\n return /*#__PURE__*/React.createElement(Sector, elementProps);\n case 'symbols':\n if (isSymbolsProps(shapeType, elementProps)) {\n return /*#__PURE__*/React.createElement(Symbols, elementProps);\n }\n break;\n default:\n return null;\n }\n}\nexport function getPropsFromShapeOption(option) {\n if ( /*#__PURE__*/isValidElement(option)) {\n return option.props;\n }\n return option;\n}\nexport function Shape(_ref2) {\n var option = _ref2.option,\n shapeType = _ref2.shapeType,\n _ref2$propTransformer = _ref2.propTransformer,\n propTransformer = _ref2$propTransformer === void 0 ? defaultPropTransformer : _ref2$propTransformer,\n _ref2$activeClassName = _ref2.activeClassName,\n activeClassName = _ref2$activeClassName === void 0 ? 'recharts-active-shape' : _ref2$activeClassName,\n isActive = _ref2.isActive,\n props = _objectWithoutProperties(_ref2, _excluded);\n var shape;\n if ( /*#__PURE__*/isValidElement(option)) {\n shape = /*#__PURE__*/cloneElement(option, _objectSpread(_objectSpread({}, props), getPropsFromShapeOption(option)));\n } else if (isFunction(option)) {\n shape = option(props);\n } else if (isPlainObject(option) && !isBoolean(option)) {\n var nextProps = propTransformer(option, props);\n shape = /*#__PURE__*/React.createElement(ShapeSelector, {\n shapeType: shapeType,\n elementProps: nextProps\n });\n } else {\n var elementProps = props;\n shape = /*#__PURE__*/React.createElement(ShapeSelector, {\n shapeType: shapeType,\n elementProps: elementProps\n });\n }\n if (isActive) {\n return /*#__PURE__*/React.createElement(Layer, {\n className: activeClassName\n }, shape);\n }\n return shape;\n}\n\n/**\n * This is an abstraction to handle identifying the active index from a tooltip mouse interaction\n */\n\nexport function isFunnel(graphicalItem, _item) {\n return _item != null && 'trapezoids' in graphicalItem.props;\n}\nexport function isPie(graphicalItem, _item) {\n return _item != null && 'sectors' in graphicalItem.props;\n}\nexport function isScatter(graphicalItem, _item) {\n return _item != null && 'points' in graphicalItem.props;\n}\nexport function compareFunnel(shapeData, activeTooltipItem) {\n var _activeTooltipItem$la, _activeTooltipItem$la2;\n var xMatches = shapeData.x === (activeTooltipItem === null || activeTooltipItem === void 0 || (_activeTooltipItem$la = activeTooltipItem.labelViewBox) === null || _activeTooltipItem$la === void 0 ? void 0 : _activeTooltipItem$la.x) || shapeData.x === activeTooltipItem.x;\n var yMatches = shapeData.y === (activeTooltipItem === null || activeTooltipItem === void 0 || (_activeTooltipItem$la2 = activeTooltipItem.labelViewBox) === null || _activeTooltipItem$la2 === void 0 ? void 0 : _activeTooltipItem$la2.y) || shapeData.y === activeTooltipItem.y;\n return xMatches && yMatches;\n}\nexport function comparePie(shapeData, activeTooltipItem) {\n var startAngleMatches = shapeData.endAngle === activeTooltipItem.endAngle;\n var endAngleMatches = shapeData.startAngle === activeTooltipItem.startAngle;\n return startAngleMatches && endAngleMatches;\n}\nexport function compareScatter(shapeData, activeTooltipItem) {\n var xMatches = shapeData.x === activeTooltipItem.x;\n var yMatches = shapeData.y === activeTooltipItem.y;\n var zMatches = shapeData.z === activeTooltipItem.z;\n return xMatches && yMatches && zMatches;\n}\nfunction getComparisonFn(graphicalItem, activeItem) {\n var comparison;\n if (isFunnel(graphicalItem, activeItem)) {\n comparison = compareFunnel;\n } else if (isPie(graphicalItem, activeItem)) {\n comparison = comparePie;\n } else if (isScatter(graphicalItem, activeItem)) {\n comparison = compareScatter;\n }\n return comparison;\n}\nfunction getShapeDataKey(graphicalItem, activeItem) {\n var shapeKey;\n if (isFunnel(graphicalItem, activeItem)) {\n shapeKey = 'trapezoids';\n } else if (isPie(graphicalItem, activeItem)) {\n shapeKey = 'sectors';\n } else if (isScatter(graphicalItem, activeItem)) {\n shapeKey = 'points';\n }\n return shapeKey;\n}\nfunction getActiveShapeTooltipPayload(graphicalItem, activeItem) {\n if (isFunnel(graphicalItem, activeItem)) {\n var _activeItem$tooltipPa;\n return (_activeItem$tooltipPa = activeItem.tooltipPayload) === null || _activeItem$tooltipPa === void 0 || (_activeItem$tooltipPa = _activeItem$tooltipPa[0]) === null || _activeItem$tooltipPa === void 0 || (_activeItem$tooltipPa = _activeItem$tooltipPa.payload) === null || _activeItem$tooltipPa === void 0 ? void 0 : _activeItem$tooltipPa.payload;\n }\n if (isPie(graphicalItem, activeItem)) {\n var _activeItem$tooltipPa2;\n return (_activeItem$tooltipPa2 = activeItem.tooltipPayload) === null || _activeItem$tooltipPa2 === void 0 || (_activeItem$tooltipPa2 = _activeItem$tooltipPa2[0]) === null || _activeItem$tooltipPa2 === void 0 || (_activeItem$tooltipPa2 = _activeItem$tooltipPa2.payload) === null || _activeItem$tooltipPa2 === void 0 ? void 0 : _activeItem$tooltipPa2.payload;\n }\n if (isScatter(graphicalItem, activeItem)) {\n return activeItem.payload;\n }\n return {};\n}\n/**\n *\n * @param {GetActiveShapeIndexForTooltip} arg an object of incoming attributes from Tooltip\n * @returns {number}\n *\n * To handle possible duplicates in the data set,\n * match both the data value of the active item to a data value on a graph item,\n * and match the mouse coordinates of the active item to the coordinates of in a particular components shape data.\n * This assumes equal lengths of shape objects to data items.\n */\nexport function getActiveShapeIndexForTooltip(_ref3) {\n var activeTooltipItem = _ref3.activeTooltipItem,\n graphicalItem = _ref3.graphicalItem,\n itemData = _ref3.itemData;\n var shapeKey = getShapeDataKey(graphicalItem, activeTooltipItem);\n var tooltipPayload = getActiveShapeTooltipPayload(graphicalItem, activeTooltipItem);\n var activeItemMatches = itemData.filter(function (datum, dataIndex) {\n var valuesMatch = isEqual(tooltipPayload, datum);\n var mouseCoordinateMatches = graphicalItem.props[shapeKey].filter(function (shapeData) {\n var comparison = getComparisonFn(graphicalItem, activeTooltipItem);\n return comparison(shapeData, activeTooltipItem);\n });\n\n // get the last index in case of multiple matches\n var indexOfMouseCoordinates = graphicalItem.props[shapeKey].indexOf(mouseCoordinateMatches[mouseCoordinateMatches.length - 1]);\n var coordinatesMatch = dataIndex === indexOfMouseCoordinates;\n return valuesMatch && coordinatesMatch;\n });\n\n // get the last index in case of multiple matches\n var activeIndex = itemData.indexOf(activeItemMatches[activeItemMatches.length - 1]);\n return activeIndex;\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport 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 var smallestDistanceInPercent = smallestDistanceBetweenValues / diff;\n var rangeWidth = axis.layout === 'vertical' ? offset.height : offset.width;\n if (axis.padding === 'gap') {\n calculatedPadding = smallestDistanceInPercent * rangeWidth / 2;\n }\n if (axis.padding === 'no-gap') {\n var gap = getPercentValue(props.barCategoryGap, smallestDistanceInPercent * rangeWidth);\n var halfBand = smallestDistanceInPercent * rangeWidth / 2;\n calculatedPadding = halfBand - gap - (halfBand - gap) / rangeWidth * gap;\n }\n }\n if (axisType === 'xAxis') {\n range = [offset.left + (padding.left || 0) + (calculatedPadding || 0), offset.left + offset.width - (padding.right || 0) - (calculatedPadding || 0)];\n } else if (axisType === 'yAxis') {\n range = layout === 'horizontal' ? [offset.top + offset.height - (padding.bottom || 0), offset.top + (padding.top || 0)] : [offset.top + (padding.top || 0) + (calculatedPadding || 0), offset.top + offset.height - (padding.bottom || 0) - (calculatedPadding || 0)];\n } else {\n range = axis.range;\n }\n if (reversed) {\n range = [range[1], range[0]];\n }\n var _parseScale = parseScale(axis, chartName, hasBar),\n scale = _parseScale.scale,\n realScaleType = _parseScale.realScaleType;\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n if (axisType === 'xAxis') {\n needSpace = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;\n x = offset.left;\n y = steps[offsetKey] - needSpace * axis.height;\n } else if (axisType === 'yAxis') {\n needSpace = orientation === 'left' && !mirror || orientation === 'right' && mirror;\n x = steps[offsetKey] - needSpace * axis.width;\n y = offset.top;\n }\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n realScaleType: realScaleType,\n x: x,\n y: y,\n scale: scale,\n width: axisType === 'xAxis' ? offset.width : axis.width,\n height: axisType === 'yAxis' ? offset.height : axis.height\n });\n finalAxis.bandSize = getBandSizeOfAxis(finalAxis, ticks);\n if (!axis.hide && axisType === 'xAxis') {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.height;\n } else if (!axis.hide) {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.width;\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var rectWithPoints = function rectWithPoints(_ref, _ref2) {\n var x1 = _ref.x,\n y1 = _ref.y;\n var x2 = _ref2.x,\n y2 = _ref2.y;\n return {\n x: Math.min(x1, x2),\n y: Math.min(y1, y2),\n width: Math.abs(x2 - x1),\n height: Math.abs(y2 - y1)\n };\n};\n\n/**\n * Compute the x, y, width, and height of a box from two reference points.\n * @param {Object} coords x1, x2, y1, and y2\n * @return {Object} object\n */\nexport var rectWithCoords = function rectWithCoords(_ref3) {\n var x1 = _ref3.x1,\n y1 = _ref3.y1,\n x2 = _ref3.x2,\n y2 = _ref3.y2;\n return rectWithPoints({\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n });\n};\nexport var ScaleHelper = /*#__PURE__*/function () {\n function ScaleHelper(scale) {\n _classCallCheck(this, ScaleHelper);\n this.scale = scale;\n }\n _createClass(ScaleHelper, [{\n key: \"domain\",\n get: function get() {\n return this.scale.domain;\n }\n }, {\n key: \"range\",\n get: function get() {\n return this.scale.range;\n }\n }, {\n key: \"rangeMin\",\n get: function get() {\n return this.range()[0];\n }\n }, {\n key: \"rangeMax\",\n get: function get() {\n return this.range()[1];\n }\n }, {\n key: \"bandwidth\",\n get: function get() {\n return this.scale.bandwidth;\n }\n }, {\n key: \"apply\",\n value: function apply(value) {\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref4.bandAware,\n position = _ref4.position;\n if (value === undefined) {\n return undefined;\n }\n if (position) {\n switch (position) {\n case 'start':\n {\n return this.scale(value);\n }\n case 'middle':\n {\n var offset = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + offset;\n }\n case 'end':\n {\n var _offset = this.bandwidth ? this.bandwidth() : 0;\n return this.scale(value) + _offset;\n }\n default:\n {\n return this.scale(value);\n }\n }\n }\n if (bandAware) {\n var _offset2 = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + _offset2;\n }\n return this.scale(value);\n }\n }, {\n key: \"isInRange\",\n value: function isInRange(value) {\n var range = this.range();\n var first = range[0];\n var last = range[range.length - 1];\n return first <= last ? value >= first && value <= last : value >= last && value <= first;\n }\n }], [{\n key: \"create\",\n value: function create(obj) {\n return new ScaleHelper(obj);\n }\n }]);\n return ScaleHelper;\n}();\n_defineProperty(ScaleHelper, \"EPS\", 1e-4);\nexport var createLabeledScales = function createLabeledScales(options) {\n var scales = Object.keys(options).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, ScaleHelper.create(options[key])));\n }, {});\n return _objectSpread(_objectSpread({}, scales), {}, {\n apply: function apply(coord) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref5.bandAware,\n position = _ref5.position;\n return mapValues(coord, function (value, label) {\n return scales[label].apply(value, {\n bandAware: bandAware,\n position: position\n });\n });\n },\n isInRange: function isInRange(coord) {\n return every(coord, function (value, label) {\n return scales[label].isInRange(value);\n });\n }\n });\n};\n\n/** Normalizes the angle so that 0 <= angle < 180.\n * @param {number} angle Angle in degrees.\n * @return {number} the normalized angle with a value of at least 0 and never greater or equal to 180. */\nexport function normalizeAngle(angle) {\n return (angle % 180 + 180) % 180;\n}\n\n/** Calculates the width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.\n * @param {Object} size Width and height of the text in a horizontal position.\n * @param {number} angle Angle in degrees in which the text is displayed.\n * @return {number} The width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.\n */\nexport var getAngledRectangleWidth = function getAngledRectangleWidth(_ref6) {\n var width = _ref6.width,\n height = _ref6.height;\n var angle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Ensure angle is >= 0 && < 180\n var normalizedAngle = normalizeAngle(angle);\n var angleRadians = normalizedAngle * Math.PI / 180;\n\n /* Depending on the height and width of the rectangle, we may need to use different formulas to calculate the angled\n * width. This threshold defines when each formula should kick in. */\n var angleThreshold = Math.atan(height / width);\n var angledWidth = angleRadians > angleThreshold && angleRadians < Math.PI - angleThreshold ? height / Math.sin(angleRadians) : width / Math.cos(angleRadians);\n return Math.abs(angledWidth);\n};","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nfunction stackSeries(key) {\n const series = [];\n series.key = key;\n return series;\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var sz = Array.from(keys.apply(this, arguments), stackSeries),\n i, n = sz.length, j = -1,\n oz;\n\n for (const d of data) {\n for (i = 0, ++j; i < n; ++i) {\n (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;\n }\n }\n\n for (i = 0, oz = array(order(sz)); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar identity = function identity(i) {\n return i;\n};\n\nexport var PLACE_HOLDER = {\n '@@functional/placeholder': true\n};\n\nvar isPlaceHolder = function isPlaceHolder(val) {\n return val === PLACE_HOLDER;\n};\n\nvar curry0 = function curry0(fn) {\n return function _curried() {\n if (arguments.length === 0 || arguments.length === 1 && isPlaceHolder(arguments.length <= 0 ? undefined : arguments[0])) {\n return _curried;\n }\n\n return fn.apply(void 0, arguments);\n };\n};\n\nvar curryN = function curryN(n, fn) {\n if (n === 1) {\n return fn;\n }\n\n return curry0(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var argsLength = args.filter(function (arg) {\n return arg !== PLACE_HOLDER;\n }).length;\n\n if (argsLength >= n) {\n return fn.apply(void 0, args);\n }\n\n return curryN(n - argsLength, curry0(function () {\n for (var _len2 = arguments.length, restArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n restArgs[_key2] = arguments[_key2];\n }\n\n var newArgs = args.map(function (arg) {\n return isPlaceHolder(arg) ? restArgs.shift() : arg;\n });\n return fn.apply(void 0, _toConsumableArray(newArgs).concat(restArgs));\n }));\n });\n};\n\nexport var curry = function curry(fn) {\n return curryN(fn.length, fn);\n};\nexport var range = function range(begin, end) {\n var arr = [];\n\n for (var i = begin; i < end; ++i) {\n arr[i - begin] = i;\n }\n\n return arr;\n};\nexport var map = curry(function (fn, arr) {\n if (Array.isArray(arr)) {\n return arr.map(fn);\n }\n\n return Object.keys(arr).map(function (key) {\n return arr[key];\n }).map(fn);\n});\nexport var compose = function compose() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n if (!args.length) {\n return identity;\n }\n\n var fns = args.reverse(); // first function can receive multiply arguments\n\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(void 0, arguments));\n };\n};\nexport var reverse = function reverse(arr) {\n if (Array.isArray(arr)) {\n return arr.reverse();\n } // can be string\n\n\n return arr.split('').reverse.join('');\n};\nexport var memoize = function memoize(fn) {\n var lastArgs = null;\n var lastResult = null;\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n if (lastArgs && args.every(function (val, i) {\n return val === lastArgs[i];\n })) {\n return lastResult;\n }\n\n lastArgs = args;\n lastResult = fn.apply(void 0, args);\n return lastResult;\n };\n};","/**\n * @fileOverview 一些公用的运算方法\n * @author xile611\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { curry } from './utils';\n/**\n * 获取数值的位数\n * 其中绝对值属于区间[0.1, 1), 得到的值为0\n * 绝对值属于区间[0.01, 0.1),得到的位数为 -1\n * 绝对值属于区间[0.001, 0.01),得到的位数为 -2\n *\n * @param {Number} value 数值\n * @return {Integer} 位数\n */\n\nfunction getDigitCount(value) {\n var result;\n\n if (value === 0) {\n result = 1;\n } else {\n result = Math.floor(new Decimal(value).abs().log(10).toNumber()) + 1;\n }\n\n return result;\n}\n/**\n * 按照固定的步长获取[start, end)这个区间的数据\n * 并且需要处理js计算精度的问题\n *\n * @param {Decimal} start 起点\n * @param {Decimal} end 终点,不包含该值\n * @param {Decimal} step 步长\n * @return {Array} 若干数值\n */\n\n\nfunction rangeStep(start, end, step) {\n var num = new Decimal(start);\n var i = 0;\n var result = []; // magic number to prevent infinite loop\n\n while (num.lt(end) && i < 100000) {\n result.push(num.toNumber());\n num = num.add(step);\n i++;\n }\n\n return result;\n}\n/**\n * 对数值进行线性插值\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} t [0, 1]内的某个值\n * @return {Number} 定义域内的某个值\n */\n\n\nvar interpolateNumber = curry(function (a, b, t) {\n var newA = +a;\n var newB = +b;\n return newA + t * (newB - newA);\n});\n/**\n * 线性插值的逆运算\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个范围内时,返回值属于[0, 1]\n */\n\nvar uninterpolateNumber = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return (x - a) / diff;\n});\n/**\n * 线性插值的逆运算,并且有截断的操作\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个区间内时,返回值属于[0, 1],\n * 当x不在 a ~ b这个区间时,会截断到 a ~ b 这个区间\n */\n\nvar uninterpolateTruncation = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return Math.max(0, Math.min(1, (x - a) / diff));\n});\nexport default {\n rangeStep: rangeStep,\n getDigitCount: getDigitCount,\n interpolateNumber: interpolateNumber,\n uninterpolateNumber: uninterpolateNumber,\n uninterpolateTruncation: uninterpolateTruncation\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\n * @fileOverview calculate tick values of scale\n * @author xile611, arcthur\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { compose, range, memoize, map, reverse } from './util/utils';\nimport Arithmetic from './util/arithmetic';\n/**\n * Calculate a interval of a minimum value and a maximum value\n *\n * @param {Number} min The minimum value\n * @param {Number} max The maximum value\n * @return {Array} An interval\n */\n\nfunction getValidInterval(_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n min = _ref2[0],\n max = _ref2[1];\n\n var validMin = min,\n validMax = max; // exchange\n\n if (min > max) {\n validMin = max;\n validMax = min;\n }\n\n return [validMin, validMax];\n}\n/**\n * Calculate the step which is easy to understand between ticks, like 10, 20, 25\n *\n * @param {Decimal} roughStep The rough step calculated by deviding the\n * difference by the tickCount\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Integer} correctionFactor A correction factor\n * @return {Decimal} The step which is easy to understand between two ticks\n */\n\n\nfunction getFormatStep(roughStep, allowDecimals, correctionFactor) {\n if (roughStep.lte(0)) {\n return new Decimal(0);\n }\n\n var digitCount = Arithmetic.getDigitCount(roughStep.toNumber()); // The ratio between the rough step and the smallest number which has a bigger\n // order of magnitudes than the rough step\n\n var digitCountValue = new Decimal(10).pow(digitCount);\n var stepRatio = roughStep.div(digitCountValue); // When an integer and a float multiplied, the accuracy of result may be wrong\n\n var stepRatioScale = digitCount !== 1 ? 0.05 : 0.1;\n var amendStepRatio = new Decimal(Math.ceil(stepRatio.div(stepRatioScale).toNumber())).add(correctionFactor).mul(stepRatioScale);\n var formatStep = amendStepRatio.mul(digitCountValue);\n return allowDecimals ? formatStep : new Decimal(Math.ceil(formatStep));\n}\n/**\n * calculate the ticks when the minimum value equals to the maximum value\n *\n * @param {Number} value The minimum valuue which is also the maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickOfSingleValue(value, tickCount, allowDecimals) {\n var step = 1; // calculate the middle value of ticks\n\n var middle = new Decimal(value);\n\n if (!middle.isint() && allowDecimals) {\n var absVal = Math.abs(value);\n\n if (absVal < 1) {\n // The step should be a float number when the difference is smaller than 1\n step = new Decimal(10).pow(Arithmetic.getDigitCount(value) - 1);\n middle = new Decimal(Math.floor(middle.div(step).toNumber())).mul(step);\n } else if (absVal > 1) {\n // Return the maximum integer which is smaller than 'value' when 'value' is greater than 1\n middle = new Decimal(Math.floor(value));\n }\n } else if (value === 0) {\n middle = new Decimal(Math.floor((tickCount - 1) / 2));\n } else if (!allowDecimals) {\n middle = new Decimal(Math.floor(value));\n }\n\n var middleIndex = Math.floor((tickCount - 1) / 2);\n var fn = compose(map(function (n) {\n return middle.add(new Decimal(n - middleIndex).mul(step)).toNumber();\n }), range);\n return fn(0, tickCount);\n}\n/**\n * Calculate the step\n *\n * @param {Number} min The minimum value of an interval\n * @param {Number} max The maximum value of an interval\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Number} correctionFactor A correction factor\n * @return {Object} The step, minimum value of ticks, maximum value of ticks\n */\n\n\nfunction calculateStep(min, max, tickCount, allowDecimals) {\n var correctionFactor = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n\n // dirty hack (for recharts' test)\n if (!Number.isFinite((max - min) / (tickCount - 1))) {\n return {\n step: new Decimal(0),\n tickMin: new Decimal(0),\n tickMax: new Decimal(0)\n };\n } // The step which is easy to understand between two ticks\n\n\n var step = getFormatStep(new Decimal(max).sub(min).div(tickCount - 1), allowDecimals, correctionFactor); // A medial value of ticks\n\n var middle; // When 0 is inside the interval, 0 should be a tick\n\n if (min <= 0 && max >= 0) {\n middle = new Decimal(0);\n } else {\n // calculate the middle value\n middle = new Decimal(min).add(max).div(2); // minus modulo value\n\n middle = middle.sub(new Decimal(middle).mod(step));\n }\n\n var belowCount = Math.ceil(middle.sub(min).div(step).toNumber());\n var upCount = Math.ceil(new Decimal(max).sub(middle).div(step).toNumber());\n var scaleCount = belowCount + upCount + 1;\n\n if (scaleCount > tickCount) {\n // When more ticks need to cover the interval, step should be bigger.\n return calculateStep(min, max, tickCount, allowDecimals, correctionFactor + 1);\n }\n\n if (scaleCount < tickCount) {\n // When less ticks can cover the interval, we should add some additional ticks\n upCount = max > 0 ? upCount + (tickCount - scaleCount) : upCount;\n belowCount = max > 0 ? belowCount : belowCount + (tickCount - scaleCount);\n }\n\n return {\n step: step,\n tickMin: middle.sub(new Decimal(belowCount).mul(step)),\n tickMax: middle.add(new Decimal(upCount).mul(step))\n };\n}\n/**\n * Calculate the ticks of an interval, the count of ticks will be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getNiceTickValuesFn(_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n min = _ref4[0],\n max = _ref4[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval = getValidInterval([min, max]),\n _getValidInterval2 = _slicedToArray(_getValidInterval, 2),\n cormin = _getValidInterval2[0],\n cormax = _getValidInterval2[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n var _values = cormax === Infinity ? [cormin].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return Infinity;\n }))) : [].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return -Infinity;\n })), [cormax]);\n\n return min > max ? reverse(_values) : _values;\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n } // Get the step between two ticks\n\n\n var _calculateStep = calculateStep(cormin, cormax, count, allowDecimals),\n step = _calculateStep.step,\n tickMin = _calculateStep.tickMin,\n tickMax = _calculateStep.tickMax;\n\n var values = Arithmetic.rangeStep(tickMin, tickMax.add(new Decimal(0.1).mul(step)), step);\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFn(_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n min = _ref6[0],\n max = _ref6[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval3 = getValidInterval([min, max]),\n _getValidInterval4 = _slicedToArray(_getValidInterval3, 2),\n cormin = _getValidInterval4[0],\n cormax = _getValidInterval4[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n }\n\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var fn = compose(map(function (n) {\n return new Decimal(cormin).add(new Decimal(n).mul(step)).toNumber();\n }), range);\n var values = fn(0, count).filter(function (entry) {\n return entry >= cormin && entry <= cormax;\n });\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed,\n * but the domain will be guaranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFixedDomainFn(_ref7, tickCount) {\n var _ref8 = _slicedToArray(_ref7, 2),\n min = _ref8[0],\n max = _ref8[1];\n\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n // More than two ticks should be return\n var _getValidInterval5 = getValidInterval([min, max]),\n _getValidInterval6 = _slicedToArray(_getValidInterval5, 2),\n cormin = _getValidInterval6[0],\n cormax = _getValidInterval6[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return [cormin];\n }\n\n var count = Math.max(tickCount, 2);\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var values = [].concat(_toConsumableArray(Arithmetic.rangeStep(new Decimal(cormin), new Decimal(cormax).sub(new Decimal(0.99).mul(step)), step)), [cormax]);\n return min > max ? reverse(values) : values;\n}\n\nexport var getNiceTickValues = memoize(getNiceTickValuesFn);\nexport var getTickValues = memoize(getTickValuesFn);\nexport var getTickValuesFixedDomain = memoize(getTickValuesFixedDomainFn);","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(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport * 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';\nimport { getLegendProps } from './getLegendProps';\n\n// Exported for backwards compatibility\nexport { getLegendProps };\nexport function getValueByDataKey(obj, dataKey, defaultValue) {\n if (isNil(obj) || isNil(dataKey)) {\n return defaultValue;\n }\n if (isNumOrStr(dataKey)) {\n return get(obj, dataKey, defaultValue);\n }\n if (isFunction(dataKey)) {\n return dataKey(obj);\n }\n return defaultValue;\n}\n/**\n * Get domain of data by key.\n * @param {Array} data The data displayed in the chart\n * @param {String} key The unique key of a group of data\n * @param {String} type The type of axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain of data\n */\nexport function getDomainOfDataByKey(data, key, type, filterNil) {\n var flattenData = flatMap(data, function (entry) {\n return getValueByDataKey(entry, key);\n });\n if (type === 'number') {\n // @ts-expect-error parseFloat type only accepts strings\n var domain = flattenData.filter(function (entry) {\n return isNumber(entry) || parseFloat(entry);\n });\n return domain.length ? [min(domain), max(domain)] : [Infinity, -Infinity];\n }\n var validateData = filterNil ? flattenData.filter(function (entry) {\n return !isNil(entry);\n }) : flattenData;\n\n // Supports x-axis of Date type\n return validateData.map(function (entry) {\n return isNumOrStr(entry) || entry instanceof Date ? entry : '';\n });\n}\nexport var calculateActiveTickIndex = function calculateActiveTickIndex(coordinate) {\n var _ticks$length;\n var ticks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var unsortedTicks = arguments.length > 2 ? arguments[2] : undefined;\n var axis = arguments.length > 3 ? arguments[3] : undefined;\n var index = -1;\n var len = (_ticks$length = ticks === null || ticks === void 0 ? void 0 : ticks.length) !== null && _ticks$length !== void 0 ? _ticks$length : 0;\n\n // if there are 1 or less ticks ticks then the active tick is at index 0\n if (len <= 1) {\n return 0;\n }\n if (axis && axis.axisType === 'angleAxis' && Math.abs(Math.abs(axis.range[1] - axis.range[0]) - 360) <= 1e-6) {\n var range = axis.range;\n // ticks are distributed in a circle\n for (var i = 0; i < len; i++) {\n var before = i > 0 ? unsortedTicks[i - 1].coordinate : unsortedTicks[len - 1].coordinate;\n var cur = unsortedTicks[i].coordinate;\n var after = i >= len - 1 ? unsortedTicks[0].coordinate : unsortedTicks[i + 1].coordinate;\n var sameDirectionCoord = void 0;\n if (mathSign(cur - before) !== mathSign(after - cur)) {\n var diffInterval = [];\n if (mathSign(after - cur) === mathSign(range[1] - range[0])) {\n sameDirectionCoord = after;\n var curInRange = cur + range[1] - range[0];\n diffInterval[0] = Math.min(curInRange, (curInRange + before) / 2);\n diffInterval[1] = Math.max(curInRange, (curInRange + before) / 2);\n } else {\n sameDirectionCoord = before;\n var afterInRange = after + range[1] - range[0];\n diffInterval[0] = Math.min(cur, (afterInRange + cur) / 2);\n diffInterval[1] = Math.max(cur, (afterInRange + cur) / 2);\n }\n var sameInterval = [Math.min(cur, (sameDirectionCoord + cur) / 2), Math.max(cur, (sameDirectionCoord + cur) / 2)];\n if (coordinate > sameInterval[0] && coordinate <= sameInterval[1] || coordinate >= diffInterval[0] && coordinate <= diffInterval[1]) {\n index = unsortedTicks[i].index;\n break;\n }\n } else {\n var minValue = Math.min(before, after);\n var maxValue = Math.max(before, after);\n if (coordinate > (minValue + cur) / 2 && coordinate <= (maxValue + cur) / 2) {\n index = unsortedTicks[i].index;\n break;\n }\n }\n }\n } else {\n // ticks are distributed in a single direction\n for (var _i = 0; _i < len; _i++) {\n if (_i === 0 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i > 0 && _i < len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i === len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2) {\n index = ticks[_i].index;\n break;\n }\n }\n }\n return index;\n};\n\n/**\n * Get the main color of each graphic item\n * @param {ReactElement} item A graphic item\n * @return {String} Color\n */\nexport var getMainColorOfGraphicItem = function getMainColorOfGraphicItem(item) {\n var _ref = item,\n displayName = _ref.type.displayName; // TODO: check if displayName is valid.\n var _item$props = item.props,\n stroke = _item$props.stroke,\n fill = _item$props.fill;\n var result;\n switch (displayName) {\n case 'Line':\n result = stroke;\n break;\n case 'Area':\n case 'Radar':\n result = stroke && stroke !== 'none' ? stroke : fill;\n break;\n default:\n result = fill;\n break;\n }\n return result;\n};\n/**\n * Calculate the size of all groups for stacked bar graph\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @return {Object} The size of all groups\n */\nexport var getBarSizeList = function getBarSizeList(_ref2) {\n var globalSize = _ref2.barSize,\n _ref2$stackGroups = _ref2.stackGroups,\n stackGroups = _ref2$stackGroups === void 0 ? {} : _ref2$stackGroups;\n if (!stackGroups) {\n return {};\n }\n var result = {};\n var numericAxisIds = Object.keys(stackGroups);\n for (var i = 0, len = numericAxisIds.length; i < len; i++) {\n var sgs = stackGroups[numericAxisIds[i]].stackGroups;\n var stackIds = Object.keys(sgs);\n for (var j = 0, sLen = stackIds.length; j < sLen; j++) {\n var _sgs$stackIds$j = sgs[stackIds[j]],\n items = _sgs$stackIds$j.items,\n cateAxisId = _sgs$stackIds$j.cateAxisId;\n var barItems = items.filter(function (item) {\n return getDisplayName(item.type).indexOf('Bar') >= 0;\n });\n if (barItems && barItems.length) {\n var selfSize = barItems[0].props.barSize;\n var cateId = barItems[0].props[cateAxisId];\n if (!result[cateId]) {\n result[cateId] = [];\n }\n result[cateId].push({\n item: barItems[0],\n stackList: barItems.slice(1),\n barSize: isNil(selfSize) ? globalSize : selfSize\n });\n }\n }\n }\n return result;\n};\n/**\n * 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, 0);\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$props2 = item.props,\n stackId = _item$props2.stackId,\n hide = _item$props2.hide;\n if (hide) {\n return result;\n }\n var axisId = item.props[numericAxisId];\n var parentGroup = result[axisId] || {\n hasStack: false,\n stackGroups: {}\n };\n if (isNumOrStr(stackId)) {\n var childGroup = parentGroup.stackGroups[stackId] || {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: []\n };\n childGroup.items.push(item);\n parentGroup.hasStack = true;\n parentGroup.stackGroups[stackId] = childGroup;\n } else {\n parentGroup.stackGroups[uniqueId('_stackId_')] = {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: [item]\n };\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, parentGroup));\n }, 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 var getCateCoordinateOfLine = 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 if (!axis.allowDuplicatedCategory && axis.dataKey && !isNil(entry[axis.dataKey])) {\n var matchedTick = findEntryInArray(ticks, 'value', entry[axis.dataKey]);\n if (matchedTick) {\n return matchedTick.coordinate + bandSize / 2;\n }\n }\n return ticks[index] ? ticks[index].coordinate + bandSize / 2 : null;\n }\n var value = getValueByDataKey(entry, !isNil(dataKey) ? dataKey : axis.dataKey);\n return !isNil(value) ? axis.scale(value) : null;\n};\nexport var getCateCoordinateOfBar = function getCateCoordinateOfBar(_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 stackId = item.props.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 _graphicalItem$props = graphicalItem.props,\n dataKey = _graphicalItem$props.dataKey,\n name = _graphicalItem$props.name,\n unit = _graphicalItem$props.unit,\n formatter = _graphicalItem$props.formatter,\n tooltipType = _graphicalItem$props.tooltipType,\n chartType = _graphicalItem$props.chartType;\n return _objectSpread(_objectSpread({}, filterProps(graphicalItem)), {}, {\n dataKey: dataKey,\n unit: unit,\n formatter: formatter,\n name: name || dataKey,\n color: getMainColorOfGraphicItem(graphicalItem),\n value: getValueByDataKey(payload, dataKey),\n type: tooltipType,\n payload: payload,\n chartType: chartType\n });\n};","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\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(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { Global } from './Global';\nvar stringCache = {\n widthCache: {},\n cacheCount: 0\n};\nvar MAX_CACHE_NUM = 2000;\nvar SPAN_STYLE = {\n position: 'absolute',\n top: '-20000px',\n left: 0,\n padding: 0,\n margin: 0,\n border: 'none',\n whiteSpace: 'pre'\n};\nvar STYLE_LIST = ['minWidth', 'maxWidth', 'width', 'minHeight', 'maxHeight', 'height', 'top', 'left', 'fontSize', 'lineHeight', 'padding', 'margin', 'paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom'];\nvar MEASUREMENT_SPAN_ID = 'recharts_measurement_span';\nfunction autoCompleteStyle(name, value) {\n if (STYLE_LIST.indexOf(name) >= 0 && value === +value) {\n return \"\".concat(value, \"px\");\n }\n return value;\n}\nfunction camelToMiddleLine(text) {\n var strs = text.split('');\n var formatStrs = strs.reduce(function (result, entry) {\n if (entry === entry.toUpperCase()) {\n return [].concat(_toConsumableArray(result), ['-', entry.toLowerCase()]);\n }\n return [].concat(_toConsumableArray(result), [entry]);\n }, []);\n return formatStrs.join('');\n}\nexport var getStyleString = function getStyleString(style) {\n return Object.keys(style).reduce(function (result, s) {\n return \"\".concat(result).concat(camelToMiddleLine(s), \":\").concat(autoCompleteStyle(s, style[s]), \";\");\n }, '');\n};\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(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(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 { 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};","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 = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _typeof(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};\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 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 isDotProps = function isDotProps(dot) {\n return dot && _typeof(dot) === 'object' && 'cx' in dot && 'cy' in dot && 'r' in dot;\n};\n\n/**\n * Checks if the property is valid to spread onto an SVG element or onto a specific component\n * @param {unknown} property property value currently being compared\n * @param {string} key property key currently being compared\n * @param {boolean} includeEvents if events are included in spreadable props\n * @param {boolean} svgElementType checks against map of SVG element types to attributes\n * @returns {boolean} is prop valid\n */\nexport var isValidSpreadableProp = function isValidSpreadableProp(property, key, includeEvents, svgElementType) {\n var _FilteredElementKeyMa;\n /**\n * If the svg element type is explicitly included, check against the filtered element key map\n * to determine if there are attributes that should only exist on that element type.\n * @todo Add an internal cjs version of https://github.com/wooorm/svg-element-attributes for full coverage.\n */\n var matchingElementTypeKeys = (_FilteredElementKeyMa = FilteredElementKeyMap === null || FilteredElementKeyMap === void 0 ? void 0 : FilteredElementKeyMap[svgElementType]) !== null && _FilteredElementKeyMa !== void 0 ? _FilteredElementKeyMa : [];\n return !isFunction(property) && (svgElementType && matchingElementTypeKeys.includes(key) || SVGElementPropKeys.includes(key)) || includeEvents && EventKeys.includes(key);\n};\n\n/**\n * Filter all the svg elements of children\n * @param {Array} children The children of a react element\n * @return {Array} All the svg elements\n */\nexport var filterSvgElements = function filterSvgElements(children) {\n var svgElements = [];\n toArray(children).forEach(function (entry) {\n if (isSvgElement(entry)) {\n svgElements.push(entry);\n }\n });\n return svgElements;\n};\nexport var filterProps = function filterProps(props, includeEvents, svgElementType) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n var inputProps = props;\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n if (!isObject(inputProps)) {\n return null;\n }\n var out = {};\n\n /**\n * Props are blindly spread onto SVG elements. This loop filters out properties that we don't want to spread.\n * Items filtered out are as follows:\n * - functions in properties that are SVG attributes (functions are included when includeEvents is true)\n * - props that are SVG attributes but don't matched the passed svgElementType\n * - any prop that is not in SVGElementPropKeys (or in EventKeys if includeEvents is true)\n */\n Object.keys(inputProps).forEach(function (key) {\n var _inputProps;\n if (isValidSpreadableProp((_inputProps = inputProps) === null || _inputProps === void 0 ? void 0 : _inputProps[key], key, includeEvents, svgElementType)) {\n out[key] = inputProps[key];\n }\n });\n return out;\n};\n\n/**\n * Wether props of children changed\n * @param {Object} nextChildren The latest children\n * @param {Object} prevChildren The prev children\n * @return {Boolean} equal or not\n */\nexport var isChildrenEqual = function isChildrenEqual(nextChildren, prevChildren) {\n if (nextChildren === prevChildren) {\n return true;\n }\n var count = Children.count(nextChildren);\n if (count !== Children.count(prevChildren)) {\n return false;\n }\n if (count === 0) {\n return true;\n }\n if (count === 1) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return isSingleChildEqual(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(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { 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 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 _item$props = item.props,\n dataKey = _item$props.dataKey,\n name = _item$props.name,\n legendType = _item$props.legendType,\n hide = _item$props.hide;\n return {\n inactive: hide,\n dataKey: dataKey,\n type: legendItem.props.iconType || legendType || 'square',\n color: getMainColorOfGraphicItem(item),\n value: name || dataKey,\n // @ts-expect-error property strokeDasharray is required in Payload but optional in props\n payload: item.props\n };\n });\n }\n return _objectSpread(_objectSpread(_objectSpread({}, legendItem.props), Legend.getWithHeight(legendItem, legendWidth)), {}, {\n payload: legendData,\n item: legendItem\n });\n};","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//\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};","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t