{"version":3,"file":"viz-4a68811d.js","sources":["../../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArray.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_freeGlobal.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_root.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Symbol.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getRawTag.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_objectToString.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetTag.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObjectLike.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isSymbol.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isKey.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObject.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isFunction.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_coreJsData.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isMasked.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_toSource.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsNative.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getValue.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getNative.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nativeCreate.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashClear.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashDelete.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashGet.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashHas.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hashSet.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Hash.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheClear.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/eq.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_assocIndexOf.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheDelete.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheGet.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheHas.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_listCacheSet.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_ListCache.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Map.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheClear.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isKeyable.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getMapData.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheDelete.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheGet.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheHas.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapCacheSet.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_MapCache.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/memoize.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_memoizeCapped.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stringToPath.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayMap.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseToString.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toString.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_castPath.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_toKey.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGet.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/get.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isNil.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isString.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isNumber.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isNaN.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/util/DataUtils.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/util/ShallowEqual.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/util/types.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/util/ReactUtils.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/container/Surface.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/container/Layer.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/util/LogUtils.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseSlice.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_castSlice.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hasUnicode.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_asciiToArray.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_unicodeToArray.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stringToArray.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createCaseFirst.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/upperFirst.js","../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/constant.js","../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/math.js","../../node_modules/.pnpm/d3-path@3.1.0/node_modules/d3-path/src/path.js","../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/path.js","../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/array.js","../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/linear.js","../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/point.js","../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/line.js","../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/area.js","../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/bump.js","../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/symbol/circle.js","../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/symbol/cross.js","../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/symbol/diamond.js","../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/symbol/square.js","../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/symbol/star.js","../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/symbol/triangle.js","../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/symbol/wye.js","../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/symbol.js","../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/noop.js","../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/basis.js","../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/basisClosed.js","../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/basisOpen.js","../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/linearClosed.js","../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/monotone.js","../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/natural.js","../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/step.js","../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/offset/none.js","../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/order/none.js","../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/stack.js","../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/offset/expand.js","../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/offset/silhouette.js","../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/offset/wiggle.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/shape/Symbols.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/component/DefaultLegendContent.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackClear.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackDelete.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackGet.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackHas.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_stackSet.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Stack.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setCacheAdd.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setCacheHas.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_SetCache.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arraySome.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cacheHas.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_equalArrays.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Uint8Array.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_mapToArray.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setToArray.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_equalByTag.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayPush.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetAllKeys.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayFilter.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/stubArray.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getSymbols.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTimes.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsArguments.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArguments.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/stubFalse.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isBuffer.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isIndex.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isLength.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsTypedArray.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseUnary.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nodeUtil.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isTypedArray.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayLikeKeys.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isPrototype.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_overArg.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nativeKeys.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseKeys.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isArrayLike.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/keys.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getAllKeys.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_equalObjects.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_DataView.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Promise.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Set.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_WeakMap.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getTag.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsEqualDeep.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsEqual.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsMatch.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isStrictComparable.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getMatchData.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_matchesStrictComparable.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMatches.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseHasIn.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_hasPath.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/hasIn.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMatchesProperty.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/identity.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseProperty.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_basePropertyDeep.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/property.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIteratee.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseFindIndex.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsNaN.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_strictIndexOf.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIndexOf.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayIncludes.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayIncludesWith.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/noop.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createSet.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseUniq.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/uniqBy.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/util/payload/getUniqPayload.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/component/Legend.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isFlattenable.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseFlatten.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createBaseFor.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseFor.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseForOwn.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createBaseEach.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseEach.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseMap.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseSortBy.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_compareAscending.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_compareMultiple.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseOrderBy.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_apply.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_overRest.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/constant.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_defineProperty.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseSetToString.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_shortOut.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_setToString.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseRest.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_isIterateeCall.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/sortBy.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/component/DefaultTooltipContent.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/util/tooltip/translate.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/component/TooltipBoundingBox.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/util/Global.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/component/Tooltip.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/now.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_trimmedEndIndex.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTrim.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toNumber.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/debounce.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/throttle.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/component/ResponsiveContainer.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/component/Cell.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/util/DOMUtils.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/util/ReduceCSSCalc.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/component/Text.js","../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/ascending.js","../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/descending.js","../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/bisector.js","../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/number.js","../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/bisect.js","../../node_modules/.pnpm/internmap@2.0.3/node_modules/internmap/src/index.js","../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/sort.js","../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/ticks.js","../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/max.js","../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/min.js","../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/quickselect.js","../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/quantile.js","../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/range.js","../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/init.js","../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/ordinal.js","../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/band.js","../../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/define.js","../../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/color.js","../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/constant.js","../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/color.js","../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/rgb.js","../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/numberArray.js","../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/array.js","../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/date.js","../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/number.js","../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/object.js","../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/string.js","../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/value.js","../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/round.js","../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/piecewise.js","../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/constant.js","../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/number.js","../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/continuous.js","../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatDecimal.js","../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/exponent.js","../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatGroup.js","../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatNumerals.js","../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatSpecifier.js","../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatTrim.js","../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatPrefixAuto.js","../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatRounded.js","../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/formatTypes.js","../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/identity.js","../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/locale.js","../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/defaultLocale.js","../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/precisionFixed.js","../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/precisionPrefix.js","../../node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/precisionRound.js","../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/tickFormat.js","../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/linear.js","../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/identity.js","../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/nice.js","../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/log.js","../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/symlog.js","../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/pow.js","../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/radial.js","../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/quantile.js","../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/quantize.js","../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/threshold.js","../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/interval.js","../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/millisecond.js","../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/duration.js","../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/second.js","../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/minute.js","../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/hour.js","../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/day.js","../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/week.js","../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/month.js","../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/year.js","../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/ticks.js","../../node_modules/.pnpm/d3-time-format@4.1.0/node_modules/d3-time-format/src/locale.js","../../node_modules/.pnpm/d3-time-format@4.1.0/node_modules/d3-time-format/src/defaultLocale.js","../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/time.js","../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/utcTime.js","../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/sequential.js","../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/sequentialQuantile.js","../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/diverging.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseExtremum.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGt.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/max.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseLt.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/min.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/map.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/flatMap.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isEqual.js","../../node_modules/.pnpm/decimal.js-light@2.5.1/node_modules/decimal.js-light/decimal.mjs","../../node_modules/.pnpm/recharts-scale@0.4.5/node_modules/recharts-scale/es6/util/utils.js","../../node_modules/.pnpm/recharts-scale@0.4.5/node_modules/recharts-scale/es6/util/arithmetic.js","../../node_modules/.pnpm/recharts-scale@0.4.5/node_modules/recharts-scale/es6/getNiceTickValues.js","../../node_modules/.pnpm/tiny-invariant@1.3.3/node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/cartesian/ErrorBar.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/util/getLegendProps.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/util/ChartUtils.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/util/PolarUtils.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/component/Label.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/last.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/component/LabelList.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/shape/Sector.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/shape/Curve.js","../../node_modules/.pnpm/fast-equals@5.0.1/node_modules/fast-equals/dist/esm/index.mjs","../../node_modules/.pnpm/react-smooth@4.0.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-smooth/es6/setRafTimeout.js","../../node_modules/.pnpm/react-smooth@4.0.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-smooth/es6/AnimateManager.js","../../node_modules/.pnpm/react-smooth@4.0.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-smooth/es6/util.js","../../node_modules/.pnpm/react-smooth@4.0.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-smooth/es6/easing.js","../../node_modules/.pnpm/react-smooth@4.0.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-smooth/es6/configUpdate.js","../../node_modules/.pnpm/react-smooth@4.0.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-smooth/es6/Animate.js","../../node_modules/.pnpm/@babel+runtime@7.24.8/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../../node_modules/.pnpm/@babel+runtime@7.24.8/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../node_modules/.pnpm/dom-helpers@5.2.1/node_modules/dom-helpers/esm/hasClass.js","../../node_modules/.pnpm/dom-helpers@5.2.1/node_modules/dom-helpers/esm/addClass.js","../../node_modules/.pnpm/dom-helpers@5.2.1/node_modules/dom-helpers/esm/removeClass.js","../../node_modules/.pnpm/@babel+runtime@7.24.8/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../../node_modules/.pnpm/react-smooth@4.0.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-smooth/es6/AnimateGroupChild.js","../../node_modules/.pnpm/react-smooth@4.0.1_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/react-smooth/es6/AnimateGroup.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/shape/Rectangle.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/shape/Polygon.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/shape/Dot.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/shape/Cross.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/maxBy.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/minBy.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/polar/PolarRadiusAxis.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/polar/PolarAngleAxis.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getPrototype.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isPlainObject.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isBoolean.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/shape/Trapezoid.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/util/ActiveShapeUtils.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/polar/Pie.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseRange.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toFinite.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createRange.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/range.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/util/CssPrefixUtils.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/cartesian/Brush.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseSome.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/some.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/util/IfOverflowMatches.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseAssignValue.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/mapValues.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayEvery.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseEvery.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/every.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/util/BarUtils.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/cartesian/Bar.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/util/CartesianUtils.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_createFind.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toInteger.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/findIndex.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/find.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/util/calculateViewBox.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/context/chartLayoutContext.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/cartesian/ReferenceLine.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/cartesian/ReferenceDot.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/cartesian/ReferenceArea.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/util/getEveryNthWithCondition.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/util/TickUtils.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/cartesian/getEquidistantTicks.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/cartesian/getTicks.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/cartesian/CartesianAxis.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/cartesian/CartesianGrid.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/cartesian/Line.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/cartesian/Area.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/cartesian/ZAxis.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/util/ScatterUtils.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/cartesian/Scatter.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/cartesian/XAxis.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/cartesian/YAxis.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/util/DetectReferenceElementsDomain.js","../../node_modules/.pnpm/eventemitter3@4.0.7/node_modules/eventemitter3/index.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/util/Events.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/chart/AccessibilityManager.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/util/cursor/getCursorRectangle.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/util/cursor/getCursorPoints.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/component/Cursor.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/chart/generateCategoricalChart.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/chart/BarChart.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/chart/PieChart.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_arrayEach.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_assignValue.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_copyObject.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseAssign.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_nativeKeysIn.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseKeysIn.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/keysIn.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseAssignIn.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneBuffer.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_copyArray.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_copySymbols.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getSymbolsIn.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_copySymbolsIn.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getAllKeysIn.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_initCloneArray.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneArrayBuffer.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneDataView.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneRegExp.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneSymbol.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_cloneTypedArray.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_initCloneByTag.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseCreate.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_initCloneObject.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsMap.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isMap.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseIsSet.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isSet.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseClone.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_parent.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseUnset.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_customOmitClone.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/flatten.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_flatRest.js","../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/omit.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/chart/AreaChart.js","../../node_modules/.pnpm/recharts@2.12.7_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/recharts/es6/chart/ComposedChart.js","../../node_modules/.pnpm/@babel+runtime@7.24.8/node_modules/@babel/runtime/helpers/interopRequireDefault.js","../../node_modules/.pnpm/react-lifecycles-compat@3.0.4/node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../../node_modules/.pnpm/d3-zoom@3.0.0/node_modules/d3-zoom/src/transform.js"],"sourcesContent":["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)){var o=e.length;for(t=0;t 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","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\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","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\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","/** 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","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 * 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 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 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 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","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","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 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 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","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","/**\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 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 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 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 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","/**\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","/**\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 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 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 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 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","/**\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 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 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","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 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 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 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","/**\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","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 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 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 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","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 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","/**\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 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 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","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","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};","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); }\nimport { isValidElement } from 'react';\nimport isObject from 'lodash/isObject';\n\n/**\n * Determines how values are stacked:\n *\n * - `none` is the default, it adds values on top of each other. No smarts. Negative values will overlap.\n * - `expand` make it so that the values always add up to 1 - so the chart will look like a rectangle.\n * - `wiggle` and `silhouette` tries to keep the chart centered.\n * - `sign` stacks positive values above zero and negative values below zero. Similar to `none` but handles negatives.\n * - `positive` ignores all negative values, and then behaves like \\`none\\`.\n *\n * Also see https://d3js.org/d3-shape/stack#stack-offsets\n * (note that the `diverging` offset in d3 is named `sign` in recharts)\n */\n\n//\n// Event Handler Types -- Copied from @types/react/index.d.ts and adapted for Props.\n//\n\nvar SVGContainerPropKeys = ['viewBox', 'children'];\nexport var SVGElementPropKeys = ['aria-activedescendant', 'aria-atomic', 'aria-autocomplete', 'aria-busy', 'aria-checked', 'aria-colcount', 'aria-colindex', 'aria-colspan', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-details', 'aria-disabled', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-level', 'aria-live', 'aria-modal', 'aria-multiline', 'aria-multiselectable', 'aria-orientation', 'aria-owns', 'aria-placeholder', 'aria-posinset', 'aria-pressed', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription', 'aria-rowcount', 'aria-rowindex', 'aria-rowspan', 'aria-selected', 'aria-setsize', 'aria-sort', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext', 'className', 'color', 'height', 'id', 'lang', 'max', 'media', 'method', 'min', 'name', 'style',\n/*\n * removed 'type' SVGElementPropKey because we do not currently use any SVG elements\n * that can use it and it conflicts with the recharts prop 'type'\n * https://github.com/recharts/recharts/pull/3327\n * https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/type\n */\n// 'type',\n'target', 'width', 'role', 'tabIndex', 'accentHeight', 'accumulate', 'additive', 'alignmentBaseline', 'allowReorder', 'alphabetic', 'amplitude', 'arabicForm', 'ascent', 'attributeName', 'attributeType', 'autoReverse', 'azimuth', 'baseFrequency', 'baselineShift', 'baseProfile', 'bbox', 'begin', 'bias', 'by', 'calcMode', 'capHeight', 'clip', 'clipPath', 'clipPathUnits', 'clipRule', 'colorInterpolation', 'colorInterpolationFilters', 'colorProfile', 'colorRendering', 'contentScriptType', 'contentStyleType', 'cursor', 'cx', 'cy', 'd', 'decelerate', 'descent', 'diffuseConstant', 'direction', 'display', 'divisor', 'dominantBaseline', 'dur', 'dx', 'dy', 'edgeMode', 'elevation', 'enableBackground', 'end', 'exponent', 'externalResourcesRequired', 'fill', 'fillOpacity', 'fillRule', 'filter', 'filterRes', 'filterUnits', 'floodColor', 'floodOpacity', 'focusable', 'fontFamily', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle', 'fontVariant', 'fontWeight', 'format', 'from', 'fx', 'fy', 'g1', 'g2', 'glyphName', 'glyphOrientationHorizontal', 'glyphOrientationVertical', 'glyphRef', 'gradientTransform', 'gradientUnits', 'hanging', 'horizAdvX', 'horizOriginX', 'href', 'ideographic', 'imageRendering', 'in2', 'in', 'intercept', 'k1', 'k2', 'k3', 'k4', 'k', 'kernelMatrix', 'kernelUnitLength', 'kerning', 'keyPoints', 'keySplines', 'keyTimes', 'lengthAdjust', 'letterSpacing', 'lightingColor', 'limitingConeAngle', 'local', 'markerEnd', 'markerHeight', 'markerMid', 'markerStart', 'markerUnits', 'markerWidth', 'mask', 'maskContentUnits', 'maskUnits', 'mathematical', 'mode', 'numOctaves', 'offset', 'opacity', 'operator', 'order', 'orient', 'orientation', 'origin', 'overflow', 'overlinePosition', 'overlineThickness', 'paintOrder', 'panose1', 'pathLength', 'patternContentUnits', 'patternTransform', 'patternUnits', 'pointerEvents', 'pointsAtX', 'pointsAtY', 'pointsAtZ', 'preserveAlpha', 'preserveAspectRatio', 'primitiveUnits', 'r', 'radius', 'refX', 'refY', 'renderingIntent', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'restart', 'result', 'rotate', 'rx', 'ry', 'seed', 'shapeRendering', 'slope', 'spacing', 'specularConstant', 'specularExponent', 'speed', 'spreadMethod', 'startOffset', 'stdDeviation', 'stemh', 'stemv', 'stitchTiles', 'stopColor', 'stopOpacity', 'strikethroughPosition', 'strikethroughThickness', 'string', 'stroke', 'strokeDasharray', 'strokeDashoffset', 'strokeLinecap', 'strokeLinejoin', 'strokeMiterlimit', 'strokeOpacity', 'strokeWidth', 'surfaceScale', 'systemLanguage', 'tableValues', 'targetX', 'targetY', 'textAnchor', 'textDecoration', 'textLength', 'textRendering', 'to', 'transform', 'u1', 'u2', 'underlinePosition', 'underlineThickness', 'unicode', 'unicodeBidi', 'unicodeRange', 'unitsPerEm', 'vAlphabetic', 'values', 'vectorEffect', 'version', 'vertAdvY', 'vertOriginX', 'vertOriginY', 'vHanging', 'vIdeographic', 'viewTarget', 'visibility', 'vMathematical', 'widths', 'wordSpacing', 'writingMode', 'x1', 'x2', 'x', 'xChannelSelector', 'xHeight', 'xlinkActuate', 'xlinkArcrole', 'xlinkHref', 'xlinkRole', 'xlinkShow', 'xlinkTitle', 'xlinkType', 'xmlBase', 'xmlLang', 'xmlns', 'xmlnsXlink', 'xmlSpace', 'y1', 'y2', 'y', 'yChannelSelector', 'z', 'zoomAndPan', 'ref', 'key', 'angle'];\nvar PolyElementKeys = ['points', 'pathLength'];\n\n/** svg element types that have specific attribute filtration requirements */\n\n/** map of svg element types to unique svg attributes that belong to that element */\nexport var FilteredElementKeyMap = {\n svg: SVGContainerPropKeys,\n polygon: PolyElementKeys,\n polyline: PolyElementKeys\n};\nexport var EventKeys = ['dangerouslySetInnerHTML', 'onCopy', 'onCopyCapture', 'onCut', 'onCutCapture', 'onPaste', 'onPasteCapture', 'onCompositionEnd', 'onCompositionEndCapture', 'onCompositionStart', 'onCompositionStartCapture', 'onCompositionUpdate', 'onCompositionUpdateCapture', 'onFocus', 'onFocusCapture', 'onBlur', 'onBlurCapture', 'onChange', 'onChangeCapture', 'onBeforeInput', 'onBeforeInputCapture', 'onInput', 'onInputCapture', 'onReset', 'onResetCapture', 'onSubmit', 'onSubmitCapture', 'onInvalid', 'onInvalidCapture', 'onLoad', 'onLoadCapture', 'onError', 'onErrorCapture', 'onKeyDown', 'onKeyDownCapture', 'onKeyPress', 'onKeyPressCapture', 'onKeyUp', 'onKeyUpCapture', 'onAbort', 'onAbortCapture', 'onCanPlay', 'onCanPlayCapture', 'onCanPlayThrough', 'onCanPlayThroughCapture', 'onDurationChange', 'onDurationChangeCapture', 'onEmptied', 'onEmptiedCapture', 'onEncrypted', 'onEncryptedCapture', 'onEnded', 'onEndedCapture', 'onLoadedData', 'onLoadedDataCapture', 'onLoadedMetadata', 'onLoadedMetadataCapture', 'onLoadStart', 'onLoadStartCapture', 'onPause', 'onPauseCapture', 'onPlay', 'onPlayCapture', 'onPlaying', 'onPlayingCapture', 'onProgress', 'onProgressCapture', 'onRateChange', 'onRateChangeCapture', 'onSeeked', 'onSeekedCapture', 'onSeeking', 'onSeekingCapture', 'onStalled', 'onStalledCapture', 'onSuspend', 'onSuspendCapture', 'onTimeUpdate', 'onTimeUpdateCapture', 'onVolumeChange', 'onVolumeChangeCapture', 'onWaiting', 'onWaitingCapture', 'onAuxClick', 'onAuxClickCapture', 'onClick', 'onClickCapture', 'onContextMenu', 'onContextMenuCapture', 'onDoubleClick', 'onDoubleClickCapture', 'onDrag', 'onDragCapture', 'onDragEnd', 'onDragEndCapture', 'onDragEnter', 'onDragEnterCapture', 'onDragExit', 'onDragExitCapture', 'onDragLeave', 'onDragLeaveCapture', 'onDragOver', 'onDragOverCapture', 'onDragStart', 'onDragStartCapture', 'onDrop', 'onDropCapture', 'onMouseDown', 'onMouseDownCapture', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseMoveCapture', 'onMouseOut', 'onMouseOutCapture', 'onMouseOver', 'onMouseOverCapture', 'onMouseUp', 'onMouseUpCapture', 'onSelect', 'onSelectCapture', 'onTouchCancel', 'onTouchCancelCapture', 'onTouchEnd', 'onTouchEndCapture', 'onTouchMove', 'onTouchMoveCapture', 'onTouchStart', 'onTouchStartCapture', 'onPointerDown', 'onPointerDownCapture', 'onPointerMove', 'onPointerMoveCapture', 'onPointerUp', 'onPointerUpCapture', 'onPointerCancel', 'onPointerCancelCapture', 'onPointerEnter', 'onPointerEnterCapture', 'onPointerLeave', 'onPointerLeaveCapture', 'onPointerOver', 'onPointerOverCapture', 'onPointerOut', 'onPointerOutCapture', 'onGotPointerCapture', 'onGotPointerCaptureCapture', 'onLostPointerCapture', 'onLostPointerCaptureCapture', 'onScroll', 'onScrollCapture', 'onWheel', 'onWheelCapture', 'onAnimationStart', 'onAnimationStartCapture', 'onAnimationEnd', 'onAnimationEndCapture', 'onAnimationIteration', 'onAnimationIterationCapture', 'onTransitionEnd', 'onTransitionEndCapture'];\n\n/** The type of easing function to use for animations */\n\n/** Specifies the duration of animation, the unit of this option is ms. */\n\n/** the offset of a chart, which define the blank space all around */\n\n/**\n * The domain of axis.\n * This is the definition\n *\n * Numeric domain is always defined by an array of exactly two values, for the min and the max of the axis.\n * Categorical domain is defined as array of all possible values.\n *\n * Can be specified in many ways:\n * - array of numbers\n * - with special strings like 'dataMin' and 'dataMax'\n * - with special string math like 'dataMin - 100'\n * - with keyword 'auto'\n * - or a function\n * - array of functions\n * - or a combination of the above\n */\n\n/**\n * NumberDomain is an evaluated {@link AxisDomain}.\n * Unlike {@link AxisDomain}, it has no variety - it's a tuple of two number.\n * This is after all the keywords and functions were evaluated and what is left is [min, max].\n *\n * Know that the min, max values are not guaranteed to be nice numbers - values like -Infinity or NaN are possible.\n *\n * There are also `category` axes that have different things than numbers in their domain.\n */\n\n/** The props definition of base axis */\n\n/** Defines how ticks are placed and whether / how tick collisions are handled.\n * 'preserveStart' keeps the left tick on collision and ensures that the first tick is always shown.\n * 'preserveEnd' keeps the right tick on collision and ensures that the last tick is always shown.\n * 'preserveStartEnd' keeps the left tick on collision and ensures that the first and last ticks are always shown.\n * 'equidistantPreserveStart' selects a number N such that every nTh tick will be shown without collision.\n */\n\nexport var adaptEventHandlers = function adaptEventHandlers(props, newHandler) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n var inputProps = props;\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n if (!isObject(inputProps)) {\n return null;\n }\n var out = {};\n Object.keys(inputProps).forEach(function (key) {\n if (EventKeys.includes(key)) {\n out[key] = newHandler || function (e) {\n return inputProps[key](inputProps, e);\n };\n }\n });\n return out;\n};\nvar getEventHandlerOfChild = function getEventHandlerOfChild(originalHandler, data, index) {\n return function (e) {\n originalHandler(data, index, e);\n return null;\n };\n};\nexport var adaptEventsOfChild = function adaptEventsOfChild(props, data, index) {\n if (!isObject(props) || _typeof(props) !== 'object') {\n return null;\n }\n var out = null;\n Object.keys(props).forEach(function (key) {\n var item = props[key];\n if (EventKeys.includes(key) && typeof item === 'function') {\n if (!out) out = {};\n out[key] = getEventHandlerOfChild(item, data, index);\n }\n });\n return out;\n};","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};","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}","var _excluded = [\"children\", \"className\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nexport var Layer = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var children = props.children,\n className = props.className,\n others = _objectWithoutProperties(props, _excluded);\n var layerClass = clsx('recharts-layer', className);\n return /*#__PURE__*/React.createElement(\"g\", _extends({\n className: layerClass\n }, filterProps(others, true), {\n ref: ref\n }), children);\n});","/* 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};","/**\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 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","/** 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","/**\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","/** 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","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 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 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","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\n\nfunction appendRound(digits) {\n let d = Math.floor(digits);\n if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\n\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`M${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`M${x0},${y0}`;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._append`L${x0},${y0}`;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n }\n }\n rect(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\n\nexport function path() {\n return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n let digits = 3;\n\n shape.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n\n return () => new Path(digits);\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\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 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: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(line);\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\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) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\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","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 {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 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","export default function() {}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.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 switch (this._point) {\n case 3: point(this, this._x1, this._y1); // falls through\n case 2: this._context.lineTo(this._x1, this._y1); 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 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; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // 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 Basis(context);\n}\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 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","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","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); }\nvar _excluded = [\"type\", \"size\", \"sizeType\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/**\n * @fileOverview Curve\n */\nimport React from 'react';\nimport upperFirst from 'lodash/upperFirst';\nimport { symbol as shapeSymbol, symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye } from 'victory-vendor/d3-shape';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nvar symbolFactories = {\n symbolCircle: symbolCircle,\n symbolCross: symbolCross,\n symbolDiamond: symbolDiamond,\n symbolSquare: symbolSquare,\n symbolStar: symbolStar,\n symbolTriangle: symbolTriangle,\n symbolWye: symbolWye\n};\nvar RADIAN = Math.PI / 180;\nvar getSymbolFactory = function getSymbolFactory(type) {\n var name = \"symbol\".concat(upperFirst(type));\n return symbolFactories[name] || symbolCircle;\n};\nvar calculateAreaSize = function calculateAreaSize(size, sizeType, type) {\n if (sizeType === 'area') {\n return size;\n }\n switch (type) {\n case 'cross':\n return 5 * size * size / 9;\n case 'diamond':\n return 0.5 * size * size / Math.sqrt(3);\n case 'square':\n return size * size;\n case 'star':\n {\n var angle = 18 * RADIAN;\n return 1.25 * size * size * (Math.tan(angle) - Math.tan(angle * 2) * Math.pow(Math.tan(angle), 2));\n }\n case 'triangle':\n return Math.sqrt(3) * size * size / 4;\n case 'wye':\n return (21 - 10 * Math.sqrt(3)) * size * size / 8;\n default:\n return Math.PI * size * size / 4;\n }\n};\nvar registerSymbol = function registerSymbol(key, factory) {\n symbolFactories[\"symbol\".concat(upperFirst(key))] = factory;\n};\nexport var Symbols = function Symbols(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'circle' : _ref$type,\n _ref$size = _ref.size,\n size = _ref$size === void 0 ? 64 : _ref$size,\n _ref$sizeType = _ref.sizeType,\n sizeType = _ref$sizeType === void 0 ? 'area' : _ref$sizeType,\n rest = _objectWithoutProperties(_ref, _excluded);\n var props = _objectSpread(_objectSpread({}, rest), {}, {\n type: type,\n size: size,\n sizeType: sizeType\n });\n\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n var getPath = function getPath() {\n var symbolFactory = getSymbolFactory(type);\n var symbol = shapeSymbol().type(symbolFactory).size(calculateAreaSize(size, sizeType, type));\n return symbol();\n };\n var className = props.className,\n cx = props.cx,\n cy = props.cy;\n var filteredProps = filterProps(props, true);\n if (cx === +cx && cy === +cy && size === +size) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filteredProps, {\n className: clsx('recharts-symbols', className),\n transform: \"translate(\".concat(cx, \", \").concat(cy, \")\"),\n d: getPath()\n }));\n }\n return null;\n};\nSymbols.registerSymbol = registerSymbol;","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Default Legend Content\n */\nimport React, { PureComponent } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { warn } from '../util/LogUtils';\nimport { Surface } from '../container/Surface';\nimport { Symbols } from '../shape/Symbols';\nimport { adaptEventsOfChild } from '../util/types';\nvar SIZE = 32;\nexport var DefaultLegendContent = /*#__PURE__*/function (_PureComponent) {\n _inherits(DefaultLegendContent, _PureComponent);\n function DefaultLegendContent() {\n _classCallCheck(this, DefaultLegendContent);\n return _callSuper(this, DefaultLegendContent, arguments);\n }\n _createClass(DefaultLegendContent, [{\n key: \"renderIcon\",\n value:\n /**\n * Render the path of icon\n * @param {Object} data Data of each legend item\n * @return {String} Path element\n */\n function renderIcon(data) {\n var inactiveColor = this.props.inactiveColor;\n var halfSize = SIZE / 2;\n var sixthSize = SIZE / 6;\n var thirdSize = SIZE / 3;\n var color = data.inactive ? inactiveColor : data.color;\n if (data.type === 'plainline') {\n return /*#__PURE__*/React.createElement(\"line\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n strokeDasharray: data.payload.strokeDasharray,\n x1: 0,\n y1: halfSize,\n x2: SIZE,\n y2: halfSize,\n className: \"recharts-legend-icon\"\n });\n }\n if (data.type === 'line') {\n return /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n d: \"M0,\".concat(halfSize, \"h\").concat(thirdSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n H\").concat(SIZE, \"M\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(thirdSize, \",\").concat(halfSize),\n className: \"recharts-legend-icon\"\n });\n }\n if (data.type === 'rect') {\n return /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"none\",\n fill: color,\n d: \"M0,\".concat(SIZE / 8, \"h\").concat(SIZE, \"v\").concat(SIZE * 3 / 4, \"h\").concat(-SIZE, \"z\"),\n className: \"recharts-legend-icon\"\n });\n }\n if ( /*#__PURE__*/React.isValidElement(data.legendIcon)) {\n var iconProps = _objectSpread({}, data);\n delete iconProps.legendIcon;\n return /*#__PURE__*/React.cloneElement(data.legendIcon, iconProps);\n }\n return /*#__PURE__*/React.createElement(Symbols, {\n fill: color,\n cx: halfSize,\n cy: halfSize,\n size: SIZE,\n sizeType: \"diameter\",\n type: data.type\n });\n }\n\n /**\n * Draw items of legend\n * @return {ReactElement} Items\n */\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this = this;\n var _this$props = this.props,\n payload = _this$props.payload,\n iconSize = _this$props.iconSize,\n layout = _this$props.layout,\n formatter = _this$props.formatter,\n inactiveColor = _this$props.inactiveColor;\n var viewBox = {\n x: 0,\n y: 0,\n width: SIZE,\n height: SIZE\n };\n var itemStyle = {\n display: layout === 'horizontal' ? 'inline-block' : 'block',\n marginRight: 10\n };\n var svgStyle = {\n display: 'inline-block',\n verticalAlign: 'middle',\n marginRight: 4\n };\n return payload.map(function (entry, i) {\n var finalFormatter = entry.formatter || formatter;\n var className = clsx(_defineProperty(_defineProperty({\n 'recharts-legend-item': true\n }, \"legend-item-\".concat(i), true), \"inactive\", entry.inactive));\n if (entry.type === 'none') {\n return null;\n }\n\n // Do not render entry.value as functions. Always require static string properties.\n var entryValue = !isFunction(entry.value) ? entry.value : null;\n warn(!isFunction(entry.value), \"The name property is also required when using a function for the dataKey of a chart's cartesian components. Ex: \" // eslint-disable-line max-len\n );\n var color = entry.inactive ? inactiveColor : entry.color;\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n className: className,\n style: itemStyle\n // eslint-disable-next-line react/no-array-index-key\n ,\n key: \"legend-item-\".concat(i)\n }, adaptEventsOfChild(_this.props, entry, i)), /*#__PURE__*/React.createElement(Surface, {\n width: iconSize,\n height: iconSize,\n viewBox: viewBox,\n style: svgStyle\n }, _this.renderIcon(entry)), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-legend-item-text\",\n style: {\n color: color\n }\n }, finalFormatter ? finalFormatter(entryValue, entry, i) : entryValue));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n payload = _this$props2.payload,\n layout = _this$props2.layout,\n align = _this$props2.align;\n if (!payload || !payload.length) {\n return null;\n }\n var finalStyle = {\n padding: 0,\n margin: 0,\n textAlign: layout === 'horizontal' ? align : 'left'\n };\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-default-legend\",\n style: finalStyle\n }, this.renderItems());\n }\n }]);\n return DefaultLegendContent;\n}(PureComponent);\n_defineProperty(DefaultLegendContent, \"displayName\", 'Legend');\n_defineProperty(DefaultLegendContent, \"defaultProps\", {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'middle',\n inactiveColor: '#ccc'\n});","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","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","/** 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","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","/**\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 * 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 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 root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\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 * 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 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","/**\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","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","/**\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","/**\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","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","/**\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 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 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 * 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 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","/** 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","/** 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 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","/**\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 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","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 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","/** 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","/**\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 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 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","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 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","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 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","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 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 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","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","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 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 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","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","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","/**\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 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","/**\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 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","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","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","/**\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","/**\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","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 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","/**\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","/**\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","/**\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 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 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","/**\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 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 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","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","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); }\nvar _excluded = [\"ref\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/**\n * @fileOverview Legend\n */\nimport React, { PureComponent } from 'react';\nimport { DefaultLegendContent } from './DefaultLegendContent';\nimport { isNumber } from '../util/DataUtils';\nimport { getUniqPayload } from '../util/payload/getUniqPayload';\nfunction defaultUniqBy(entry) {\n return entry.value;\n}\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n if (typeof content === 'function') {\n return /*#__PURE__*/React.createElement(content, props);\n }\n var ref = props.ref,\n otherProps = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/React.createElement(DefaultLegendContent, otherProps);\n}\nvar EPS = 1;\nexport var Legend = /*#__PURE__*/function (_PureComponent) {\n _inherits(Legend, _PureComponent);\n function Legend() {\n var _this;\n _classCallCheck(this, Legend);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Legend, [].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"lastBoundingBox\", {\n width: -1,\n height: -1\n });\n return _this;\n }\n _createClass(Legend, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"getBBox\",\n value: function getBBox() {\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var _box = this.wrapperNode.getBoundingClientRect();\n _box.height = this.wrapperNode.offsetHeight;\n _box.width = this.wrapperNode.offsetWidth;\n return _box;\n }\n return null;\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var onBBoxUpdate = this.props.onBBoxUpdate;\n var box = this.getBBox();\n if (box) {\n if (Math.abs(box.width - this.lastBoundingBox.width) > EPS || Math.abs(box.height - this.lastBoundingBox.height) > EPS) {\n this.lastBoundingBox.width = box.width;\n this.lastBoundingBox.height = box.height;\n if (onBBoxUpdate) {\n onBBoxUpdate(box);\n }\n }\n } else if (this.lastBoundingBox.width !== -1 || this.lastBoundingBox.height !== -1) {\n this.lastBoundingBox.width = -1;\n this.lastBoundingBox.height = -1;\n if (onBBoxUpdate) {\n onBBoxUpdate(null);\n }\n }\n }\n }, {\n key: \"getBBoxSnapshot\",\n value: function getBBoxSnapshot() {\n if (this.lastBoundingBox.width >= 0 && this.lastBoundingBox.height >= 0) {\n return _objectSpread({}, this.lastBoundingBox);\n }\n return {\n width: 0,\n height: 0\n };\n }\n }, {\n key: \"getDefaultPosition\",\n value: function getDefaultPosition(style) {\n var _this$props = this.props,\n layout = _this$props.layout,\n align = _this$props.align,\n verticalAlign = _this$props.verticalAlign,\n margin = _this$props.margin,\n chartWidth = _this$props.chartWidth,\n chartHeight = _this$props.chartHeight;\n var hPos, vPos;\n if (!style || (style.left === undefined || style.left === null) && (style.right === undefined || style.right === null)) {\n if (align === 'center' && layout === 'vertical') {\n var _box2 = this.getBBoxSnapshot();\n hPos = {\n left: ((chartWidth || 0) - _box2.width) / 2\n };\n } else {\n hPos = align === 'right' ? {\n right: margin && margin.right || 0\n } : {\n left: margin && margin.left || 0\n };\n }\n }\n if (!style || (style.top === undefined || style.top === null) && (style.bottom === undefined || style.bottom === null)) {\n if (verticalAlign === 'middle') {\n var _box3 = this.getBBoxSnapshot();\n vPos = {\n top: ((chartHeight || 0) - _box3.height) / 2\n };\n } else {\n vPos = verticalAlign === 'bottom' ? {\n bottom: margin && margin.bottom || 0\n } : {\n top: margin && margin.top || 0\n };\n }\n }\n return _objectSpread(_objectSpread({}, hPos), vPos);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props2 = this.props,\n content = _this$props2.content,\n width = _this$props2.width,\n height = _this$props2.height,\n wrapperStyle = _this$props2.wrapperStyle,\n payloadUniqBy = _this$props2.payloadUniqBy,\n payload = _this$props2.payload;\n var outerStyle = _objectSpread(_objectSpread({\n position: 'absolute',\n width: width || 'auto',\n height: height || 'auto'\n }, this.getDefaultPosition(wrapperStyle)), wrapperStyle);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"recharts-legend-wrapper\",\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: getUniqPayload(payload, payloadUniqBy, defaultUniqBy)\n })));\n }\n }], [{\n key: \"getWithHeight\",\n value: function getWithHeight(item, chartWidth) {\n var layout = item.props.layout;\n if (layout === 'vertical' && isNumber(item.props.height)) {\n return {\n height: item.props.height\n };\n }\n if (layout === 'horizontal') {\n return {\n width: item.props.width || chartWidth\n };\n }\n return null;\n }\n }]);\n return Legend;\n}(PureComponent);\n_defineProperty(Legend, \"displayName\", 'Legend');\n_defineProperty(Legend, \"defaultProps\", {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'bottom'\n});","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","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","/**\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 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 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","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 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","/**\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","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 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 * 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","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","/**\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 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 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","/** 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 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","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 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 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","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Default Tooltip Content\n */\n\nimport React from 'react';\nimport sortBy from 'lodash/sortBy';\nimport isNil from 'lodash/isNil';\nimport clsx from 'clsx';\nimport { isNumOrStr } from '../util/DataUtils';\nfunction defaultFormatter(value) {\n return Array.isArray(value) && isNumOrStr(value[0]) && isNumOrStr(value[1]) ? value.join(' ~ ') : value;\n}\nexport var DefaultTooltipContent = function DefaultTooltipContent(props) {\n var _props$separator = props.separator,\n separator = _props$separator === void 0 ? ' : ' : _props$separator,\n _props$contentStyle = props.contentStyle,\n contentStyle = _props$contentStyle === void 0 ? {} : _props$contentStyle,\n _props$itemStyle = props.itemStyle,\n itemStyle = _props$itemStyle === void 0 ? {} : _props$itemStyle,\n _props$labelStyle = props.labelStyle,\n labelStyle = _props$labelStyle === void 0 ? {} : _props$labelStyle,\n payload = props.payload,\n formatter = props.formatter,\n itemSorter = props.itemSorter,\n wrapperClassName = props.wrapperClassName,\n labelClassName = props.labelClassName,\n label = props.label,\n labelFormatter = props.labelFormatter,\n _props$accessibilityL = props.accessibilityLayer,\n accessibilityLayer = _props$accessibilityL === void 0 ? false : _props$accessibilityL;\n var renderContent = function renderContent() {\n if (payload && payload.length) {\n var listStyle = {\n padding: 0,\n margin: 0\n };\n var items = (itemSorter ? sortBy(payload, itemSorter) : payload).map(function (entry, i) {\n if (entry.type === 'none') {\n return null;\n }\n var finalItemStyle = _objectSpread({\n display: 'block',\n paddingTop: 4,\n paddingBottom: 4,\n color: entry.color || '#000'\n }, itemStyle);\n var finalFormatter = entry.formatter || formatter || defaultFormatter;\n var value = entry.value,\n name = entry.name;\n var finalValue = value;\n var finalName = name;\n if (finalFormatter && finalValue != null && finalName != null) {\n var formatted = finalFormatter(value, name, entry, i, payload);\n if (Array.isArray(formatted)) {\n var _formatted = _slicedToArray(formatted, 2);\n finalValue = _formatted[0];\n finalName = _formatted[1];\n } else {\n finalValue = formatted;\n }\n }\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n className: \"recharts-tooltip-item\",\n key: \"tooltip-item-\".concat(i),\n style: finalItemStyle\n }, isNumOrStr(finalName) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-name\"\n }, finalName) : null, isNumOrStr(finalName) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-separator\"\n }, separator) : null, /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-value\"\n }, finalValue), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-unit\"\n }, entry.unit || ''))\n );\n });\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-tooltip-item-list\",\n style: listStyle\n }, items);\n }\n return null;\n };\n var finalStyle = _objectSpread({\n margin: 0,\n padding: 10,\n backgroundColor: '#fff',\n border: '1px solid #ccc',\n whiteSpace: 'nowrap'\n }, contentStyle);\n var finalLabelStyle = _objectSpread({\n margin: 0\n }, labelStyle);\n var hasLabel = !isNil(label);\n var finalLabel = hasLabel ? label : '';\n var wrapperCN = clsx('recharts-default-tooltip', wrapperClassName);\n var labelCN = clsx('recharts-tooltip-label', labelClassName);\n if (hasLabel && labelFormatter && payload !== undefined && payload !== null) {\n finalLabel = labelFormatter(label, payload);\n }\n var accessibilityAttributes = accessibilityLayer ? {\n role: 'status',\n 'aria-live': 'assertive'\n } : {};\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: wrapperCN,\n style: finalStyle\n }, accessibilityAttributes), /*#__PURE__*/React.createElement(\"p\", {\n className: labelCN,\n style: finalLabelStyle\n }, /*#__PURE__*/React.isValidElement(finalLabel) ? finalLabel : \"\".concat(finalLabel)), renderContent());\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport clsx from 'clsx';\nimport { isNumber } from '../DataUtils';\nvar CSS_CLASS_PREFIX = 'recharts-tooltip-wrapper';\nvar TOOLTIP_HIDDEN = {\n visibility: 'hidden'\n};\nexport function getTooltipCSSClassName(_ref) {\n var coordinate = _ref.coordinate,\n translateX = _ref.translateX,\n translateY = _ref.translateY;\n return clsx(CSS_CLASS_PREFIX, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, \"\".concat(CSS_CLASS_PREFIX, \"-right\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX >= coordinate.x), \"\".concat(CSS_CLASS_PREFIX, \"-left\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX < coordinate.x), \"\".concat(CSS_CLASS_PREFIX, \"-bottom\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY >= coordinate.y), \"\".concat(CSS_CLASS_PREFIX, \"-top\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY < coordinate.y));\n}\nexport function getTooltipTranslateXY(_ref2) {\n var allowEscapeViewBox = _ref2.allowEscapeViewBox,\n coordinate = _ref2.coordinate,\n key = _ref2.key,\n offsetTopLeft = _ref2.offsetTopLeft,\n position = _ref2.position,\n reverseDirection = _ref2.reverseDirection,\n tooltipDimension = _ref2.tooltipDimension,\n viewBox = _ref2.viewBox,\n viewBoxDimension = _ref2.viewBoxDimension;\n if (position && isNumber(position[key])) {\n return position[key];\n }\n var negative = coordinate[key] - tooltipDimension - offsetTopLeft;\n var positive = coordinate[key] + offsetTopLeft;\n if (allowEscapeViewBox[key]) {\n return reverseDirection[key] ? negative : positive;\n }\n if (reverseDirection[key]) {\n var _tooltipBoundary = negative;\n var _viewBoxBoundary = viewBox[key];\n if (_tooltipBoundary < _viewBoxBoundary) {\n return Math.max(positive, viewBox[key]);\n }\n return Math.max(negative, viewBox[key]);\n }\n var tooltipBoundary = positive + tooltipDimension;\n var viewBoxBoundary = viewBox[key] + viewBoxDimension;\n if (tooltipBoundary > viewBoxBoundary) {\n return Math.max(negative, viewBox[key]);\n }\n return Math.max(positive, viewBox[key]);\n}\nexport function getTransformStyle(_ref3) {\n var translateX = _ref3.translateX,\n translateY = _ref3.translateY,\n useTranslate3d = _ref3.useTranslate3d;\n return {\n transform: useTranslate3d ? \"translate3d(\".concat(translateX, \"px, \").concat(translateY, \"px, 0)\") : \"translate(\".concat(translateX, \"px, \").concat(translateY, \"px)\")\n };\n}\nexport function getTooltipTranslate(_ref4) {\n var allowEscapeViewBox = _ref4.allowEscapeViewBox,\n coordinate = _ref4.coordinate,\n offsetTopLeft = _ref4.offsetTopLeft,\n position = _ref4.position,\n reverseDirection = _ref4.reverseDirection,\n tooltipBox = _ref4.tooltipBox,\n useTranslate3d = _ref4.useTranslate3d,\n viewBox = _ref4.viewBox;\n var cssProperties, translateX, translateY;\n if (tooltipBox.height > 0 && tooltipBox.width > 0 && coordinate) {\n translateX = getTooltipTranslateXY({\n allowEscapeViewBox: allowEscapeViewBox,\n coordinate: coordinate,\n key: 'x',\n offsetTopLeft: offsetTopLeft,\n position: position,\n reverseDirection: reverseDirection,\n tooltipDimension: tooltipBox.width,\n viewBox: viewBox,\n viewBoxDimension: viewBox.width\n });\n translateY = getTooltipTranslateXY({\n allowEscapeViewBox: allowEscapeViewBox,\n coordinate: coordinate,\n key: 'y',\n offsetTopLeft: offsetTopLeft,\n position: position,\n reverseDirection: reverseDirection,\n tooltipDimension: tooltipBox.height,\n viewBox: viewBox,\n viewBoxDimension: viewBox.height\n });\n cssProperties = getTransformStyle({\n translateX: translateX,\n translateY: translateY,\n useTranslate3d: useTranslate3d\n });\n } else {\n cssProperties = TOOLTIP_HIDDEN;\n }\n return {\n cssProperties: cssProperties,\n cssClasses: getTooltipCSSClassName({\n translateX: translateX,\n translateY: translateY,\n coordinate: coordinate\n })\n };\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React, { PureComponent } from 'react';\nimport { getTooltipTranslate } from '../util/tooltip/translate';\nvar EPSILON = 1;\nexport var TooltipBoundingBox = /*#__PURE__*/function (_PureComponent) {\n _inherits(TooltipBoundingBox, _PureComponent);\n function TooltipBoundingBox() {\n var _this;\n _classCallCheck(this, TooltipBoundingBox);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, TooltipBoundingBox, [].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n dismissed: false,\n dismissedAtCoordinate: {\n x: 0,\n y: 0\n },\n lastBoundingBox: {\n width: -1,\n height: -1\n }\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.state.lastBoundingBox.width) > EPSILON || Math.abs(box.height - this.state.lastBoundingBox.height) > EPSILON) {\n this.setState({\n lastBoundingBox: {\n width: box.width,\n height: box.height\n }\n });\n }\n } else if (this.state.lastBoundingBox.width !== -1 || this.state.lastBoundingBox.height !== -1) {\n this.setState({\n lastBoundingBox: {\n width: -1,\n height: -1\n }\n });\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n document.addEventListener('keydown', this.handleKeyDown);\n this.updateBBox();\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n document.removeEventListener('keydown', this.handleKeyDown);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var _this$props$coordinat5, _this$props$coordinat6;\n if (this.props.active) {\n this.updateBBox();\n }\n if (!this.state.dismissed) {\n return;\n }\n if (((_this$props$coordinat5 = this.props.coordinate) === null || _this$props$coordinat5 === void 0 ? void 0 : _this$props$coordinat5.x) !== this.state.dismissedAtCoordinate.x || ((_this$props$coordinat6 = this.props.coordinate) === null || _this$props$coordinat6 === void 0 ? void 0 : _this$props$coordinat6.y) !== this.state.dismissedAtCoordinate.y) {\n this.state.dismissed = false;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props = this.props,\n active = _this$props.active,\n allowEscapeViewBox = _this$props.allowEscapeViewBox,\n animationDuration = _this$props.animationDuration,\n animationEasing = _this$props.animationEasing,\n children = _this$props.children,\n coordinate = _this$props.coordinate,\n hasPayload = _this$props.hasPayload,\n isAnimationActive = _this$props.isAnimationActive,\n offset = _this$props.offset,\n position = _this$props.position,\n reverseDirection = _this$props.reverseDirection,\n useTranslate3d = _this$props.useTranslate3d,\n viewBox = _this$props.viewBox,\n wrapperStyle = _this$props.wrapperStyle;\n var _getTooltipTranslate = getTooltipTranslate({\n allowEscapeViewBox: allowEscapeViewBox,\n coordinate: coordinate,\n offsetTopLeft: offset,\n position: position,\n reverseDirection: reverseDirection,\n tooltipBox: this.state.lastBoundingBox,\n useTranslate3d: useTranslate3d,\n viewBox: viewBox\n }),\n cssClasses = _getTooltipTranslate.cssClasses,\n cssProperties = _getTooltipTranslate.cssProperties;\n var outerStyle = _objectSpread(_objectSpread({\n transition: isAnimationActive && active ? \"transform \".concat(animationDuration, \"ms \").concat(animationEasing) : undefined\n }, cssProperties), {}, {\n pointerEvents: 'none',\n visibility: !this.state.dismissed && active && hasPayload ? 'visible' : 'hidden',\n position: 'absolute',\n top: 0,\n left: 0\n }, wrapperStyle);\n return (\n /*#__PURE__*/\n // This element allow listening to the `Escape` key.\n // See https://github.com/recharts/recharts/pull/2925\n React.createElement(\"div\", {\n tabIndex: -1,\n className: cssClasses,\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, children)\n );\n }\n }]);\n return TooltipBoundingBox;\n}(PureComponent);","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};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Tooltip\n */\nimport React, { PureComponent } from 'react';\nimport { DefaultTooltipContent } from './DefaultTooltipContent';\nimport { TooltipBoundingBox } from './TooltipBoundingBox';\nimport { Global } from '../util/Global';\nimport { getUniqPayload } from '../util/payload/getUniqPayload';\nfunction defaultUniqBy(entry) {\n return entry.dataKey;\n}\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n if (typeof content === 'function') {\n return /*#__PURE__*/React.createElement(content, props);\n }\n return /*#__PURE__*/React.createElement(DefaultTooltipContent, props);\n}\nexport var Tooltip = /*#__PURE__*/function (_PureComponent) {\n _inherits(Tooltip, _PureComponent);\n function Tooltip() {\n _classCallCheck(this, Tooltip);\n return _callSuper(this, Tooltip, arguments);\n }\n _createClass(Tooltip, [{\n key: \"render\",\n value: function render() {\n var _this = this;\n var _this$props = this.props,\n active = _this$props.active,\n allowEscapeViewBox = _this$props.allowEscapeViewBox,\n animationDuration = _this$props.animationDuration,\n animationEasing = _this$props.animationEasing,\n content = _this$props.content,\n coordinate = _this$props.coordinate,\n filterNull = _this$props.filterNull,\n isAnimationActive = _this$props.isAnimationActive,\n offset = _this$props.offset,\n payload = _this$props.payload,\n payloadUniqBy = _this$props.payloadUniqBy,\n position = _this$props.position,\n reverseDirection = _this$props.reverseDirection,\n useTranslate3d = _this$props.useTranslate3d,\n viewBox = _this$props.viewBox,\n wrapperStyle = _this$props.wrapperStyle;\n var finalPayload = payload !== null && payload !== void 0 ? payload : [];\n if (filterNull && finalPayload.length) {\n finalPayload = getUniqPayload(payload.filter(function (entry) {\n return entry.value != null && (entry.hide !== true || _this.props.includeHidden);\n }), payloadUniqBy, defaultUniqBy);\n }\n var hasPayload = finalPayload.length > 0;\n return /*#__PURE__*/React.createElement(TooltipBoundingBox, {\n allowEscapeViewBox: allowEscapeViewBox,\n animationDuration: animationDuration,\n animationEasing: animationEasing,\n isAnimationActive: isAnimationActive,\n active: active,\n coordinate: coordinate,\n hasPayload: hasPayload,\n offset: offset,\n position: position,\n reverseDirection: reverseDirection,\n useTranslate3d: useTranslate3d,\n viewBox: viewBox,\n wrapperStyle: wrapperStyle\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: finalPayload\n })));\n }\n }]);\n return Tooltip;\n}(PureComponent);\n_defineProperty(Tooltip, \"displayName\", 'Tooltip');\n_defineProperty(Tooltip, \"defaultProps\", {\n accessibilityLayer: false,\n allowEscapeViewBox: {\n x: false,\n y: false\n },\n animationDuration: 400,\n animationEasing: 'ease',\n contentStyle: {},\n coordinate: {\n x: 0,\n y: 0\n },\n cursor: true,\n cursorStyle: {},\n filterNull: true,\n isAnimationActive: !Global.isSsr,\n itemStyle: {},\n labelStyle: {},\n offset: 10,\n reverseDirection: {\n x: false,\n y: false\n },\n separator: ' : ',\n trigger: 'hover',\n useTranslate3d: false,\n viewBox: {\n x: 0,\n y: 0,\n height: 0,\n width: 0\n },\n wrapperStyle: {}\n});","var 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","/** 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","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","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 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","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","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n/**\n * @fileOverview Wrapper component to make charts adapt to the size of parent * DOM\n */\nimport clsx from 'clsx';\nimport React, { forwardRef, cloneElement, useState, useImperativeHandle, useRef, useEffect, useMemo, useCallback } from 'react';\nimport throttle from 'lodash/throttle';\nimport { isElement } from 'react-is';\nimport { isPercent } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nimport { getDisplayName } from '../util/ReactUtils';\nexport var ResponsiveContainer = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var aspect = _ref.aspect,\n _ref$initialDimension = _ref.initialDimension,\n initialDimension = _ref$initialDimension === void 0 ? {\n width: -1,\n height: -1\n } : _ref$initialDimension,\n _ref$width = _ref.width,\n width = _ref$width === void 0 ? '100%' : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? '100%' : _ref$height,\n _ref$minWidth = _ref.minWidth,\n minWidth = _ref$minWidth === void 0 ? 0 : _ref$minWidth,\n minHeight = _ref.minHeight,\n maxHeight = _ref.maxHeight,\n children = _ref.children,\n _ref$debounce = _ref.debounce,\n debounce = _ref$debounce === void 0 ? 0 : _ref$debounce,\n id = _ref.id,\n className = _ref.className,\n onResize = _ref.onResize,\n _ref$style = _ref.style,\n style = _ref$style === void 0 ? {} : _ref$style;\n var containerRef = useRef(null);\n var onResizeRef = useRef();\n onResizeRef.current = onResize;\n useImperativeHandle(ref, function () {\n return Object.defineProperty(containerRef.current, 'current', {\n get: function get() {\n // eslint-disable-next-line no-console\n console.warn('The usage of ref.current.current is deprecated and will no longer be supported.');\n return containerRef.current;\n },\n configurable: true\n });\n });\n var _useState = useState({\n containerWidth: initialDimension.width,\n containerHeight: initialDimension.height\n }),\n _useState2 = _slicedToArray(_useState, 2),\n sizes = _useState2[0],\n setSizes = _useState2[1];\n var setContainerSize = useCallback(function (newWidth, newHeight) {\n setSizes(function (prevState) {\n var roundedWidth = Math.round(newWidth);\n var roundedHeight = Math.round(newHeight);\n if (prevState.containerWidth === roundedWidth && prevState.containerHeight === roundedHeight) {\n return prevState;\n }\n return {\n containerWidth: roundedWidth,\n containerHeight: roundedHeight\n };\n });\n }, []);\n useEffect(function () {\n var callback = function callback(entries) {\n var _onResizeRef$current;\n var _entries$0$contentRec = entries[0].contentRect,\n containerWidth = _entries$0$contentRec.width,\n containerHeight = _entries$0$contentRec.height;\n setContainerSize(containerWidth, containerHeight);\n (_onResizeRef$current = onResizeRef.current) === null || _onResizeRef$current === void 0 || _onResizeRef$current.call(onResizeRef, containerWidth, containerHeight);\n };\n if (debounce > 0) {\n callback = throttle(callback, debounce, {\n trailing: true,\n leading: false\n });\n }\n var observer = new ResizeObserver(callback);\n var _containerRef$current = containerRef.current.getBoundingClientRect(),\n containerWidth = _containerRef$current.width,\n containerHeight = _containerRef$current.height;\n setContainerSize(containerWidth, containerHeight);\n observer.observe(containerRef.current);\n return function () {\n observer.disconnect();\n };\n }, [setContainerSize, debounce]);\n var chartContent = useMemo(function () {\n var containerWidth = sizes.containerWidth,\n containerHeight = sizes.containerHeight;\n if (containerWidth < 0 || containerHeight < 0) {\n return null;\n }\n warn(isPercent(width) || isPercent(height), \"The width(%s) and height(%s) are both fixed numbers,\\n maybe you don't need to use a ResponsiveContainer.\", width, height);\n warn(!aspect || aspect > 0, 'The aspect(%s) must be greater than zero.', aspect);\n var calculatedWidth = isPercent(width) ? containerWidth : width;\n var calculatedHeight = isPercent(height) ? containerHeight : height;\n if (aspect && aspect > 0) {\n // Preserve the desired aspect ratio\n if (calculatedWidth) {\n // Will default to using width for aspect ratio\n calculatedHeight = calculatedWidth / aspect;\n } else if (calculatedHeight) {\n // But we should also take height into consideration\n calculatedWidth = calculatedHeight * aspect;\n }\n\n // if maxHeight is set, overwrite if calculatedHeight is greater than maxHeight\n if (maxHeight && calculatedHeight > maxHeight) {\n calculatedHeight = maxHeight;\n }\n }\n warn(calculatedWidth > 0 || calculatedHeight > 0, \"The width(%s) and height(%s) of chart should be greater than 0,\\n please check the style of container, or the props width(%s) and height(%s),\\n or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the\\n height and width.\", calculatedWidth, calculatedHeight, width, height, minWidth, minHeight, aspect);\n var isCharts = !Array.isArray(children) && isElement(children) && getDisplayName(children.type).endsWith('Chart');\n return React.Children.map(children, function (child) {\n if (isElement(child)) {\n return /*#__PURE__*/cloneElement(child, _objectSpread({\n width: calculatedWidth,\n height: calculatedHeight\n }, isCharts ? {\n style: _objectSpread({\n height: '100%',\n width: '100%',\n maxHeight: calculatedHeight,\n maxWidth: calculatedWidth\n }, child.props.style)\n } : {}));\n }\n return child;\n });\n }, [aspect, children, height, maxHeight, minHeight, minWidth, sizes, width]);\n return /*#__PURE__*/React.createElement(\"div\", {\n id: id ? \"\".concat(id) : undefined,\n className: clsx('recharts-responsive-container', className),\n style: _objectSpread(_objectSpread({}, style), {}, {\n width: width,\n height: height,\n minWidth: minWidth,\n minHeight: minHeight,\n maxHeight: maxHeight\n }),\n ref: containerRef\n }, chartContent);\n});","/**\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); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { 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};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar MULTIPLY_OR_DIVIDE_REGEX = /(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)([*/])(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)/;\nvar ADD_OR_SUBTRACT_REGEX = /(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)([+-])(-?\\d+(?:\\.\\d+)?[a-zA-Z%]*)/;\nvar CSS_LENGTH_UNIT_REGEX = /^px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q$/;\nvar NUM_SPLIT_REGEX = /(-?\\d+(?:\\.\\d+)?)([a-zA-Z%]+)?/;\nvar CONVERSION_RATES = {\n cm: 96 / 2.54,\n mm: 96 / 25.4,\n pt: 96 / 72,\n pc: 96 / 6,\n \"in\": 96,\n Q: 96 / (2.54 * 40),\n px: 1\n};\nvar FIXED_CSS_LENGTH_UNITS = Object.keys(CONVERSION_RATES);\nvar STR_NAN = 'NaN';\nfunction convertToPx(value, unit) {\n return value * CONVERSION_RATES[unit];\n}\nvar DecimalCSS = /*#__PURE__*/function () {\n function DecimalCSS(num, unit) {\n _classCallCheck(this, DecimalCSS);\n this.num = num;\n this.unit = unit;\n this.num = num;\n this.unit = unit;\n if (Number.isNaN(num)) {\n this.unit = '';\n }\n if (unit !== '' && !CSS_LENGTH_UNIT_REGEX.test(unit)) {\n this.num = NaN;\n this.unit = '';\n }\n if (FIXED_CSS_LENGTH_UNITS.includes(unit)) {\n this.num = convertToPx(num, unit);\n this.unit = 'px';\n }\n }\n _createClass(DecimalCSS, [{\n key: \"add\",\n value: function add(other) {\n if (this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num + other.num, this.unit);\n }\n }, {\n key: \"subtract\",\n value: function subtract(other) {\n if (this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num - other.num, this.unit);\n }\n }, {\n key: \"multiply\",\n value: function multiply(other) {\n if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num * other.num, this.unit || other.unit);\n }\n }, {\n key: \"divide\",\n value: function divide(other) {\n if (this.unit !== '' && other.unit !== '' && this.unit !== other.unit) {\n return new DecimalCSS(NaN, '');\n }\n return new DecimalCSS(this.num / other.num, this.unit || other.unit);\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.num).concat(this.unit);\n }\n }, {\n key: \"isNaN\",\n value: function isNaN() {\n return Number.isNaN(this.num);\n }\n }], [{\n key: \"parse\",\n value: function parse(str) {\n var _NUM_SPLIT_REGEX$exec;\n var _ref = (_NUM_SPLIT_REGEX$exec = NUM_SPLIT_REGEX.exec(str)) !== null && _NUM_SPLIT_REGEX$exec !== void 0 ? _NUM_SPLIT_REGEX$exec : [],\n _ref2 = _slicedToArray(_ref, 3),\n numStr = _ref2[1],\n unit = _ref2[2];\n return new DecimalCSS(parseFloat(numStr), unit !== null && unit !== void 0 ? unit : '');\n }\n }]);\n return DecimalCSS;\n}();\nfunction calculateArithmetic(expr) {\n if (expr.includes(STR_NAN)) {\n return STR_NAN;\n }\n var newExpr = expr;\n while (newExpr.includes('*') || newExpr.includes('/')) {\n var _MULTIPLY_OR_DIVIDE_R;\n var _ref3 = (_MULTIPLY_OR_DIVIDE_R = MULTIPLY_OR_DIVIDE_REGEX.exec(newExpr)) !== null && _MULTIPLY_OR_DIVIDE_R !== void 0 ? _MULTIPLY_OR_DIVIDE_R : [],\n _ref4 = _slicedToArray(_ref3, 4),\n leftOperand = _ref4[1],\n operator = _ref4[2],\n rightOperand = _ref4[3];\n var lTs = DecimalCSS.parse(leftOperand !== null && leftOperand !== void 0 ? leftOperand : '');\n var rTs = DecimalCSS.parse(rightOperand !== null && rightOperand !== void 0 ? rightOperand : '');\n var result = operator === '*' ? lTs.multiply(rTs) : lTs.divide(rTs);\n if (result.isNaN()) {\n return STR_NAN;\n }\n newExpr = newExpr.replace(MULTIPLY_OR_DIVIDE_REGEX, result.toString());\n }\n while (newExpr.includes('+') || /.-\\d+(?:\\.\\d+)?/.test(newExpr)) {\n var _ADD_OR_SUBTRACT_REGE;\n var _ref5 = (_ADD_OR_SUBTRACT_REGE = ADD_OR_SUBTRACT_REGEX.exec(newExpr)) !== null && _ADD_OR_SUBTRACT_REGE !== void 0 ? _ADD_OR_SUBTRACT_REGE : [],\n _ref6 = _slicedToArray(_ref5, 4),\n _leftOperand = _ref6[1],\n _operator = _ref6[2],\n _rightOperand = _ref6[3];\n var _lTs = DecimalCSS.parse(_leftOperand !== null && _leftOperand !== void 0 ? _leftOperand : '');\n var _rTs = DecimalCSS.parse(_rightOperand !== null && _rightOperand !== void 0 ? _rightOperand : '');\n var _result = _operator === '+' ? _lTs.add(_rTs) : _lTs.subtract(_rTs);\n if (_result.isNaN()) {\n return STR_NAN;\n }\n newExpr = newExpr.replace(ADD_OR_SUBTRACT_REGEX, _result.toString());\n }\n return newExpr;\n}\nvar PARENTHESES_REGEX = /\\(([^()]*)\\)/;\nfunction calculateParentheses(expr) {\n var newExpr = expr;\n while (newExpr.includes('(')) {\n var _PARENTHESES_REGEX$ex = PARENTHESES_REGEX.exec(newExpr),\n _PARENTHESES_REGEX$ex2 = _slicedToArray(_PARENTHESES_REGEX$ex, 2),\n parentheticalExpression = _PARENTHESES_REGEX$ex2[1];\n newExpr = newExpr.replace(PARENTHESES_REGEX, calculateArithmetic(parentheticalExpression));\n }\n return newExpr;\n}\nfunction evaluateExpression(expression) {\n var newExpr = expression.replace(/\\s+/g, '');\n newExpr = calculateParentheses(newExpr);\n newExpr = calculateArithmetic(newExpr);\n return newExpr;\n}\nexport function safeEvaluateExpression(expression) {\n try {\n return evaluateExpression(expression);\n } catch (e) {\n /* istanbul ignore next */\n return STR_NAN;\n }\n}\nexport function reduceCSSCalc(expression) {\n var result = safeEvaluateExpression(expression.slice(5, -1));\n if (result === STR_NAN) {\n // notify the user\n return '';\n }\n return result;\n}","var _excluded = [\"x\", \"y\", \"lineHeight\", \"capHeight\", \"scaleToFit\", \"textAnchor\", \"verticalAnchor\", \"fill\"],\n _excluded2 = [\"dx\", \"dy\", \"angle\", \"className\", \"breakAll\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport React, { useMemo } from 'react';\nimport isNil from 'lodash/isNil';\nimport clsx from 'clsx';\nimport { isNumber, isNumOrStr } from '../util/DataUtils';\nimport { Global } from '../util/Global';\nimport { filterProps } from '../util/ReactUtils';\nimport { getStringSize } from '../util/DOMUtils';\nimport { reduceCSSCalc } from '../util/ReduceCSSCalc';\nvar BREAKING_SPACES = /[ \\f\\n\\r\\t\\v\\u2028\\u2029]+/;\nvar calculateWordWidths = function calculateWordWidths(_ref) {\n var children = _ref.children,\n breakAll = _ref.breakAll,\n style = _ref.style;\n try {\n var words = [];\n if (!isNil(children)) {\n if (breakAll) {\n words = children.toString().split('');\n } else {\n words = children.toString().split(BREAKING_SPACES);\n }\n }\n var wordsWithComputedWidth = words.map(function (word) {\n return {\n word: word,\n width: getStringSize(word, style).width\n };\n });\n var spaceWidth = breakAll ? 0 : getStringSize(\"\\xA0\", style).width;\n return {\n wordsWithComputedWidth: wordsWithComputedWidth,\n spaceWidth: spaceWidth\n };\n } catch (e) {\n return null;\n }\n};\nvar calculateWordsByLines = function calculateWordsByLines(_ref2, initialWordsWithComputedWith, spaceWidth, lineWidth, scaleToFit) {\n var maxLines = _ref2.maxLines,\n children = _ref2.children,\n style = _ref2.style,\n breakAll = _ref2.breakAll;\n var shouldLimitLines = isNumber(maxLines);\n var text = children;\n var calculate = function calculate() {\n var words = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return words.reduce(function (result, _ref3) {\n var word = _ref3.word,\n width = _ref3.width;\n var currentLine = result[result.length - 1];\n if (currentLine && (lineWidth == null || scaleToFit || currentLine.width + width + spaceWidth < Number(lineWidth))) {\n // Word can be added to an existing line\n currentLine.words.push(word);\n currentLine.width += width + spaceWidth;\n } else {\n // Add first word to line or word is too long to scaleToFit on existing line\n var newLine = {\n words: [word],\n width: width\n };\n result.push(newLine);\n }\n return result;\n }, []);\n };\n var originalResult = calculate(initialWordsWithComputedWith);\n var findLongestLine = function findLongestLine(words) {\n return words.reduce(function (a, b) {\n return a.width > b.width ? a : b;\n });\n };\n if (!shouldLimitLines) {\n return originalResult;\n }\n var suffix = '…';\n var checkOverflow = function checkOverflow(index) {\n var tempText = text.slice(0, index);\n var words = calculateWordWidths({\n breakAll: breakAll,\n style: style,\n children: tempText + suffix\n }).wordsWithComputedWidth;\n var result = calculate(words);\n var doesOverflow = result.length > maxLines || findLongestLine(result).width > Number(lineWidth);\n return [doesOverflow, result];\n };\n var start = 0;\n var end = text.length - 1;\n var iterations = 0;\n var trimmedResult;\n while (start <= end && iterations <= text.length - 1) {\n var middle = Math.floor((start + end) / 2);\n var prev = middle - 1;\n var _checkOverflow = checkOverflow(prev),\n _checkOverflow2 = _slicedToArray(_checkOverflow, 2),\n doesPrevOverflow = _checkOverflow2[0],\n result = _checkOverflow2[1];\n var _checkOverflow3 = checkOverflow(middle),\n _checkOverflow4 = _slicedToArray(_checkOverflow3, 1),\n doesMiddleOverflow = _checkOverflow4[0];\n if (!doesPrevOverflow && !doesMiddleOverflow) {\n start = middle + 1;\n }\n if (doesPrevOverflow && doesMiddleOverflow) {\n end = middle - 1;\n }\n if (!doesPrevOverflow && doesMiddleOverflow) {\n trimmedResult = result;\n break;\n }\n iterations++;\n }\n\n // Fallback to originalResult (result without trimming) if we cannot find the\n // where to trim. This should not happen :tm:\n return trimmedResult || originalResult;\n};\nvar getWordsWithoutCalculate = function getWordsWithoutCalculate(children) {\n var words = !isNil(children) ? children.toString().split(BREAKING_SPACES) : [];\n return [{\n words: words\n }];\n};\nvar getWordsByLines = function getWordsByLines(_ref4) {\n var width = _ref4.width,\n scaleToFit = _ref4.scaleToFit,\n children = _ref4.children,\n style = _ref4.style,\n breakAll = _ref4.breakAll,\n maxLines = _ref4.maxLines;\n // Only perform calculations if using features that require them (multiline, scaleToFit)\n if ((width || scaleToFit) && !Global.isSsr) {\n var wordsWithComputedWidth, spaceWidth;\n var wordWidths = calculateWordWidths({\n breakAll: breakAll,\n children: children,\n style: style\n });\n if (wordWidths) {\n var wcw = wordWidths.wordsWithComputedWidth,\n sw = wordWidths.spaceWidth;\n wordsWithComputedWidth = wcw;\n spaceWidth = sw;\n } else {\n return getWordsWithoutCalculate(children);\n }\n return calculateWordsByLines({\n breakAll: breakAll,\n children: children,\n maxLines: maxLines,\n style: style\n }, wordsWithComputedWidth, spaceWidth, width, scaleToFit);\n }\n return getWordsWithoutCalculate(children);\n};\nvar DEFAULT_FILL = '#808080';\nexport var Text = function Text(_ref5) {\n var _ref5$x = _ref5.x,\n propsX = _ref5$x === void 0 ? 0 : _ref5$x,\n _ref5$y = _ref5.y,\n propsY = _ref5$y === void 0 ? 0 : _ref5$y,\n _ref5$lineHeight = _ref5.lineHeight,\n lineHeight = _ref5$lineHeight === void 0 ? '1em' : _ref5$lineHeight,\n _ref5$capHeight = _ref5.capHeight,\n capHeight = _ref5$capHeight === void 0 ? '0.71em' : _ref5$capHeight,\n _ref5$scaleToFit = _ref5.scaleToFit,\n scaleToFit = _ref5$scaleToFit === void 0 ? false : _ref5$scaleToFit,\n _ref5$textAnchor = _ref5.textAnchor,\n textAnchor = _ref5$textAnchor === void 0 ? 'start' : _ref5$textAnchor,\n _ref5$verticalAnchor = _ref5.verticalAnchor,\n verticalAnchor = _ref5$verticalAnchor === void 0 ? 'end' : _ref5$verticalAnchor,\n _ref5$fill = _ref5.fill,\n fill = _ref5$fill === void 0 ? DEFAULT_FILL : _ref5$fill,\n props = _objectWithoutProperties(_ref5, _excluded);\n var wordsByLines = useMemo(function () {\n return getWordsByLines({\n breakAll: props.breakAll,\n children: props.children,\n maxLines: props.maxLines,\n scaleToFit: scaleToFit,\n style: props.style,\n width: props.width\n });\n }, [props.breakAll, props.children, props.maxLines, scaleToFit, props.style, props.width]);\n var dx = props.dx,\n dy = props.dy,\n angle = props.angle,\n className = props.className,\n breakAll = props.breakAll,\n textProps = _objectWithoutProperties(props, _excluded2);\n if (!isNumOrStr(propsX) || !isNumOrStr(propsY)) {\n return null;\n }\n var x = propsX + (isNumber(dx) ? dx : 0);\n var y = propsY + (isNumber(dy) ? dy : 0);\n var startDy;\n switch (verticalAnchor) {\n case 'start':\n startDy = reduceCSSCalc(\"calc(\".concat(capHeight, \")\"));\n break;\n case 'middle':\n startDy = reduceCSSCalc(\"calc(\".concat((wordsByLines.length - 1) / 2, \" * -\").concat(lineHeight, \" + (\").concat(capHeight, \" / 2))\"));\n break;\n default:\n startDy = reduceCSSCalc(\"calc(\".concat(wordsByLines.length - 1, \" * -\").concat(lineHeight, \")\"));\n break;\n }\n var transforms = [];\n if (scaleToFit) {\n var lineWidth = wordsByLines[0].width;\n var width = props.width;\n transforms.push(\"scale(\".concat((isNumber(width) ? width / lineWidth : 1) / lineWidth, \")\"));\n }\n if (angle) {\n transforms.push(\"rotate(\".concat(angle, \", \").concat(x, \", \").concat(y, \")\"));\n }\n if (transforms.length) {\n textProps.transform = transforms.join(' ');\n }\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, filterProps(textProps, true), {\n x: x,\n y: y,\n className: clsx('recharts-text', className),\n textAnchor: textAnchor,\n fill: fill.includes('url') ? DEFAULT_FILL : fill\n }), wordsByLines.map(function (line, index) {\n var words = line.words.join(breakAll ? '' : ' ');\n return /*#__PURE__*/React.createElement(\"tspan\", {\n x: x,\n dy: index === 0 ? startDy : lineHeight,\n key: words\n }, words);\n }));\n};","export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export class InternMap extends Map {\n constructor(entries, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (entries != null) for (const [key, value] of entries) this.set(key, value);\n }\n get(key) {\n return super.get(intern_get(this, key));\n }\n has(key) {\n return super.has(intern_get(this, key));\n }\n set(key, value) {\n return super.set(intern_set(this, key), value);\n }\n delete(key) {\n return super.delete(intern_delete(this, key));\n }\n}\n\nexport class InternSet extends Set {\n constructor(values, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (values != null) for (const value of values) this.add(value);\n }\n has(value) {\n return super.has(intern_get(this, value));\n }\n add(value) {\n return super.add(intern_set(this, value));\n }\n delete(value) {\n return super.delete(intern_delete(this, value));\n }\n}\n\nfunction intern_get({_intern, _key}, value) {\n const key = _key(value);\n return _intern.has(key) ? _intern.get(key) : value;\n}\n\nfunction intern_set({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) return _intern.get(key);\n _intern.set(key, value);\n return value;\n}\n\nfunction intern_delete({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) {\n value = _intern.get(key);\n _intern.delete(key);\n }\n return value;\n}\n\nfunction keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n","import ascending from \"./ascending.js\";\nimport permute from \"./permute.js\";\n\nexport default function sort(values, ...F) {\n if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n values = Array.from(values);\n let [f] = F;\n if ((f && f.length !== 2) || F.length > 1) {\n const index = Uint32Array.from(values, (d, i) => i);\n if (F.length > 1) {\n F = F.map(f => values.map(f));\n index.sort((i, j) => {\n for (const f of F) {\n const c = ascendingDefined(f[i], f[j]);\n if (c) return c;\n }\n });\n } else {\n f = values.map(f);\n index.sort((i, j) => ascendingDefined(f[i], f[j]));\n }\n return permute(values, index);\n }\n return values.sort(compareDefined(f));\n}\n\nexport function compareDefined(compare = ascending) {\n if (compare === ascending) return ascendingDefined;\n if (typeof compare !== \"function\") throw new TypeError(\"compare is not a function\");\n return (a, b) => {\n const x = compare(a, b);\n if (x || x === 0) return x;\n return (compare(b, b) === 0) - (compare(a, a) === 0);\n };\n}\n\nexport function ascendingDefined(a, b) {\n return (a == null || !(a >= a)) - (b == null || !(b >= b)) || (a < b ? -1 : a > b ? 1 : 0);\n}\n","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","import {ascendingDefined, compareDefined} from \"./sort.js\";\n\n// Based on https://github.com/mourner/quickselect\n// ISC license, Copyright 2018 Vladimir Agafonkin.\nexport default function quickselect(array, k, left = 0, right = Infinity, compare) {\n k = Math.floor(k);\n left = Math.floor(Math.max(0, left));\n right = Math.floor(Math.min(array.length - 1, right));\n\n if (!(left <= k && k <= right)) return array;\n\n compare = compare === undefined ? ascendingDefined : compareDefined(compare);\n\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n quickselect(array, k, newLeft, newRight, compare);\n }\n\n const t = array[k];\n let i = left;\n let j = right;\n\n swap(array, left, k);\n if (compare(array[right], t) > 0) swap(array, left, right);\n\n while (i < j) {\n swap(array, i, j), ++i, --j;\n while (compare(array[i], t) < 0) ++i;\n while (compare(array[j], t) > 0) --j;\n }\n\n if (compare(array[left], t) === 0) swap(array, left, j);\n else ++j, swap(array, j, right);\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n\n return array;\n}\n\nfunction swap(array, i, j) {\n const t = array[i];\n array[i] = array[j];\n array[j] = t;\n}\n","import max from \"./max.js\";\nimport maxIndex from \"./maxIndex.js\";\nimport min from \"./min.js\";\nimport minIndex from \"./minIndex.js\";\nimport quickselect from \"./quickselect.js\";\nimport number, {numbers} from \"./number.js\";\nimport {ascendingDefined} from \"./sort.js\";\nimport greatest from \"./greatest.js\";\n\nexport default function quantile(values, p, valueof) {\n values = Float64Array.from(numbers(values, valueof));\n if (!(n = values.length) || isNaN(p = +p)) return;\n if (p <= 0 || n < 2) return min(values);\n if (p >= 1) return max(values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),\n value1 = min(values.subarray(i0 + 1));\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileSorted(values, p, valueof = number) {\n if (!(n = values.length) || isNaN(p = +p)) return;\n if (p <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileIndex(values, p, valueof = number) {\n if (isNaN(p = +p)) return;\n numbers = Float64Array.from(values, (_, i) => number(valueof(values[i], i, values)));\n if (p <= 0) return minIndex(numbers);\n if (p >= 1) return maxIndex(numbers);\n var numbers,\n index = Uint32Array.from(values, (_, i) => i),\n j = numbers.length - 1,\n i = Math.floor(j * p);\n quickselect(index, i, 0, j, (i, j) => ascendingDefined(numbers[i], numbers[j]));\n i = greatest(index.subarray(0, i + 1), (i) => numbers[i]);\n return i >= 0 ? i : -1;\n}\n","export default function range(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","import {InternMap} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new InternMap(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n let i = index.get(d);\n if (i === undefined) {\n if (unknown !== implicit) return unknown;\n index.set(d, i = domain.push(d) - 1);\n }\n return range[i % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new InternMap();\n for (const value of _) {\n if (index.has(value)) continue;\n index.set(value, domain.push(value) - 1);\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","import {default as value} from \"./value.js\";\n\nexport default function piecewise(interpolate, values) {\n if (values === undefined) values = interpolate, interpolate = value;\n var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n while (i < n) I[i] = interpolate(v, v = values[++i]);\n return function(t) {\n var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i](t - i);\n };\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nexport default function identity(domain) {\n var unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = Array.from(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return identity(domain).unknown(unknown);\n };\n\n domain = arguments.length ? Array.from(domain, number) : [0, 1];\n\n return linearish(scale);\n}\n","export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","import {ticks} from \"d3-array\";\nimport {format, formatSpecifier} from \"d3-format\";\nimport nice from \"./nice.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : x => Math.pow(base, x);\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), x => Math.log(x) / base);\n}\n\nfunction reflect(f) {\n return (x, k) => -f(-x, k);\n}\n\nexport function loggish(transform) {\n const scale = transform(transformLog, transformExp);\n const domain = scale.domain;\n let base = 10;\n let logs;\n let pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = count => {\n const d = domain();\n let u = d[0];\n let v = d[d.length - 1];\n const r = v < u;\n\n if (r) ([u, v] = [v, u]);\n\n let i = logs(u);\n let j = logs(v);\n let k;\n let t;\n const n = count == null ? 10 : +count;\n let z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.floor(i), j = Math.ceil(j);\n if (u > 0) for (; i <= j; ++i) {\n for (k = 1; k < base; ++k) {\n t = i < 0 ? k / pows(-i) : k * pows(i);\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i <= j; ++i) {\n for (k = base - 1; k >= 1; --k) {\n t = i > 0 ? k / pows(-i) : k * pows(i);\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n if (z.length * 2 < n) z = ticks(u, v, n);\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = (count, specifier) => {\n if (count == null) count = 10;\n if (specifier == null) specifier = base === 10 ? \"s\" : \",\";\n if (typeof specifier !== \"function\") {\n if (!(base % 1) && (specifier = formatSpecifier(specifier)).precision == null) specifier.trim = true;\n specifier = format(specifier);\n }\n if (count === Infinity) return specifier;\n const k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return d => {\n let i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = () => {\n return domain(nice(domain(), {\n floor: x => pows(Math.floor(logs(x))),\n ceil: x => pows(Math.ceil(logs(x)))\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n const scale = loggish(transformer()).domain([1, 10]);\n scale.copy = () => copy(scale, log()).base(scale.base());\n initRange.apply(scale, arguments);\n return scale;\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nexport function symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\n\nexport default function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, identity, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformPow(exponent) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity)\n : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n}\n\nexport default function pow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nexport function sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}\n","import continuous from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nfunction square(x) {\n return Math.sign(x) * x * x;\n}\n\nfunction unsquare(x) {\n return Math.sign(x) * Math.sqrt(Math.abs(x));\n}\n\nexport default function radial() {\n var squared = continuous(),\n range = [0, 1],\n round = false,\n unknown;\n\n function scale(x) {\n var y = unsquare(squared(x));\n return isNaN(y) ? unknown : round ? Math.round(y) : y;\n }\n\n scale.invert = function(y) {\n return squared.invert(square(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (squared.domain(_), scale) : squared.domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (squared.range((range = Array.from(_, number)).map(square)), scale) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return scale.range(_).round(true);\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, scale) : round;\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (squared.clamp(_), scale) : squared.clamp();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return radial(squared.domain(), range)\n .round(round)\n .clamp(squared.clamp())\n .unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {ascending, bisect, quantileSorted as threshold} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {linearish} from \"./linear.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = (date) => {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = (date) => {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = (date) => {\n const d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = (date, step) => {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = (start, stop, step) => {\n const range = [];\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n let previous;\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = (test) => {\n return timeInterval((date) => {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, (date, step) => {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = (start, end) => {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = (step) => {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? (d) => field(d) % step === 0\n : (d) => interval.count(0, d) % step === 0);\n };\n }\n\n return interval;\n}\n","import {timeInterval} from \"./interval.js\";\n\nexport const millisecond = timeInterval(() => {\n // noop\n}, (date, step) => {\n date.setTime(+date + step);\n}, (start, end) => {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = (k) => {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return timeInterval((date) => {\n date.setTime(Math.floor(date / k) * k);\n }, (date, step) => {\n date.setTime(+date + step * k);\n }, (start, end) => {\n return (end - start) / k;\n });\n};\n\nexport const milliseconds = millisecond.range;\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","import {timeInterval} from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nexport const second = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds());\n}, (date, step) => {\n date.setTime(+date + step * durationSecond);\n}, (start, end) => {\n return (end - start) / durationSecond;\n}, (date) => {\n return date.getUTCSeconds();\n});\n\nexport const seconds = second.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeMinute = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getMinutes();\n});\n\nexport const timeMinutes = timeMinute.range;\n\nexport const utcMinute = timeInterval((date) => {\n date.setUTCSeconds(0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getUTCMinutes();\n});\n\nexport const utcMinutes = utcMinute.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeHour = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getHours();\n});\n\nexport const timeHours = timeHour.range;\n\nexport const utcHour = timeInterval((date) => {\n date.setUTCMinutes(0, 0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getUTCHours();\n});\n\nexport const utcHours = utcHour.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nexport const timeDay = timeInterval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport const timeDays = timeDay.range;\n\nexport const utcDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return date.getUTCDate() - 1;\n});\n\nexport const utcDays = utcDay.range;\n\nexport const unixDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return Math.floor(date / durationDay);\n});\n\nexport const unixDays = unixDay.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction timeWeekday(i) {\n return timeInterval((date) => {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setDate(date.getDate() + step * 7);\n }, (start, end) => {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport const timeSunday = timeWeekday(0);\nexport const timeMonday = timeWeekday(1);\nexport const timeTuesday = timeWeekday(2);\nexport const timeWednesday = timeWeekday(3);\nexport const timeThursday = timeWeekday(4);\nexport const timeFriday = timeWeekday(5);\nexport const timeSaturday = timeWeekday(6);\n\nexport const timeSundays = timeSunday.range;\nexport const timeMondays = timeMonday.range;\nexport const timeTuesdays = timeTuesday.range;\nexport const timeWednesdays = timeWednesday.range;\nexport const timeThursdays = timeThursday.range;\nexport const timeFridays = timeFriday.range;\nexport const timeSaturdays = timeSaturday.range;\n\nfunction utcWeekday(i) {\n return timeInterval((date) => {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, (start, end) => {\n return (end - start) / durationWeek;\n });\n}\n\nexport const utcSunday = utcWeekday(0);\nexport const utcMonday = utcWeekday(1);\nexport const utcTuesday = utcWeekday(2);\nexport const utcWednesday = utcWeekday(3);\nexport const utcThursday = utcWeekday(4);\nexport const utcFriday = utcWeekday(5);\nexport const utcSaturday = utcWeekday(6);\n\nexport const utcSundays = utcSunday.range;\nexport const utcMondays = utcMonday.range;\nexport const utcTuesdays = utcTuesday.range;\nexport const utcWednesdays = utcWednesday.range;\nexport const utcThursdays = utcThursday.range;\nexport const utcFridays = utcFriday.range;\nexport const utcSaturdays = utcSaturday.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeMonth = timeInterval((date) => {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setMonth(date.getMonth() + step);\n}, (start, end) => {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, (date) => {\n return date.getMonth();\n});\n\nexport const timeMonths = timeMonth.range;\n\nexport const utcMonth = timeInterval((date) => {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, (start, end) => {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, (date) => {\n return date.getUTCMonth();\n});\n\nexport const utcMonths = utcMonth.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeYear = timeInterval((date) => {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setFullYear(date.getFullYear() + step);\n}, (start, end) => {\n return end.getFullYear() - start.getFullYear();\n}, (date) => {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\ntimeYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport const timeYears = timeYear.range;\n\nexport const utcYear = timeInterval((date) => {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, (start, end) => {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, (date) => {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport const utcYears = utcYear.range;\n","import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport {millisecond} from \"./millisecond.js\";\nimport {second} from \"./second.js\";\nimport {timeMinute, utcMinute} from \"./minute.js\";\nimport {timeHour, utcHour} from \"./hour.js\";\nimport {timeDay, unixDay} from \"./day.js\";\nimport {timeSunday, utcSunday} from \"./week.js\";\nimport {timeMonth, utcMonth} from \"./month.js\";\nimport {timeYear, utcYear} from \"./year.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcTicks, utcTickInterval} from \"d3-time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {calendar} from \"./time.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function utcTime() {\n return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","import {interpolate, interpolateRound} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1;\n return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport default function sequential() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect, quantile} from \"d3-array\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\n\nexport default function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (x != null && !isNaN(x = +x)) return interpolator((bisect(domain, x, 1) - 1) / (domain.length - 1));\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.range = function() {\n return domain.map((d, i) => interpolator(i / (domain.length - 1)));\n };\n\n scale.quantiles = function(n) {\n return Array.from({length: n + 1}, (_, i) => quantile(domain, i / n));\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n","import {interpolate, interpolateRound, piecewise} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {copy} from \"./sequential.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n s = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1, r2;\n return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;\n return scale;\n };\n}\n\nexport default function diverging() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingLog() {\n var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n scale.copy = function() {\n return copy(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}\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 `_.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","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","/**\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 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","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 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 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","/*\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\nvar MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n defaults = {\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 Decimal,\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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.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\nP.toString = P.valueOf = P.val = P.toJSON = P[Symbol.for('nodejs.util.inspect.custom')] = 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\nfunction 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\nfunction 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\nfunction 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\nvar 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nfunction 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\nexport var Decimal = clone(defaults);\r\n\r\n// Internal constant.\r\nONE = new Decimal(1);\r\n\r\nexport default Decimal;\r\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);","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\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 invariant from 'tiny-invariant';\nimport { Layer } from '../container/Layer';\nimport { filterProps } from '../util/ReactUtils';\nexport function ErrorBar(props) {\n var offset = props.offset,\n layout = props.layout,\n width = props.width,\n dataKey = props.dataKey,\n data = props.data,\n dataPointFormatter = props.dataPointFormatter,\n xAxis = props.xAxis,\n yAxis = props.yAxis,\n others = _objectWithoutProperties(props, _excluded);\n var svgProps = filterProps(others, false);\n !!(props.direction === 'x' && xAxis.type !== 'number') ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'ErrorBar requires Axis type property to be \"number\".') : invariant(false) : void 0;\n var errorBars = data.map(function (entry) {\n var _dataPointFormatter = dataPointFormatter(entry, dataKey),\n x = _dataPointFormatter.x,\n y = _dataPointFormatter.y,\n value = _dataPointFormatter.value,\n errorVal = _dataPointFormatter.errorVal;\n if (!errorVal) {\n return null;\n }\n var lineCoordinates = [];\n var lowBound, highBound;\n if (Array.isArray(errorVal)) {\n var _errorVal = _slicedToArray(errorVal, 2);\n lowBound = _errorVal[0];\n highBound = _errorVal[1];\n } else {\n lowBound = highBound = errorVal;\n }\n if (layout === 'vertical') {\n // error bar for horizontal charts, the y is fixed, x is a range value\n var scale = xAxis.scale;\n var yMid = y + offset;\n var yMin = yMid + width;\n var yMax = yMid - width;\n var xMin = scale(value - lowBound);\n var xMax = scale(value + highBound);\n\n // the right line of |--|\n lineCoordinates.push({\n x1: xMax,\n y1: yMin,\n x2: xMax,\n y2: yMax\n });\n // the middle line of |--|\n lineCoordinates.push({\n x1: xMin,\n y1: yMid,\n x2: xMax,\n y2: yMid\n });\n // the left line of |--|\n lineCoordinates.push({\n x1: xMin,\n y1: yMin,\n x2: xMin,\n y2: yMax\n });\n } else if (layout === 'horizontal') {\n // error bar for horizontal charts, the x is fixed, y is a range value\n var _scale = yAxis.scale;\n var xMid = x + offset;\n var _xMin = xMid - width;\n var _xMax = xMid + width;\n var _yMin = _scale(value - lowBound);\n var _yMax = _scale(value + highBound);\n\n // the top line\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMax,\n x2: _xMax,\n y2: _yMax\n });\n // the middle line\n lineCoordinates.push({\n x1: xMid,\n y1: _yMin,\n x2: xMid,\n y2: _yMax\n });\n // the bottom line\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMin,\n x2: _xMax,\n y2: _yMin\n });\n }\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-errorBar\",\n key: \"bar-\".concat(lineCoordinates.map(function (c) {\n return \"\".concat(c.x1, \"-\").concat(c.x2, \"-\").concat(c.y1, \"-\").concat(c.y2);\n }))\n }, svgProps), lineCoordinates.map(function (coordinates) {\n return /*#__PURE__*/React.createElement(\"line\", _extends({}, coordinates, {\n key: \"line-\".concat(coordinates.x1, \"-\").concat(coordinates.x2, \"-\").concat(coordinates.y1, \"-\").concat(coordinates.y2)\n }));\n }));\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-errorBars\"\n }, errorBars);\n}\nErrorBar.defaultProps = {\n stroke: 'black',\n strokeWidth: 1.5,\n width: 5,\n offset: 0,\n layout: 'horizontal'\n};\nErrorBar.displayName = 'ErrorBar';","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { 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};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport * as d3Scales from 'victory-vendor/d3-scale';\nimport { stack as shapeStack, stackOffsetExpand, stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle, stackOrderNone } from 'victory-vendor/d3-shape';\nimport max from 'lodash/max';\nimport min from 'lodash/min';\nimport isNil from 'lodash/isNil';\nimport isFunction from 'lodash/isFunction';\nimport isString from 'lodash/isString';\nimport get from 'lodash/get';\nimport flatMap from 'lodash/flatMap';\nimport isNan from 'lodash/isNaN';\nimport upperFirst from 'lodash/upperFirst';\nimport isEqual from 'lodash/isEqual';\nimport sortBy from 'lodash/sortBy';\nimport { getNiceTickValues, getTickValuesFixedDomain } from 'recharts-scale';\nimport { ErrorBar } from '../cartesian/ErrorBar';\nimport { findEntryInArray, getPercentValue, isNumber, isNumOrStr, mathSign, uniqueId } from './DataUtils';\nimport { filterProps, findAllByType, getDisplayName } from './ReactUtils';\n// TODO: Cause of circular dependency. Needs refactor.\n// import { RadiusAxisProps, AngleAxisProps } from '../polar/types';\n\nimport { getLegendProps } from './getLegendProps';\n\n// Exported for backwards compatibility\nexport { getLegendProps };\nexport function getValueByDataKey(obj, dataKey, defaultValue) {\n if (isNil(obj) || isNil(dataKey)) {\n return defaultValue;\n }\n if (isNumOrStr(dataKey)) {\n return get(obj, dataKey, defaultValue);\n }\n if (isFunction(dataKey)) {\n return dataKey(obj);\n }\n return defaultValue;\n}\n/**\n * Get domain of data by key.\n * @param {Array} data The data displayed in the chart\n * @param {String} key The unique key of a group of data\n * @param {String} type The type of axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain of data\n */\nexport function getDomainOfDataByKey(data, key, type, filterNil) {\n var flattenData = flatMap(data, function (entry) {\n return getValueByDataKey(entry, key);\n });\n if (type === 'number') {\n // @ts-expect-error parseFloat type only accepts strings\n var domain = flattenData.filter(function (entry) {\n return isNumber(entry) || parseFloat(entry);\n });\n return domain.length ? [min(domain), max(domain)] : [Infinity, -Infinity];\n }\n var validateData = filterNil ? flattenData.filter(function (entry) {\n return !isNil(entry);\n }) : flattenData;\n\n // Supports x-axis of Date type\n return validateData.map(function (entry) {\n return isNumOrStr(entry) || entry instanceof Date ? entry : '';\n });\n}\nexport var calculateActiveTickIndex = function calculateActiveTickIndex(coordinate) {\n var _ticks$length;\n var ticks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var unsortedTicks = arguments.length > 2 ? arguments[2] : undefined;\n var axis = arguments.length > 3 ? arguments[3] : undefined;\n var index = -1;\n var len = (_ticks$length = ticks === null || ticks === void 0 ? void 0 : ticks.length) !== null && _ticks$length !== void 0 ? _ticks$length : 0;\n\n // if there are 1 or less ticks ticks then the active tick is at index 0\n if (len <= 1) {\n return 0;\n }\n if (axis && axis.axisType === 'angleAxis' && Math.abs(Math.abs(axis.range[1] - axis.range[0]) - 360) <= 1e-6) {\n var range = axis.range;\n // ticks are distributed in a circle\n for (var i = 0; i < len; i++) {\n var before = i > 0 ? unsortedTicks[i - 1].coordinate : unsortedTicks[len - 1].coordinate;\n var cur = unsortedTicks[i].coordinate;\n var after = i >= len - 1 ? unsortedTicks[0].coordinate : unsortedTicks[i + 1].coordinate;\n var sameDirectionCoord = void 0;\n if (mathSign(cur - before) !== mathSign(after - cur)) {\n var diffInterval = [];\n if (mathSign(after - cur) === mathSign(range[1] - range[0])) {\n sameDirectionCoord = after;\n var curInRange = cur + range[1] - range[0];\n diffInterval[0] = Math.min(curInRange, (curInRange + before) / 2);\n diffInterval[1] = Math.max(curInRange, (curInRange + before) / 2);\n } else {\n sameDirectionCoord = before;\n var afterInRange = after + range[1] - range[0];\n diffInterval[0] = Math.min(cur, (afterInRange + cur) / 2);\n diffInterval[1] = Math.max(cur, (afterInRange + cur) / 2);\n }\n var sameInterval = [Math.min(cur, (sameDirectionCoord + cur) / 2), Math.max(cur, (sameDirectionCoord + cur) / 2)];\n if (coordinate > sameInterval[0] && coordinate <= sameInterval[1] || coordinate >= diffInterval[0] && coordinate <= diffInterval[1]) {\n index = unsortedTicks[i].index;\n break;\n }\n } else {\n var minValue = Math.min(before, after);\n var maxValue = Math.max(before, after);\n if (coordinate > (minValue + cur) / 2 && coordinate <= (maxValue + cur) / 2) {\n index = unsortedTicks[i].index;\n break;\n }\n }\n }\n } else {\n // ticks are distributed in a single direction\n for (var _i = 0; _i < len; _i++) {\n if (_i === 0 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i > 0 && _i < len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i === len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2) {\n index = ticks[_i].index;\n break;\n }\n }\n }\n return index;\n};\n\n/**\n * Get the main color of each graphic item\n * @param {ReactElement} item A graphic item\n * @return {String} Color\n */\nexport var getMainColorOfGraphicItem = function getMainColorOfGraphicItem(item) {\n var _ref = item,\n displayName = _ref.type.displayName; // TODO: check if displayName is valid.\n var _item$props = item.props,\n stroke = _item$props.stroke,\n fill = _item$props.fill;\n var result;\n switch (displayName) {\n case 'Line':\n result = stroke;\n break;\n case 'Area':\n case 'Radar':\n result = stroke && stroke !== 'none' ? stroke : fill;\n break;\n default:\n result = fill;\n break;\n }\n return result;\n};\n/**\n * Calculate the size of all groups for stacked bar graph\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @return {Object} The size of all groups\n */\nexport var getBarSizeList = function getBarSizeList(_ref2) {\n var globalSize = _ref2.barSize,\n totalSize = _ref2.totalSize,\n _ref2$stackGroups = _ref2.stackGroups,\n stackGroups = _ref2$stackGroups === void 0 ? {} : _ref2$stackGroups;\n if (!stackGroups) {\n return {};\n }\n var result = {};\n var numericAxisIds = Object.keys(stackGroups);\n for (var i = 0, len = numericAxisIds.length; i < len; i++) {\n var sgs = stackGroups[numericAxisIds[i]].stackGroups;\n var stackIds = Object.keys(sgs);\n for (var j = 0, sLen = stackIds.length; j < sLen; j++) {\n var _sgs$stackIds$j = sgs[stackIds[j]],\n items = _sgs$stackIds$j.items,\n cateAxisId = _sgs$stackIds$j.cateAxisId;\n var barItems = items.filter(function (item) {\n return getDisplayName(item.type).indexOf('Bar') >= 0;\n });\n if (barItems && barItems.length) {\n var selfSize = barItems[0].props.barSize;\n var cateId = barItems[0].props[cateAxisId];\n if (!result[cateId]) {\n result[cateId] = [];\n }\n var barSize = isNil(selfSize) ? globalSize : selfSize;\n result[cateId].push({\n item: barItems[0],\n stackList: barItems.slice(1),\n barSize: isNil(barSize) ? undefined : getPercentValue(barSize, totalSize, 0)\n });\n }\n }\n }\n return result;\n};\n/**\n * Calculate the size of each bar and offset between start of band and the bar\n *\n * @param {number} bandSize is the size of area where bars can render\n * @param {number | string} barGap is the gap size, as a percentage of `bandSize`.\n * Can be defined as number or percent string\n * @param {number | string} barCategoryGap is the gap size, as a percentage of `bandSize`.\n * Can be defined as number or percent string\n * @param {Array} sizeList Sizes of all groups\n * @param {number} maxBarSize The maximum size of each bar\n * @return {Array} The size and offset of each bar\n */\nexport var getBarPosition = function getBarPosition(_ref3) {\n var barGap = _ref3.barGap,\n barCategoryGap = _ref3.barCategoryGap,\n bandSize = _ref3.bandSize,\n _ref3$sizeList = _ref3.sizeList,\n sizeList = _ref3$sizeList === void 0 ? [] : _ref3$sizeList,\n maxBarSize = _ref3.maxBarSize;\n var len = sizeList.length;\n if (len < 1) return null;\n var realBarGap = getPercentValue(barGap, bandSize, 0, true);\n var result;\n var initialValue = [];\n\n // whether or not is barSize setted by user\n if (sizeList[0].barSize === +sizeList[0].barSize) {\n var useFull = false;\n var fullBarSize = bandSize / len;\n // @ts-expect-error the type check above does not check for type number explicitly\n var sum = sizeList.reduce(function (res, entry) {\n return res + entry.barSize || 0;\n }, 0);\n sum += (len - 1) * realBarGap;\n if (sum >= bandSize) {\n sum -= (len - 1) * realBarGap;\n realBarGap = 0;\n }\n if (sum >= bandSize && fullBarSize > 0) {\n useFull = true;\n fullBarSize *= 0.9;\n sum = len * fullBarSize;\n }\n var offset = (bandSize - sum) / 2 >> 0;\n var prev = {\n offset: offset - realBarGap,\n size: 0\n };\n result = sizeList.reduce(function (res, entry) {\n var newPosition = {\n item: entry.item,\n position: {\n offset: prev.offset + prev.size + realBarGap,\n // @ts-expect-error the type check above does not check for type number explicitly\n size: useFull ? fullBarSize : entry.barSize\n }\n };\n var newRes = [].concat(_toConsumableArray(res), [newPosition]);\n prev = newRes[newRes.length - 1].position;\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: prev\n });\n });\n }\n return newRes;\n }, initialValue);\n } else {\n var _offset = getPercentValue(barCategoryGap, bandSize, 0, true);\n if (bandSize - 2 * _offset - (len - 1) * realBarGap <= 0) {\n realBarGap = 0;\n }\n var originalSize = (bandSize - 2 * _offset - (len - 1) * realBarGap) / len;\n if (originalSize > 1) {\n originalSize >>= 0;\n }\n var size = maxBarSize === +maxBarSize ? Math.min(originalSize, maxBarSize) : originalSize;\n result = sizeList.reduce(function (res, entry, i) {\n var newRes = [].concat(_toConsumableArray(res), [{\n item: entry.item,\n position: {\n offset: _offset + (originalSize + realBarGap) * i + (originalSize - size) / 2,\n size: size\n }\n }]);\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: newRes[newRes.length - 1].position\n });\n });\n }\n return newRes;\n }, initialValue);\n }\n return result;\n};\nexport var appendOffsetOfLegend = function appendOffsetOfLegend(offset, _unused, props, legendBox) {\n var children = props.children,\n width = props.width,\n margin = props.margin;\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var legendProps = getLegendProps({\n children: children,\n legendWidth: legendWidth\n });\n if (legendProps) {\n var _ref4 = legendBox || {},\n boxWidth = _ref4.width,\n boxHeight = _ref4.height;\n var align = legendProps.align,\n verticalAlign = legendProps.verticalAlign,\n layout = legendProps.layout;\n if ((layout === 'vertical' || layout === 'horizontal' && verticalAlign === 'middle') && align !== 'center' && isNumber(offset[align])) {\n return _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, align, offset[align] + (boxWidth || 0)));\n }\n if ((layout === 'horizontal' || layout === 'vertical' && align === 'center') && verticalAlign !== 'middle' && isNumber(offset[verticalAlign])) {\n return _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, verticalAlign, offset[verticalAlign] + (boxHeight || 0)));\n }\n }\n return offset;\n};\nvar isErrorBarRelevantForAxis = function isErrorBarRelevantForAxis(layout, axisType, direction) {\n if (isNil(axisType)) {\n return true;\n }\n if (layout === 'horizontal') {\n return axisType === 'yAxis';\n }\n if (layout === 'vertical') {\n return axisType === 'xAxis';\n }\n if (direction === 'x') {\n return axisType === 'xAxis';\n }\n if (direction === 'y') {\n return axisType === 'yAxis';\n }\n return true;\n};\nexport var getDomainOfErrorBars = function getDomainOfErrorBars(data, item, dataKey, layout, axisType) {\n var children = item.props.children;\n var errorBars = findAllByType(children, ErrorBar).filter(function (errorBarChild) {\n return isErrorBarRelevantForAxis(layout, axisType, errorBarChild.props.direction);\n });\n if (errorBars && errorBars.length) {\n var keys = errorBars.map(function (errorBarChild) {\n return errorBarChild.props.dataKey;\n });\n return data.reduce(function (result, entry) {\n var entryValue = getValueByDataKey(entry, dataKey);\n if (isNil(entryValue)) return result;\n var mainValue = Array.isArray(entryValue) ? [min(entryValue), max(entryValue)] : [entryValue, entryValue];\n var errorDomain = keys.reduce(function (prevErrorArr, k) {\n var errorValue = getValueByDataKey(entry, k, 0);\n var lowerValue = mainValue[0] - Math.abs(Array.isArray(errorValue) ? errorValue[0] : errorValue);\n var upperValue = mainValue[1] + Math.abs(Array.isArray(errorValue) ? errorValue[1] : errorValue);\n return [Math.min(lowerValue, prevErrorArr[0]), Math.max(upperValue, prevErrorArr[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(errorDomain[0], result[0]), Math.max(errorDomain[1], result[1])];\n }, [Infinity, -Infinity]);\n }\n return null;\n};\nexport var parseErrorBarsOfAxis = function parseErrorBarsOfAxis(data, items, dataKey, axisType, layout) {\n var domains = items.map(function (item) {\n return getDomainOfErrorBars(data, item, dataKey, layout, axisType);\n }).filter(function (entry) {\n return !isNil(entry);\n });\n if (domains && domains.length) {\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n return null;\n};\n\n/**\n * Get domain of data by the configuration of item element\n * @param {Array} data The data displayed in the chart\n * @param {Array} items The instances of item\n * @param {String} type The type of axis, number - Number Axis, category - Category Axis\n * @param {LayoutType} layout The type of layout\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain\n */\nexport var getDomainOfItemsWithSameAxis = function getDomainOfItemsWithSameAxis(data, items, type, layout, filterNil) {\n var domains = items.map(function (item) {\n var dataKey = item.props.dataKey;\n if (type === 'number' && dataKey) {\n return getDomainOfErrorBars(data, item, dataKey, layout) || getDomainOfDataByKey(data, dataKey, type, filterNil);\n }\n return getDomainOfDataByKey(data, dataKey, type, filterNil);\n });\n if (type === 'number') {\n // Calculate the domain of number axis\n return domains.reduce(\n // @ts-expect-error if (type === number) means that the domain is numerical type\n // - but this link is missing in the type definition\n function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n var tag = {};\n // Get the union set of category axis\n return domains.reduce(function (result, entry) {\n for (var i = 0, len = entry.length; i < len; i++) {\n // @ts-expect-error Date cannot index an object\n if (!tag[entry[i]]) {\n // @ts-expect-error Date cannot index an object\n tag[entry[i]] = true;\n\n // @ts-expect-error Date cannot index an object\n result.push(entry[i]);\n }\n }\n return result;\n }, []);\n};\nexport var isCategoricalAxis = function isCategoricalAxis(layout, axisType) {\n return layout === 'horizontal' && axisType === 'xAxis' || layout === 'vertical' && axisType === 'yAxis' || layout === 'centric' && axisType === 'angleAxis' || layout === 'radial' && axisType === 'radiusAxis';\n};\n\n/**\n * Calculate the Coordinates of grid\n * @param {Array} ticks The ticks in axis\n * @param {Number} minValue The minimun value of axis\n * @param {Number} maxValue The maximun value of axis\n * @param {boolean} syncWithTicks Synchronize grid lines with ticks or not\n * @return {Array} Coordinates\n */\nexport var getCoordinatesOfGrid = function getCoordinatesOfGrid(ticks, minValue, maxValue, syncWithTicks) {\n if (syncWithTicks) {\n return ticks.map(function (entry) {\n return entry.coordinate;\n });\n }\n var hasMin, hasMax;\n var values = ticks.map(function (entry) {\n if (entry.coordinate === minValue) {\n hasMin = true;\n }\n if (entry.coordinate === maxValue) {\n hasMax = true;\n }\n return entry.coordinate;\n });\n if (!hasMin) {\n values.push(minValue);\n }\n if (!hasMax) {\n values.push(maxValue);\n }\n return values;\n};\n\n/**\n * Get the ticks of an axis\n * @param {Object} axis The configuration of an axis\n * @param {Boolean} isGrid Whether or not are the ticks in grid\n * @param {Boolean} isAll Return the ticks of all the points or not\n * @return {Array} Ticks\n */\nexport var getTicksOfAxis = function getTicksOfAxis(axis, isGrid, isAll) {\n if (!axis) return null;\n var scale = axis.scale;\n var duplicateDomain = axis.duplicateDomain,\n type = axis.type,\n range = axis.range;\n var offsetForBand = axis.realScaleType === 'scaleBand' ? scale.bandwidth() / 2 : 2;\n var offset = (isGrid || isAll) && type === 'category' && scale.bandwidth ? scale.bandwidth() / offsetForBand : 0;\n offset = axis.axisType === 'angleAxis' && (range === null || range === void 0 ? void 0 : range.length) >= 2 ? mathSign(range[0] - range[1]) * 2 * offset : offset;\n\n // The ticks set by user should only affect the ticks adjacent to axis line\n if (isGrid && (axis.ticks || axis.niceTicks)) {\n var result = (axis.ticks || axis.niceTicks).map(function (entry) {\n var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;\n return {\n // If the scaleContent is not a number, the coordinate will be NaN.\n // That could be the case for example with a PointScale and a string as domain.\n coordinate: scale(scaleContent) + offset,\n value: entry,\n offset: offset\n };\n });\n return result.filter(function (row) {\n return !isNan(row.coordinate);\n });\n }\n\n // When axis is a categorial axis, but the type of axis is number or the scale of axis is not \"auto\"\n if (axis.isCategorical && axis.categoricalDomain) {\n return axis.categoricalDomain.map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n index: index,\n offset: offset\n };\n });\n }\n if (scale.ticks && !isAll) {\n return scale.ticks(axis.tickCount).map(function (entry) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n offset: offset\n };\n });\n }\n\n // When axis has duplicated text, serial numbers are used to generate scale\n return scale.domain().map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index: index,\n offset: offset\n };\n });\n};\n\n/**\n * combine the handlers\n * @param {Function} defaultHandler Internal private handler\n * @param {Function} childHandler Handler function specified in child component\n * @return {Function} The combined handler\n */\n\nvar handlerWeakMap = new WeakMap();\nexport var combineEventHandlers = function combineEventHandlers(defaultHandler, childHandler) {\n if (typeof childHandler !== 'function') {\n return defaultHandler;\n }\n if (!handlerWeakMap.has(defaultHandler)) {\n handlerWeakMap.set(defaultHandler, new WeakMap());\n }\n var childWeakMap = handlerWeakMap.get(defaultHandler);\n if (childWeakMap.has(childHandler)) {\n return childWeakMap.get(childHandler);\n }\n var combineHandler = function combineHandler() {\n defaultHandler.apply(void 0, arguments);\n childHandler.apply(void 0, arguments);\n };\n childWeakMap.set(childHandler, combineHandler);\n return combineHandler;\n};\n\n/**\n * Parse the scale function of axis\n * @param {Object} axis The option of axis\n * @param {String} chartType The displayName of chart\n * @param {Boolean} hasBar if it has a bar\n * @return {object} The scale function and resolved name\n */\nexport var parseScale = function parseScale(axis, chartType, hasBar) {\n var scale = axis.scale,\n type = axis.type,\n layout = axis.layout,\n axisType = axis.axisType;\n if (scale === 'auto') {\n if (layout === 'radial' && axisType === 'radiusAxis') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n if (layout === 'radial' && axisType === 'angleAxis') {\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n if (type === 'category' && chartType && (chartType.indexOf('LineChart') >= 0 || chartType.indexOf('AreaChart') >= 0 || chartType.indexOf('ComposedChart') >= 0 && !hasBar)) {\n return {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n }\n if (type === 'category') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n if (isString(scale)) {\n var name = \"scale\".concat(upperFirst(scale));\n return {\n scale: (d3Scales[name] || d3Scales.scalePoint)(),\n realScaleType: d3Scales[name] ? name : 'point'\n };\n }\n return isFunction(scale) ? {\n scale: scale\n } : {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n};\nvar EPS = 1e-4;\nexport var checkDomainOfScale = function checkDomainOfScale(scale) {\n var domain = scale.domain();\n if (!domain || domain.length <= 2) {\n return;\n }\n var len = domain.length;\n var range = scale.range();\n var minValue = Math.min(range[0], range[1]) - EPS;\n var maxValue = Math.max(range[0], range[1]) + EPS;\n var first = scale(domain[0]);\n var last = scale(domain[len - 1]);\n if (first < minValue || first > maxValue || last < minValue || last > maxValue) {\n scale.domain([domain[0], domain[len - 1]]);\n }\n};\nexport var findPositionOfBar = function findPositionOfBar(barPosition, child) {\n if (!barPosition) {\n return null;\n }\n for (var i = 0, len = barPosition.length; i < len; i++) {\n if (barPosition[i].item === child) {\n return barPosition[i].position;\n }\n }\n return null;\n};\n\n/**\n * Both value and domain are tuples of two numbers\n * - but the type stays as array of numbers until we have better support in rest of the app\n * @param {Array} value input that will be truncated\n * @param {Array} domain boundaries\n * @returns {Array} tuple of two numbers\n */\nexport var truncateByDomain = function truncateByDomain(value, domain) {\n if (!domain || domain.length !== 2 || !isNumber(domain[0]) || !isNumber(domain[1])) {\n return value;\n }\n var minValue = Math.min(domain[0], domain[1]);\n var maxValue = Math.max(domain[0], domain[1]);\n var result = [value[0], value[1]];\n if (!isNumber(value[0]) || value[0] < minValue) {\n result[0] = minValue;\n }\n if (!isNumber(value[1]) || value[1] > maxValue) {\n result[1] = maxValue;\n }\n if (result[0] > maxValue) {\n result[0] = maxValue;\n }\n if (result[1] < minValue) {\n result[1] = minValue;\n }\n return result;\n};\n\n/**\n * Stacks all positive numbers above zero and all negative numbers below zero.\n *\n * If all values in the series are positive then this behaves the same as 'none' stacker.\n *\n * @param {Array} series from d3-shape Stack\n * @return {Array} series with applied offset\n */\nexport var offsetSign = function offsetSign(series) {\n var n = series.length;\n if (n <= 0) {\n return;\n }\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n var negative = 0;\n for (var i = 0; i < n; ++i) {\n var value = isNan(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n\n /* eslint-disable prefer-destructuring, no-param-reassign */\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = negative;\n series[i][j][1] = negative + value;\n negative = series[i][j][1];\n }\n /* eslint-enable prefer-destructuring, no-param-reassign */\n }\n }\n};\n\n/**\n * Replaces all negative values with zero when stacking data.\n *\n * If all values in the series are positive then this behaves the same as 'none' stacker.\n *\n * @param {Array} series from d3-shape Stack\n * @return {Array} series with applied offset\n */\nexport var offsetPositive = function offsetPositive(series) {\n var n = series.length;\n if (n <= 0) {\n return;\n }\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n for (var i = 0; i < n; ++i) {\n var value = isNan(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n\n /* eslint-disable prefer-destructuring, no-param-reassign */\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = 0;\n series[i][j][1] = 0;\n }\n /* eslint-enable prefer-destructuring, no-param-reassign */\n }\n }\n};\n\n/**\n * Function type to compute offset for stacked data.\n *\n * d3-shape has something fishy going on with its types.\n * In @definitelytyped/d3-shape, this function (the offset accessor) is typed as Series<> => void.\n * However! When I actually open the storybook I can see that the offset accessor actually receives Array>.\n * The same I can see in the source code itself:\n * https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/66042\n * That one unfortunately has no types but we can tell it passes three-dimensional array.\n *\n * Which leads me to believe that definitelytyped is wrong on this one.\n * There's open discussion on this topic without much attention:\n * https://github.com/DefinitelyTyped/DefinitelyTyped/discussions/66042\n */\n\nvar STACK_OFFSET_MAP = {\n sign: offsetSign,\n // @ts-expect-error definitelytyped types are incorrect\n expand: stackOffsetExpand,\n // @ts-expect-error definitelytyped types are incorrect\n none: stackOffsetNone,\n // @ts-expect-error definitelytyped types are incorrect\n silhouette: stackOffsetSilhouette,\n // @ts-expect-error definitelytyped types are incorrect\n wiggle: stackOffsetWiggle,\n positive: offsetPositive\n};\nexport var getStackedData = function getStackedData(data, stackItems, offsetType) {\n var dataKeys = stackItems.map(function (item) {\n return item.props.dataKey;\n });\n var offsetAccessor = STACK_OFFSET_MAP[offsetType];\n var stack = shapeStack()\n // @ts-expect-error stack.keys type wants an array of strings, but we provide array of DataKeys\n .keys(dataKeys).value(function (d, key) {\n return +getValueByDataKey(d, key, 0);\n }).order(stackOrderNone)\n // @ts-expect-error definitelytyped types are incorrect\n .offset(offsetAccessor);\n return stack(data);\n};\nexport var getStackGroupsByAxisId = function getStackGroupsByAxisId(data, _items, numericAxisId, cateAxisId, offsetType, reverseStackOrder) {\n if (!data) {\n return null;\n }\n\n // reversing items to affect render order (for layering)\n var items = reverseStackOrder ? _items.reverse() : _items;\n var parentStackGroupsInitialValue = {};\n var stackGroups = items.reduce(function (result, item) {\n var _item$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 function getCateCoordinateOfLine(_ref5) {\n var axis = _ref5.axis,\n ticks = _ref5.ticks,\n bandSize = _ref5.bandSize,\n entry = _ref5.entry,\n index = _ref5.index,\n dataKey = _ref5.dataKey;\n if (axis.type === 'category') {\n // find coordinate of category axis by the value of category\n // @ts-expect-error why does this use direct object access instead of getValueByDataKey?\n if (!axis.allowDuplicatedCategory && axis.dataKey && !isNil(entry[axis.dataKey])) {\n // @ts-expect-error why does this use direct object access instead of getValueByDataKey?\n var matchedTick = findEntryInArray(ticks, 'value', entry[axis.dataKey]);\n if (matchedTick) {\n return matchedTick.coordinate + bandSize / 2;\n }\n }\n return ticks[index] ? ticks[index].coordinate + bandSize / 2 : null;\n }\n var value = getValueByDataKey(entry, !isNil(dataKey) ? dataKey : axis.dataKey);\n return !isNil(value) ? axis.scale(value) : null;\n}\nexport var getCateCoordinateOfBar = function getCateCoordinateOfBar(_ref6) {\n var axis = _ref6.axis,\n ticks = _ref6.ticks,\n offset = _ref6.offset,\n bandSize = _ref6.bandSize,\n entry = _ref6.entry,\n index = _ref6.index;\n if (axis.type === 'category') {\n return ticks[index] ? ticks[index].coordinate + offset : null;\n }\n var value = getValueByDataKey(entry, axis.dataKey, axis.domain[index]);\n return !isNil(value) ? axis.scale(value) - bandSize / 2 + offset : null;\n};\nexport var getBaseValueOfBar = function getBaseValueOfBar(_ref7) {\n var numericAxis = _ref7.numericAxis;\n var domain = numericAxis.scale.domain();\n if (numericAxis.type === 'number') {\n var minValue = Math.min(domain[0], domain[1]);\n var maxValue = Math.max(domain[0], domain[1]);\n if (minValue <= 0 && maxValue >= 0) {\n return 0;\n }\n if (maxValue < 0) {\n return maxValue;\n }\n return minValue;\n }\n return domain[0];\n};\nexport var getStackedDataOfItem = function getStackedDataOfItem(item, stackGroups) {\n var 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 hide = _graphicalItem$props.hide;\n return _objectSpread(_objectSpread({}, filterProps(graphicalItem, false)), {}, {\n dataKey: dataKey,\n unit: unit,\n formatter: formatter,\n name: name || dataKey,\n color: getMainColorOfGraphicItem(graphicalItem),\n value: getValueByDataKey(payload, dataKey),\n type: tooltipType,\n payload: payload,\n chartType: chartType,\n hide: hide\n });\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport isNil from 'lodash/isNil';\nimport { isValidElement } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport { getPercentValue } from './DataUtils';\nimport { parseScale, checkDomainOfScale, getTicksOfScale } from './ChartUtils';\nexport var RADIAN = Math.PI / 180;\nexport var degreeToRadian = function degreeToRadian(angle) {\n return angle * Math.PI / 180;\n};\nexport var radianToDegree = function radianToDegree(angleInRadian) {\n return angleInRadian * 180 / Math.PI;\n};\nexport var polarToCartesian = function polarToCartesian(cx, cy, radius, angle) {\n return {\n x: cx + Math.cos(-RADIAN * angle) * radius,\n y: cy + Math.sin(-RADIAN * angle) * radius\n };\n};\nexport var getMaxRadius = function getMaxRadius(width, height) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n return Math.min(Math.abs(width - (offset.left || 0) - (offset.right || 0)), Math.abs(height - (offset.top || 0) - (offset.bottom || 0))) / 2;\n};\n\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {Object} axisType The type of axes, radius-axis or angle-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height;\n var startAngle = props.startAngle,\n endAngle = props.endAngle;\n var cx = getPercentValue(props.cx, width, width / 2);\n var cy = getPercentValue(props.cy, height, height / 2);\n var maxRadius = getMaxRadius(width, height, offset);\n var innerRadius = getPercentValue(props.innerRadius, maxRadius, 0);\n var outerRadius = getPercentValue(props.outerRadius, maxRadius, maxRadius * 0.8);\n var ids = Object.keys(axisMap);\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var domain = axis.domain,\n reversed = axis.reversed;\n var range;\n if (isNil(axis.range)) {\n if (axisType === 'angleAxis') {\n range = [startAngle, endAngle];\n } else if (axisType === 'radiusAxis') {\n range = [innerRadius, outerRadius];\n }\n if (reversed) {\n range = [range[1], range[0]];\n }\n } else {\n range = axis.range;\n var _range = range;\n var _range2 = _slicedToArray(_range, 2);\n startAngle = _range2[0];\n endAngle = _range2[1];\n }\n var _parseScale = parseScale(axis, chartName),\n realScaleType = _parseScale.realScaleType,\n scale = _parseScale.scale;\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n range: range,\n radius: outerRadius,\n realScaleType: realScaleType,\n scale: scale,\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var distanceBetweenPoints = function distanceBetweenPoints(point, anotherPoint) {\n var x1 = point.x,\n y1 = point.y;\n var x2 = anotherPoint.x,\n y2 = anotherPoint.y;\n return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));\n};\nexport var getAngleOfPoint = function getAngleOfPoint(_ref, _ref2) {\n var x = _ref.x,\n y = _ref.y;\n var cx = _ref2.cx,\n cy = _ref2.cy;\n var radius = distanceBetweenPoints({\n x: x,\n y: y\n }, {\n x: cx,\n y: cy\n });\n if (radius <= 0) {\n return {\n radius: radius\n };\n }\n var cos = (x - cx) / radius;\n var angleInRadian = Math.acos(cos);\n if (y > cy) {\n angleInRadian = 2 * Math.PI - angleInRadian;\n }\n return {\n radius: radius,\n angle: radianToDegree(angleInRadian),\n angleInRadian: angleInRadian\n };\n};\nexport var formatAngleOfSector = function formatAngleOfSector(_ref3) {\n var startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return {\n startAngle: startAngle - min * 360,\n endAngle: endAngle - min * 360\n };\n};\nvar reverseFormatAngleOfSetor = function reverseFormatAngleOfSetor(angle, _ref4) {\n var startAngle = _ref4.startAngle,\n endAngle = _ref4.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return angle + min * 360;\n};\nexport var inRangeOfSector = function inRangeOfSector(_ref5, sector) {\n var x = _ref5.x,\n y = _ref5.y;\n var _getAngleOfPoint = getAngleOfPoint({\n x: x,\n y: y\n }, sector),\n radius = _getAngleOfPoint.radius,\n angle = _getAngleOfPoint.angle;\n var innerRadius = sector.innerRadius,\n outerRadius = sector.outerRadius;\n if (radius < innerRadius || radius > outerRadius) {\n return false;\n }\n if (radius === 0) {\n return true;\n }\n var _formatAngleOfSector = formatAngleOfSector(sector),\n startAngle = _formatAngleOfSector.startAngle,\n endAngle = _formatAngleOfSector.endAngle;\n var formatAngle = angle;\n var inRange;\n if (startAngle <= endAngle) {\n while (formatAngle > endAngle) {\n formatAngle -= 360;\n }\n while (formatAngle < startAngle) {\n formatAngle += 360;\n }\n inRange = formatAngle >= startAngle && formatAngle <= endAngle;\n } else {\n while (formatAngle > startAngle) {\n formatAngle -= 360;\n }\n while (formatAngle < endAngle) {\n formatAngle += 360;\n }\n inRange = formatAngle >= endAngle && formatAngle <= startAngle;\n }\n if (inRange) {\n return _objectSpread(_objectSpread({}, sector), {}, {\n radius: radius,\n angle: reverseFormatAngleOfSetor(formatAngle, sector)\n });\n }\n return null;\n};\nexport var getTickClassName = function getTickClassName(tick) {\n return ! /*#__PURE__*/isValidElement(tick) && !isFunction(tick) && typeof tick !== 'boolean' ? tick.className : '';\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"offset\"];\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { cloneElement, isValidElement, createElement } from 'react';\nimport isNil from 'lodash/isNil';\nimport isFunction from 'lodash/isFunction';\nimport isObject from 'lodash/isObject';\nimport clsx from 'clsx';\nimport { Text } from './Text';\nimport { findAllByType, filterProps } from '../util/ReactUtils';\nimport { isNumOrStr, isNumber, isPercent, getPercentValue, uniqueId, mathSign } from '../util/DataUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nvar getLabel = function getLabel(props) {\n var value = props.value,\n formatter = props.formatter;\n var label = isNil(props.children) ? value : props.children;\n if (isFunction(formatter)) {\n return formatter(label);\n }\n return label;\n};\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n};\nvar renderRadialLabel = function renderRadialLabel(labelProps, label, attrs) {\n var position = labelProps.position,\n viewBox = labelProps.viewBox,\n offset = labelProps.offset,\n className = labelProps.className;\n var _ref = viewBox,\n cx = _ref.cx,\n cy = _ref.cy,\n innerRadius = _ref.innerRadius,\n outerRadius = _ref.outerRadius,\n startAngle = _ref.startAngle,\n endAngle = _ref.endAngle,\n clockWise = _ref.clockWise;\n var radius = (innerRadius + outerRadius) / 2;\n var deltaAngle = getDeltaAngle(startAngle, endAngle);\n var sign = deltaAngle >= 0 ? 1 : -1;\n var labelAngle, direction;\n if (position === 'insideStart') {\n labelAngle = startAngle + sign * offset;\n direction = clockWise;\n } else if (position === 'insideEnd') {\n labelAngle = endAngle - sign * offset;\n direction = !clockWise;\n } else if (position === 'end') {\n labelAngle = endAngle + sign * offset;\n direction = clockWise;\n }\n direction = deltaAngle <= 0 ? direction : !direction;\n var startPoint = polarToCartesian(cx, cy, radius, labelAngle);\n var endPoint = polarToCartesian(cx, cy, radius, labelAngle + (direction ? 1 : -1) * 359);\n var path = \"M\".concat(startPoint.x, \",\").concat(startPoint.y, \"\\n A\").concat(radius, \",\").concat(radius, \",0,1,\").concat(direction ? 0 : 1, \",\\n \").concat(endPoint.x, \",\").concat(endPoint.y);\n var id = isNil(labelProps.id) ? uniqueId('recharts-radial-line-') : labelProps.id;\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, attrs, {\n dominantBaseline: \"central\",\n className: clsx('recharts-radial-bar-label', className)\n }), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: id,\n d: path\n })), /*#__PURE__*/React.createElement(\"textPath\", {\n xlinkHref: \"#\".concat(id)\n }, label));\n};\nvar getAttrsOfPolarLabel = function getAttrsOfPolarLabel(props) {\n var viewBox = props.viewBox,\n offset = props.offset,\n position = props.position;\n var _ref2 = viewBox,\n cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var midAngle = (startAngle + endAngle) / 2;\n if (position === 'outside') {\n var _polarToCartesian = polarToCartesian(cx, cy, outerRadius + offset, midAngle),\n _x = _polarToCartesian.x,\n _y = _polarToCartesian.y;\n return {\n x: _x,\n y: _y,\n textAnchor: _x >= cx ? 'start' : 'end',\n verticalAnchor: 'middle'\n };\n }\n if (position === 'center') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n }\n if (position === 'centerTop') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n if (position === 'centerBottom') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'end'\n };\n }\n var r = (innerRadius + outerRadius) / 2;\n var _polarToCartesian2 = polarToCartesian(cx, cy, r, midAngle),\n x = _polarToCartesian2.x,\n y = _polarToCartesian2.y;\n return {\n x: x,\n y: y,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n};\nvar getAttrsOfCartesianLabel = function getAttrsOfCartesianLabel(props) {\n var viewBox = props.viewBox,\n parentViewBox = props.parentViewBox,\n offset = props.offset,\n position = props.position;\n var _ref3 = viewBox,\n x = _ref3.x,\n y = _ref3.y,\n width = _ref3.width,\n height = _ref3.height;\n\n // Define vertical offsets and position inverts based on the value being positive or negative\n var verticalSign = height >= 0 ? 1 : -1;\n var verticalOffset = verticalSign * offset;\n var verticalEnd = verticalSign > 0 ? 'end' : 'start';\n var verticalStart = verticalSign > 0 ? 'start' : 'end';\n\n // Define horizontal offsets and position inverts based on the value being positive or negative\n var horizontalSign = width >= 0 ? 1 : -1;\n var horizontalOffset = horizontalSign * offset;\n var horizontalEnd = horizontalSign > 0 ? 'end' : 'start';\n var horizontalStart = horizontalSign > 0 ? 'start' : 'end';\n if (position === 'top') {\n var attrs = {\n x: x + width / 2,\n y: y - verticalSign * offset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n };\n return _objectSpread(_objectSpread({}, attrs), parentViewBox ? {\n height: Math.max(y - parentViewBox.y, 0),\n width: width\n } : {});\n }\n if (position === 'bottom') {\n var _attrs = {\n x: x + width / 2,\n y: y + height + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n };\n return _objectSpread(_objectSpread({}, _attrs), parentViewBox ? {\n height: Math.max(parentViewBox.y + parentViewBox.height - (y + height), 0),\n width: width\n } : {});\n }\n if (position === 'left') {\n var _attrs2 = {\n x: x - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs2), parentViewBox ? {\n width: Math.max(_attrs2.x - parentViewBox.x, 0),\n height: height\n } : {});\n }\n if (position === 'right') {\n var _attrs3 = {\n x: x + width + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs3), parentViewBox ? {\n width: Math.max(parentViewBox.x + parentViewBox.width - _attrs3.x, 0),\n height: height\n } : {});\n }\n var sizeAttrs = parentViewBox ? {\n width: width,\n height: height\n } : {};\n if (position === 'insideLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n if (position === 'insideRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n if (position === 'insideTop') {\n return _objectSpread({\n x: x + width / 2,\n y: y + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideBottom') {\n return _objectSpread({\n x: x + width / 2,\n y: y + height - verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (position === 'insideTopLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideTopRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideBottomLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (position === 'insideBottomRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (isObject(position) && (isNumber(position.x) || isPercent(position.x)) && (isNumber(position.y) || isPercent(position.y))) {\n return _objectSpread({\n x: x + getPercentValue(position.x, width),\n y: y + getPercentValue(position.y, height),\n textAnchor: 'end',\n verticalAnchor: 'end'\n }, sizeAttrs);\n }\n return _objectSpread({\n x: x + width / 2,\n y: y + height / 2,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n }, sizeAttrs);\n};\nvar isPolar = function isPolar(viewBox) {\n return 'cx' in viewBox && isNumber(viewBox.cx);\n};\nexport function Label(_ref4) {\n var _ref4$offset = _ref4.offset,\n offset = _ref4$offset === void 0 ? 5 : _ref4$offset,\n restProps = _objectWithoutProperties(_ref4, _excluded);\n var props = _objectSpread({\n offset: offset\n }, restProps);\n var viewBox = props.viewBox,\n position = props.position,\n value = props.value,\n children = props.children,\n content = props.content,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n textBreakAll = props.textBreakAll;\n if (!viewBox || isNil(value) && isNil(children) && ! /*#__PURE__*/isValidElement(content) && !isFunction(content)) {\n return null;\n }\n if ( /*#__PURE__*/isValidElement(content)) {\n return /*#__PURE__*/cloneElement(content, props);\n }\n var label;\n if (isFunction(content)) {\n label = /*#__PURE__*/createElement(content, props);\n if ( /*#__PURE__*/isValidElement(label)) {\n return label;\n }\n } else {\n label = getLabel(props);\n }\n var isPolarLabel = isPolar(viewBox);\n var attrs = filterProps(props, true);\n if (isPolarLabel && (position === 'insideStart' || position === 'insideEnd' || position === 'end')) {\n return renderRadialLabel(props, label, attrs);\n }\n var positionAttrs = isPolarLabel ? getAttrsOfPolarLabel(props) : getAttrsOfCartesianLabel(props);\n return /*#__PURE__*/React.createElement(Text, _extends({\n className: clsx('recharts-label', className)\n }, attrs, positionAttrs, {\n breakAll: textBreakAll\n }), label);\n}\nLabel.displayName = 'Label';\nvar parseViewBox = function parseViewBox(props) {\n var cx = props.cx,\n cy = props.cy,\n angle = props.angle,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n r = props.r,\n radius = props.radius,\n innerRadius = props.innerRadius,\n outerRadius = props.outerRadius,\n x = props.x,\n y = props.y,\n top = props.top,\n left = props.left,\n width = props.width,\n height = props.height,\n clockWise = props.clockWise,\n labelViewBox = props.labelViewBox;\n if (labelViewBox) {\n return labelViewBox;\n }\n if (isNumber(width) && isNumber(height)) {\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n }\n if (isNumber(top) && isNumber(left)) {\n return {\n x: top,\n y: left,\n width: width,\n height: height\n };\n }\n }\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: 0,\n height: 0\n };\n }\n if (isNumber(cx) && isNumber(cy)) {\n return {\n cx: cx,\n cy: cy,\n startAngle: startAngle || angle || 0,\n endAngle: endAngle || angle || 0,\n innerRadius: innerRadius || 0,\n outerRadius: outerRadius || radius || r || 0,\n clockWise: clockWise\n };\n }\n if (props.viewBox) {\n return props.viewBox;\n }\n return {};\n};\nvar parseLabel = function parseLabel(label, viewBox) {\n if (!label) {\n return null;\n }\n if (label === true) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox\n });\n }\n if (isNumOrStr(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox,\n value: label\n });\n }\n if ( /*#__PURE__*/isValidElement(label)) {\n if (label.type === Label) {\n return /*#__PURE__*/cloneElement(label, {\n key: 'label-implicit',\n viewBox: viewBox\n });\n }\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n if (isFunction(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n if (isObject(label)) {\n return /*#__PURE__*/React.createElement(Label, _extends({\n viewBox: viewBox\n }, label, {\n key: \"label-implicit\"\n }));\n }\n return null;\n};\nvar renderCallByParent = function renderCallByParent(parentProps, viewBox) {\n var checkPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (!parentProps || !parentProps.children && checkPropsLabel && !parentProps.label) {\n return null;\n }\n var children = parentProps.children;\n var parentViewBox = parseViewBox(parentProps);\n var explicitChildren = findAllByType(children, Label).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n viewBox: viewBox || parentViewBox,\n // eslint-disable-next-line react/no-array-index-key\n key: \"label-\".concat(index)\n });\n });\n if (!checkPropsLabel) {\n return explicitChildren;\n }\n var implicitLabel = parseLabel(parentProps.label, viewBox || parentViewBox);\n return [implicitLabel].concat(_toConsumableArray(explicitChildren));\n};\nLabel.parseViewBox = parseViewBox;\nLabel.renderCallByParent = renderCallByParent;","/**\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","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"valueAccessor\"],\n _excluded2 = [\"data\", \"dataKey\", \"clockWise\", \"id\", \"textBreakAll\"];\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { cloneElement } from 'react';\nimport isNil from 'lodash/isNil';\nimport isObject from 'lodash/isObject';\nimport isFunction from 'lodash/isFunction';\nimport last from 'lodash/last';\nimport { Label } from './Label';\nimport { Layer } from '../container/Layer';\nimport { findAllByType, filterProps } from '../util/ReactUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\nvar defaultAccessor = function defaultAccessor(entry) {\n return Array.isArray(entry.value) ? last(entry.value) : entry.value;\n};\nexport function LabelList(_ref) {\n var _ref$valueAccessor = _ref.valueAccessor,\n valueAccessor = _ref$valueAccessor === void 0 ? defaultAccessor : _ref$valueAccessor,\n restProps = _objectWithoutProperties(_ref, _excluded);\n var data = restProps.data,\n dataKey = restProps.dataKey,\n clockWise = restProps.clockWise,\n id = restProps.id,\n textBreakAll = restProps.textBreakAll,\n others = _objectWithoutProperties(restProps, _excluded2);\n if (!data || !data.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-label-list\"\n }, data.map(function (entry, index) {\n var value = isNil(dataKey) ? valueAccessor(entry, index) : getValueByDataKey(entry && entry.payload, dataKey);\n var idProps = isNil(id) ? {} : {\n id: \"\".concat(id, \"-\").concat(index)\n };\n return /*#__PURE__*/React.createElement(Label, _extends({}, filterProps(entry, true), others, idProps, {\n parentViewBox: entry.parentViewBox,\n value: value,\n textBreakAll: textBreakAll,\n viewBox: Label.parseViewBox(isNil(clockWise) ? entry : _objectSpread(_objectSpread({}, entry), {}, {\n clockWise: clockWise\n })),\n key: \"label-\".concat(index) // eslint-disable-line react/no-array-index-key\n ,\n index: index\n }));\n }));\n}\nLabelList.displayName = 'LabelList';\nfunction parseLabelList(label, data) {\n if (!label) {\n return null;\n }\n if (label === true) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data\n });\n }\n if ( /*#__PURE__*/React.isValidElement(label) || isFunction(label)) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data,\n content: label\n });\n }\n if (isObject(label)) {\n return /*#__PURE__*/React.createElement(LabelList, _extends({\n data: data\n }, label, {\n key: \"labelList-implicit\"\n }));\n }\n return null;\n}\nfunction renderCallByParent(parentProps, data) {\n var checkPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (!parentProps || !parentProps.children && checkPropsLabel && !parentProps.label) {\n return null;\n }\n var children = parentProps.children;\n var explicitChildren = findAllByType(children, LabelList).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n data: data,\n // eslint-disable-next-line react/no-array-index-key\n key: \"labelList-\".concat(index)\n });\n });\n if (!checkPropsLabel) {\n return explicitChildren;\n }\n var implicitLabelList = parseLabelList(parentProps.label, data);\n return [implicitLabelList].concat(_toConsumableArray(explicitChildren));\n}\nLabelList.renderCallByParent = renderCallByParent;","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Sector\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nimport { polarToCartesian, RADIAN } from '../util/PolarUtils';\nimport { getPercentValue, mathSign } from '../util/DataUtils';\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 359.999);\n return sign * deltaAngle;\n};\nvar getTangentCircle = function getTangentCircle(_ref) {\n var cx = _ref.cx,\n cy = _ref.cy,\n radius = _ref.radius,\n angle = _ref.angle,\n sign = _ref.sign,\n isExternal = _ref.isExternal,\n cornerRadius = _ref.cornerRadius,\n cornerIsExternal = _ref.cornerIsExternal;\n var centerRadius = cornerRadius * (isExternal ? 1 : -1) + radius;\n var theta = Math.asin(cornerRadius / centerRadius) / RADIAN;\n var centerAngle = cornerIsExternal ? angle : angle + sign * theta;\n var center = polarToCartesian(cx, cy, centerRadius, centerAngle);\n // The coordinate of point which is tangent to the circle\n var circleTangency = polarToCartesian(cx, cy, radius, centerAngle);\n // The coordinate of point which is tangent to the radius line\n var lineTangencyAngle = cornerIsExternal ? angle - sign * theta : angle;\n var lineTangency = polarToCartesian(cx, cy, centerRadius * Math.cos(theta * RADIAN), lineTangencyAngle);\n return {\n center: center,\n circleTangency: circleTangency,\n lineTangency: lineTangency,\n theta: theta\n };\n};\nvar getSectorPath = function getSectorPath(_ref2) {\n var cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var angle = getDeltaAngle(startAngle, endAngle);\n\n // When the angle of sector equals to 360, star point and end point coincide\n var tempEndAngle = startAngle + angle;\n var outerStartPoint = polarToCartesian(cx, cy, outerRadius, startAngle);\n var outerEndPoint = polarToCartesian(cx, cy, outerRadius, tempEndAngle);\n var path = \"M \".concat(outerStartPoint.x, \",\").concat(outerStartPoint.y, \"\\n A \").concat(outerRadius, \",\").concat(outerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle > tempEndAngle), \",\\n \").concat(outerEndPoint.x, \",\").concat(outerEndPoint.y, \"\\n \");\n if (innerRadius > 0) {\n var innerStartPoint = polarToCartesian(cx, cy, innerRadius, startAngle);\n var innerEndPoint = polarToCartesian(cx, cy, innerRadius, tempEndAngle);\n path += \"L \".concat(innerEndPoint.x, \",\").concat(innerEndPoint.y, \"\\n A \").concat(innerRadius, \",\").concat(innerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle <= tempEndAngle), \",\\n \").concat(innerStartPoint.x, \",\").concat(innerStartPoint.y, \" Z\");\n } else {\n path += \"L \".concat(cx, \",\").concat(cy, \" Z\");\n }\n return path;\n};\nvar getSectorWithCorner = function getSectorWithCorner(_ref3) {\n var cx = _ref3.cx,\n cy = _ref3.cy,\n innerRadius = _ref3.innerRadius,\n outerRadius = _ref3.outerRadius,\n cornerRadius = _ref3.cornerRadius,\n forceCornerRadius = _ref3.forceCornerRadius,\n cornerIsExternal = _ref3.cornerIsExternal,\n startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var sign = mathSign(endAngle - startAngle);\n var _getTangentCircle = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: startAngle,\n sign: sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n soct = _getTangentCircle.circleTangency,\n solt = _getTangentCircle.lineTangency,\n sot = _getTangentCircle.theta;\n var _getTangentCircle2 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: endAngle,\n sign: -sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eoct = _getTangentCircle2.circleTangency,\n eolt = _getTangentCircle2.lineTangency,\n eot = _getTangentCircle2.theta;\n var outerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sot - eot;\n if (outerArcAngle < 0) {\n if (forceCornerRadius) {\n return \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(cornerRadius * 2, \",0\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(-cornerRadius * 2, \",0\\n \");\n }\n return getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n var path = \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(soct.x, \",\").concat(soct.y, \"\\n A\").concat(outerRadius, \",\").concat(outerRadius, \",0,\").concat(+(outerArcAngle > 180), \",\").concat(+(sign < 0), \",\").concat(eoct.x, \",\").concat(eoct.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eolt.x, \",\").concat(eolt.y, \"\\n \");\n if (innerRadius > 0) {\n var _getTangentCircle3 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: startAngle,\n sign: sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n sict = _getTangentCircle3.circleTangency,\n silt = _getTangentCircle3.lineTangency,\n sit = _getTangentCircle3.theta;\n var _getTangentCircle4 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: endAngle,\n sign: -sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eict = _getTangentCircle4.circleTangency,\n eilt = _getTangentCircle4.lineTangency,\n eit = _getTangentCircle4.theta;\n var innerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sit - eit;\n if (innerArcAngle < 0 && cornerRadius === 0) {\n return \"\".concat(path, \"L\").concat(cx, \",\").concat(cy, \"Z\");\n }\n path += \"L\".concat(eilt.x, \",\").concat(eilt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eict.x, \",\").concat(eict.y, \"\\n A\").concat(innerRadius, \",\").concat(innerRadius, \",0,\").concat(+(innerArcAngle > 180), \",\").concat(+(sign > 0), \",\").concat(sict.x, \",\").concat(sict.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(silt.x, \",\").concat(silt.y, \"Z\");\n } else {\n path += \"L\".concat(cx, \",\").concat(cy, \"Z\");\n }\n return path;\n};\nvar defaultProps = {\n cx: 0,\n cy: 0,\n innerRadius: 0,\n outerRadius: 0,\n startAngle: 0,\n endAngle: 0,\n cornerRadius: 0,\n forceCornerRadius: false,\n cornerIsExternal: false\n};\nexport var Sector = function Sector(sectorProps) {\n var props = _objectSpread(_objectSpread({}, defaultProps), sectorProps);\n var cx = props.cx,\n cy = props.cy,\n innerRadius = props.innerRadius,\n outerRadius = props.outerRadius,\n cornerRadius = props.cornerRadius,\n forceCornerRadius = props.forceCornerRadius,\n cornerIsExternal = props.cornerIsExternal,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n className = props.className;\n if (outerRadius < innerRadius || startAngle === endAngle) {\n return null;\n }\n var layerClass = clsx('recharts-sector', className);\n var deltaRadius = outerRadius - innerRadius;\n var cr = getPercentValue(cornerRadius, deltaRadius, 0, true);\n var path;\n if (cr > 0 && Math.abs(startAngle - endAngle) < 360) {\n path = getSectorWithCorner({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n cornerRadius: Math.min(cr, deltaRadius / 2),\n forceCornerRadius: forceCornerRadius,\n cornerIsExternal: cornerIsExternal,\n startAngle: startAngle,\n endAngle: endAngle\n });\n } else {\n path = getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: layerClass,\n d: path,\n role: \"img\"\n }));\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Curve\n */\nimport React from 'react';\nimport { line as shapeLine, area as shapeArea, curveBasisClosed, curveBasisOpen, curveBasis, curveBumpX, curveBumpY, curveLinearClosed, curveLinear, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from 'victory-vendor/d3-shape';\nimport upperFirst from 'lodash/upperFirst';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { adaptEventHandlers } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nimport { isNumber } from '../util/DataUtils';\nvar CURVE_FACTORIES = {\n curveBasisClosed: curveBasisClosed,\n curveBasisOpen: curveBasisOpen,\n curveBasis: curveBasis,\n curveBumpX: curveBumpX,\n curveBumpY: curveBumpY,\n curveLinearClosed: curveLinearClosed,\n curveLinear: curveLinear,\n curveMonotoneX: curveMonotoneX,\n curveMonotoneY: curveMonotoneY,\n curveNatural: curveNatural,\n curveStep: curveStep,\n curveStepAfter: curveStepAfter,\n curveStepBefore: curveStepBefore\n};\nvar defined = function defined(p) {\n return p.x === +p.x && p.y === +p.y;\n};\nvar getX = function getX(p) {\n return p.x;\n};\nvar getY = function getY(p) {\n return p.y;\n};\nvar getCurveFactory = function getCurveFactory(type, layout) {\n if (isFunction(type)) {\n return type;\n }\n var name = \"curve\".concat(upperFirst(type));\n if ((name === 'curveMonotone' || name === 'curveBump') && layout) {\n return CURVE_FACTORIES[\"\".concat(name).concat(layout === 'vertical' ? 'Y' : 'X')];\n }\n return CURVE_FACTORIES[name] || curveLinear;\n};\n/**\n * Calculate the path of curve. Returns null if points is an empty array.\n * @return path or null\n */\nexport var getPath = function getPath(_ref) {\n var _ref$type = _ref.type,\n type = _ref$type === void 0 ? 'linear' : _ref$type,\n _ref$points = _ref.points,\n points = _ref$points === void 0 ? [] : _ref$points,\n baseLine = _ref.baseLine,\n layout = _ref.layout,\n _ref$connectNulls = _ref.connectNulls,\n connectNulls = _ref$connectNulls === void 0 ? false : _ref$connectNulls;\n var curveFactory = getCurveFactory(type, layout);\n var formatPoints = connectNulls ? points.filter(function (entry) {\n return defined(entry);\n }) : points;\n var lineFunction;\n if (Array.isArray(baseLine)) {\n var formatBaseLine = connectNulls ? baseLine.filter(function (base) {\n return defined(base);\n }) : baseLine;\n var areaPoints = formatPoints.map(function (entry, index) {\n return _objectSpread(_objectSpread({}, entry), {}, {\n base: formatBaseLine[index]\n });\n });\n if (layout === 'vertical') {\n lineFunction = shapeArea().y(getY).x1(getX).x0(function (d) {\n return d.base.x;\n });\n } else {\n lineFunction = shapeArea().x(getX).y1(getY).y0(function (d) {\n return d.base.y;\n });\n }\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(areaPoints);\n }\n if (layout === 'vertical' && isNumber(baseLine)) {\n lineFunction = shapeArea().y(getY).x1(getX).x0(baseLine);\n } else if (isNumber(baseLine)) {\n lineFunction = shapeArea().x(getX).y1(getY).y0(baseLine);\n } else {\n lineFunction = shapeLine().x(getX).y(getY);\n }\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(formatPoints);\n};\nexport var Curve = function Curve(props) {\n var className = props.className,\n points = props.points,\n path = props.path,\n pathRef = props.pathRef;\n if ((!points || !points.length) && !path) {\n return null;\n }\n var realPath = points && points.length ? getPath(props) : path;\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, false), adaptEventHandlers(props), {\n className: clsx('recharts-curve', className),\n d: realPath,\n ref: pathRef\n }));\n};","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(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 _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(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); }\n/* eslint no-console: 0 */\n\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};\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};\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(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 _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(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _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(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 { 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(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 = [\"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(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 _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 } 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 && style[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 = 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;","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nexport default function hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}","import hasClass from './hasClass';\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\nexport default function addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!hasClass(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}","function replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nexport default function removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","var _excluded = [\"children\", \"appearOptions\", \"enterOptions\", \"leaveOptions\"];\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 _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 _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';\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;","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Rectangle\n */\nimport React, { useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport Animate from 'react-smooth';\nimport { filterProps } from '../util/ReactUtils';\nvar getRectanglePath = function getRectanglePath(x, y, width, height, radius) {\n var maxRadius = Math.min(Math.abs(width) / 2, Math.abs(height) / 2);\n var ySign = height >= 0 ? 1 : -1;\n var xSign = width >= 0 ? 1 : -1;\n var clockWise = height >= 0 && width >= 0 || height < 0 && width < 0 ? 1 : 0;\n var path;\n if (maxRadius > 0 && radius instanceof Array) {\n var newRadius = [0, 0, 0, 0];\n for (var i = 0, len = 4; i < len; i++) {\n newRadius[i] = radius[i] > maxRadius ? maxRadius : radius[i];\n }\n path = \"M\".concat(x, \",\").concat(y + ySign * newRadius[0]);\n if (newRadius[0] > 0) {\n path += \"A \".concat(newRadius[0], \",\").concat(newRadius[0], \",0,0,\").concat(clockWise, \",\").concat(x + xSign * newRadius[0], \",\").concat(y);\n }\n path += \"L \".concat(x + width - xSign * newRadius[1], \",\").concat(y);\n if (newRadius[1] > 0) {\n path += \"A \".concat(newRadius[1], \",\").concat(newRadius[1], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width, \",\").concat(y + ySign * newRadius[1]);\n }\n path += \"L \".concat(x + width, \",\").concat(y + height - ySign * newRadius[2]);\n if (newRadius[2] > 0) {\n path += \"A \".concat(newRadius[2], \",\").concat(newRadius[2], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width - xSign * newRadius[2], \",\").concat(y + height);\n }\n path += \"L \".concat(x + xSign * newRadius[3], \",\").concat(y + height);\n if (newRadius[3] > 0) {\n path += \"A \".concat(newRadius[3], \",\").concat(newRadius[3], \",0,0,\").concat(clockWise, \",\\n \").concat(x, \",\").concat(y + height - ySign * newRadius[3]);\n }\n path += 'Z';\n } else if (maxRadius > 0 && radius === +radius && radius > 0) {\n var _newRadius = Math.min(maxRadius, radius);\n path = \"M \".concat(x, \",\").concat(y + ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + xSign * _newRadius, \",\").concat(y, \"\\n L \").concat(x + width - xSign * _newRadius, \",\").concat(y, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width, \",\").concat(y + ySign * _newRadius, \"\\n L \").concat(x + width, \",\").concat(y + height - ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width - xSign * _newRadius, \",\").concat(y + height, \"\\n L \").concat(x + xSign * _newRadius, \",\").concat(y + height, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x, \",\").concat(y + height - ySign * _newRadius, \" Z\");\n } else {\n path = \"M \".concat(x, \",\").concat(y, \" h \").concat(width, \" v \").concat(height, \" h \").concat(-width, \" Z\");\n }\n return path;\n};\nexport var isInRectangle = function isInRectangle(point, rect) {\n if (!point || !rect) {\n return false;\n }\n var px = point.x,\n py = point.y;\n var x = rect.x,\n y = rect.y,\n width = rect.width,\n height = rect.height;\n if (Math.abs(width) > 0 && Math.abs(height) > 0) {\n var minX = Math.min(x, x + width);\n var maxX = Math.max(x, x + width);\n var minY = Math.min(y, y + height);\n var maxY = Math.max(y, y + height);\n return px >= minX && px <= maxX && py >= minY && py <= maxY;\n }\n return false;\n};\nvar defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n // The radius of border\n // The radius of four corners when radius is a number\n // The radius of left-top, right-top, right-bottom, left-bottom when radius is an array\n radius: 0,\n isAnimationActive: false,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};\nexport var Rectangle = function Rectangle(rectangleProps) {\n var props = _objectSpread(_objectSpread({}, defaultProps), rectangleProps);\n var pathRef = useRef();\n var _useState = useState(-1),\n _useState2 = _slicedToArray(_useState, 2),\n totalLength = _useState2[0],\n setTotalLength = _useState2[1];\n useEffect(function () {\n if (pathRef.current && pathRef.current.getTotalLength) {\n try {\n var pathTotalLength = pathRef.current.getTotalLength();\n if (pathTotalLength) {\n setTotalLength(pathTotalLength);\n }\n } catch (err) {\n // calculate total length error\n }\n }\n }, []);\n var x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n radius = props.radius,\n className = props.className;\n var animationEasing = props.animationEasing,\n animationDuration = props.animationDuration,\n animationBegin = props.animationBegin,\n isAnimationActive = props.isAnimationActive,\n isUpdateAnimationActive = props.isUpdateAnimationActive;\n if (x !== +x || y !== +y || width !== +width || height !== +height || width === 0 || height === 0) {\n return null;\n }\n var layerClass = clsx('recharts-rectangle', className);\n if (!isUpdateAnimationActive) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: layerClass,\n d: getRectanglePath(x, y, width, height, radius)\n }));\n }\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n to: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n duration: animationDuration,\n animationEasing: animationEasing,\n isActive: isUpdateAnimationActive\n }, function (_ref) {\n var currWidth = _ref.width,\n currHeight = _ref.height,\n currX = _ref.x,\n currY = _ref.y;\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\"),\n to: \"\".concat(totalLength, \"px 0px\"),\n attributeName: \"strokeDasharray\",\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing\n }, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: layerClass,\n d: getRectanglePath(currX, currY, currWidth, currHeight, radius),\n ref: pathRef\n })));\n });\n};","var _excluded = [\"points\", \"className\", \"baseLinePoints\", \"connectNulls\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\n/**\n * @fileOverview Polygon\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { filterProps } from '../util/ReactUtils';\nvar isValidatePoint = function isValidatePoint(point) {\n return point && point.x === +point.x && point.y === +point.y;\n};\nvar getParsedPoints = function getParsedPoints() {\n var points = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var segmentPoints = [[]];\n points.forEach(function (entry) {\n if (isValidatePoint(entry)) {\n segmentPoints[segmentPoints.length - 1].push(entry);\n } else if (segmentPoints[segmentPoints.length - 1].length > 0) {\n // add another path\n segmentPoints.push([]);\n }\n });\n if (isValidatePoint(points[0])) {\n segmentPoints[segmentPoints.length - 1].push(points[0]);\n }\n if (segmentPoints[segmentPoints.length - 1].length <= 0) {\n segmentPoints = segmentPoints.slice(0, -1);\n }\n return segmentPoints;\n};\nvar getSinglePolygonPath = function getSinglePolygonPath(points, connectNulls) {\n var segmentPoints = getParsedPoints(points);\n if (connectNulls) {\n segmentPoints = [segmentPoints.reduce(function (res, segPoints) {\n return [].concat(_toConsumableArray(res), _toConsumableArray(segPoints));\n }, [])];\n }\n var polygonPath = segmentPoints.map(function (segPoints) {\n return segPoints.reduce(function (path, point, index) {\n return \"\".concat(path).concat(index === 0 ? 'M' : 'L').concat(point.x, \",\").concat(point.y);\n }, '');\n }).join('');\n return segmentPoints.length === 1 ? \"\".concat(polygonPath, \"Z\") : polygonPath;\n};\nvar getRanglePath = function getRanglePath(points, baseLinePoints, connectNulls) {\n var outerPath = getSinglePolygonPath(points, connectNulls);\n return \"\".concat(outerPath.slice(-1) === 'Z' ? outerPath.slice(0, -1) : outerPath, \"L\").concat(getSinglePolygonPath(baseLinePoints.reverse(), connectNulls).slice(1));\n};\nexport var Polygon = function Polygon(props) {\n var points = props.points,\n className = props.className,\n baseLinePoints = props.baseLinePoints,\n connectNulls = props.connectNulls,\n others = _objectWithoutProperties(props, _excluded);\n if (!points || !points.length) {\n return null;\n }\n var layerClass = clsx('recharts-polygon', className);\n if (baseLinePoints && baseLinePoints.length) {\n var hasStroke = others.stroke && others.stroke !== 'none';\n var rangePath = getRanglePath(points, baseLinePoints, connectNulls);\n return /*#__PURE__*/React.createElement(\"g\", {\n className: layerClass\n }, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(others, true), {\n fill: rangePath.slice(-1) === 'Z' ? others.fill : 'none',\n stroke: \"none\",\n d: rangePath\n })), hasStroke ? /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(others, true), {\n fill: \"none\",\n d: getSinglePolygonPath(points, connectNulls)\n })) : null, hasStroke ? /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(others, true), {\n fill: \"none\",\n d: getSinglePolygonPath(baseLinePoints, connectNulls)\n })) : null);\n }\n var singlePath = getSinglePolygonPath(points, connectNulls);\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(others, true), {\n fill: singlePath.slice(-1) === 'Z' ? others.fill : 'none',\n className: layerClass,\n d: singlePath\n }));\n};","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/**\n * @fileOverview Dot\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { adaptEventHandlers } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nexport var Dot = function Dot(props) {\n var cx = props.cx,\n cy = props.cy,\n r = props.r,\n className = props.className;\n var layerClass = clsx('recharts-dot', className);\n if (cx === +cx && cy === +cy && r === +r) {\n return /*#__PURE__*/React.createElement(\"circle\", _extends({}, filterProps(props, false), adaptEventHandlers(props), {\n className: layerClass,\n cx: cx,\n cy: cy,\n r: r\n }));\n }\n return null;\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _excluded = [\"x\", \"y\", \"top\", \"left\", \"width\", \"height\", \"className\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/**\n * @fileOverview Cross\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { isNumber } from '../util/DataUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar getPath = function getPath(x, y, width, height, top, left) {\n return \"M\".concat(x, \",\").concat(top, \"v\").concat(height, \"M\").concat(left, \",\").concat(y, \"h\").concat(width);\n};\nexport var Cross = function Cross(_ref) {\n var _ref$x = _ref.x,\n x = _ref$x === void 0 ? 0 : _ref$x,\n _ref$y = _ref.y,\n y = _ref$y === void 0 ? 0 : _ref$y,\n _ref$top = _ref.top,\n top = _ref$top === void 0 ? 0 : _ref$top,\n _ref$left = _ref.left,\n left = _ref$left === void 0 ? 0 : _ref$left,\n _ref$width = _ref.width,\n width = _ref$width === void 0 ? 0 : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? 0 : _ref$height,\n className = _ref.className,\n rest = _objectWithoutProperties(_ref, _excluded);\n var props = _objectSpread({\n x: x,\n y: y,\n top: top,\n left: left,\n width: width,\n height: height\n }, rest);\n if (!isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || !isNumber(top) || !isNumber(left)) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: clsx('recharts-cross', className),\n d: getPath(x, y, width, height, top, left)\n }));\n};","var baseExtremum = require('./_baseExtremum'),\n baseGt = require('./_baseGt'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * This method is like `_.max` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.maxBy(objects, function(o) { return o.n; });\n * // => { 'n': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.maxBy(objects, 'n');\n * // => { 'n': 2 }\n */\nfunction maxBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, baseIteratee(iteratee, 2), baseGt)\n : undefined;\n}\n\nmodule.exports = maxBy;\n","var baseExtremum = require('./_baseExtremum'),\n baseIteratee = require('./_baseIteratee'),\n baseLt = require('./_baseLt');\n\n/**\n * This method is like `_.min` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.minBy(objects, function(o) { return o.n; });\n * // => { 'n': 1 }\n *\n * // The `_.property` iteratee shorthand.\n * _.minBy(objects, 'n');\n * // => { 'n': 1 }\n */\nfunction minBy(array, iteratee) {\n return (array && array.length)\n ? baseExtremum(array, baseIteratee(iteratee, 2), baseLt)\n : undefined;\n}\n\nmodule.exports = minBy;\n","var _excluded = [\"cx\", \"cy\", \"angle\", \"ticks\", \"axisLine\"],\n _excluded2 = [\"ticks\", \"tick\", \"angle\", \"tickFormatter\", \"stroke\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview The axis of polar coordinate system\n */\nimport React, { PureComponent } from 'react';\nimport maxBy from 'lodash/maxBy';\nimport minBy from 'lodash/minBy';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { Text } from '../component/Text';\nimport { Label } from '../component/Label';\nimport { Layer } from '../container/Layer';\nimport { getTickClassName, polarToCartesian } from '../util/PolarUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nexport var PolarRadiusAxis = /*#__PURE__*/function (_PureComponent) {\n _inherits(PolarRadiusAxis, _PureComponent);\n function PolarRadiusAxis() {\n _classCallCheck(this, PolarRadiusAxis);\n return _callSuper(this, PolarRadiusAxis, arguments);\n }\n _createClass(PolarRadiusAxis, [{\n key: \"getTickValueCoord\",\n value:\n /**\n * Calculate the coordinate of tick\n * @param {Number} coordinate The radius of tick\n * @return {Object} (x, y)\n */\n function getTickValueCoord(_ref) {\n var coordinate = _ref.coordinate;\n var _this$props = this.props,\n angle = _this$props.angle,\n cx = _this$props.cx,\n cy = _this$props.cy;\n return polarToCartesian(cx, cy, coordinate, angle);\n }\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor() {\n var orientation = this.props.orientation;\n var textAnchor;\n switch (orientation) {\n case 'left':\n textAnchor = 'end';\n break;\n case 'right':\n textAnchor = 'start';\n break;\n default:\n textAnchor = 'middle';\n break;\n }\n return textAnchor;\n }\n }, {\n key: \"getViewBox\",\n value: function getViewBox() {\n var _this$props2 = this.props,\n cx = _this$props2.cx,\n cy = _this$props2.cy,\n angle = _this$props2.angle,\n ticks = _this$props2.ticks;\n var maxRadiusTick = maxBy(ticks, function (entry) {\n return entry.coordinate || 0;\n });\n var minRadiusTick = minBy(ticks, function (entry) {\n return entry.coordinate || 0;\n });\n return {\n cx: cx,\n cy: cy,\n startAngle: angle,\n endAngle: angle,\n innerRadius: minRadiusTick.coordinate || 0,\n outerRadius: maxRadiusTick.coordinate || 0\n };\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props3 = this.props,\n cx = _this$props3.cx,\n cy = _this$props3.cy,\n angle = _this$props3.angle,\n ticks = _this$props3.ticks,\n axisLine = _this$props3.axisLine,\n others = _objectWithoutProperties(_this$props3, _excluded);\n var extent = ticks.reduce(function (result, entry) {\n return [Math.min(result[0], entry.coordinate), Math.max(result[1], entry.coordinate)];\n }, [Infinity, -Infinity]);\n var point0 = polarToCartesian(cx, cy, extent[0], angle);\n var point1 = polarToCartesian(cx, cy, extent[1], angle);\n var props = _objectSpread(_objectSpread(_objectSpread({}, filterProps(others, false)), {}, {\n fill: 'none'\n }, filterProps(axisLine, false)), {}, {\n x1: point0.x,\n y1: point0.y,\n x2: point1.x,\n y2: point1.y\n });\n return /*#__PURE__*/React.createElement(\"line\", _extends({\n className: \"recharts-polar-radius-axis-line\"\n }, props));\n }\n }, {\n key: \"renderTicks\",\n value: function renderTicks() {\n var _this = this;\n var _this$props4 = this.props,\n ticks = _this$props4.ticks,\n tick = _this$props4.tick,\n angle = _this$props4.angle,\n tickFormatter = _this$props4.tickFormatter,\n stroke = _this$props4.stroke,\n others = _objectWithoutProperties(_this$props4, _excluded2);\n var textAnchor = this.getTickTextAnchor();\n var axisProps = filterProps(others, false);\n var customTickProps = filterProps(tick, false);\n var items = ticks.map(function (entry, i) {\n var coord = _this.getTickValueCoord(entry);\n var tickProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n textAnchor: textAnchor,\n transform: \"rotate(\".concat(90 - angle, \", \").concat(coord.x, \", \").concat(coord.y, \")\")\n }, axisProps), {}, {\n stroke: 'none',\n fill: stroke\n }, customTickProps), {}, {\n index: i\n }, coord), {}, {\n payload: entry\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: clsx('recharts-polar-radius-axis-tick', getTickClassName(tick)),\n key: \"tick-\".concat(entry.coordinate)\n }, adaptEventsOfChild(_this.props, entry, i)), PolarRadiusAxis.renderTickItem(tick, tickProps, tickFormatter ? tickFormatter(entry.value, i) : entry.value));\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-polar-radius-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props5 = this.props,\n ticks = _this$props5.ticks,\n axisLine = _this$props5.axisLine,\n tick = _this$props5.tick;\n if (!ticks || !ticks.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-polar-radius-axis', this.props.className)\n }, axisLine && this.renderAxisLine(), tick && this.renderTicks(), Label.renderCallByParent(this.props, this.getViewBox()));\n }\n }], [{\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n tickItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = /*#__PURE__*/React.createElement(Text, _extends({}, props, {\n className: \"recharts-polar-radius-axis-tick-value\"\n }), value);\n }\n return tickItem;\n }\n }]);\n return PolarRadiusAxis;\n}(PureComponent);\n_defineProperty(PolarRadiusAxis, \"displayName\", 'PolarRadiusAxis');\n_defineProperty(PolarRadiusAxis, \"axisType\", 'radiusAxis');\n_defineProperty(PolarRadiusAxis, \"defaultProps\", {\n type: 'number',\n radiusAxisId: 0,\n cx: 0,\n cy: 0,\n angle: 0,\n orientation: 'right',\n stroke: '#ccc',\n axisLine: true,\n tick: true,\n tickCount: 5,\n allowDataOverflow: false,\n scale: 'auto',\n allowDuplicatedCategory: true\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Axis of radial direction\n */\nimport React, { PureComponent } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Dot } from '../shape/Dot';\nimport { Polygon } from '../shape/Polygon';\nimport { Text } from '../component/Text';\nimport { adaptEventsOfChild } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nimport { getTickClassName, polarToCartesian } from '../util/PolarUtils';\nvar RADIAN = Math.PI / 180;\nvar eps = 1e-5;\nexport var PolarAngleAxis = /*#__PURE__*/function (_PureComponent) {\n _inherits(PolarAngleAxis, _PureComponent);\n function PolarAngleAxis() {\n _classCallCheck(this, PolarAngleAxis);\n return _callSuper(this, PolarAngleAxis, arguments);\n }\n _createClass(PolarAngleAxis, [{\n key: \"getTickLineCoord\",\n value:\n /**\n * Calculate the coordinate of line endpoint\n * @param {Object} data The Data if ticks\n * @return {Object} (x0, y0): The start point of text,\n * (x1, y1): The end point close to text,\n * (x2, y2): The end point close to axis\n */\n function getTickLineCoord(data) {\n var _this$props = this.props,\n cx = _this$props.cx,\n cy = _this$props.cy,\n radius = _this$props.radius,\n orientation = _this$props.orientation,\n tickSize = _this$props.tickSize;\n var tickLineSize = tickSize || 8;\n var p1 = polarToCartesian(cx, cy, radius, data.coordinate);\n var p2 = polarToCartesian(cx, cy, radius + (orientation === 'inner' ? -1 : 1) * tickLineSize, data.coordinate);\n return {\n x1: p1.x,\n y1: p1.y,\n x2: p2.x,\n y2: p2.y\n };\n }\n\n /**\n * Get the text-anchor of each tick\n * @param {Object} data Data of ticks\n * @return {String} text-anchor\n */\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor(data) {\n var orientation = this.props.orientation;\n var cos = Math.cos(-data.coordinate * RADIAN);\n var textAnchor;\n if (cos > eps) {\n textAnchor = orientation === 'outer' ? 'start' : 'end';\n } else if (cos < -eps) {\n textAnchor = orientation === 'outer' ? 'end' : 'start';\n } else {\n textAnchor = 'middle';\n }\n return textAnchor;\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props2 = this.props,\n cx = _this$props2.cx,\n cy = _this$props2.cy,\n radius = _this$props2.radius,\n axisLine = _this$props2.axisLine,\n axisLineType = _this$props2.axisLineType;\n var props = _objectSpread(_objectSpread({}, filterProps(this.props, false)), {}, {\n fill: 'none'\n }, filterProps(axisLine, false));\n if (axisLineType === 'circle') {\n return /*#__PURE__*/React.createElement(Dot, _extends({\n className: \"recharts-polar-angle-axis-line\"\n }, props, {\n cx: cx,\n cy: cy,\n r: radius\n }));\n }\n var ticks = this.props.ticks;\n var points = ticks.map(function (entry) {\n return polarToCartesian(cx, cy, radius, entry.coordinate);\n });\n return /*#__PURE__*/React.createElement(Polygon, _extends({\n className: \"recharts-polar-angle-axis-line\"\n }, props, {\n points: points\n }));\n }\n }, {\n key: \"renderTicks\",\n value: function renderTicks() {\n var _this = this;\n var _this$props3 = this.props,\n ticks = _this$props3.ticks,\n tick = _this$props3.tick,\n tickLine = _this$props3.tickLine,\n tickFormatter = _this$props3.tickFormatter,\n stroke = _this$props3.stroke;\n var axisProps = filterProps(this.props, false);\n var customTickProps = filterProps(tick, false);\n var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {\n fill: 'none'\n }, filterProps(tickLine, false));\n var items = ticks.map(function (entry, i) {\n var lineCoord = _this.getTickLineCoord(entry);\n var textAnchor = _this.getTickTextAnchor(entry);\n var tickProps = _objectSpread(_objectSpread(_objectSpread({\n textAnchor: textAnchor\n }, axisProps), {}, {\n stroke: 'none',\n fill: stroke\n }, customTickProps), {}, {\n index: i,\n payload: entry,\n x: lineCoord.x2,\n y: lineCoord.y2\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: clsx('recharts-polar-angle-axis-tick', getTickClassName(tick)),\n key: \"tick-\".concat(entry.coordinate)\n }, adaptEventsOfChild(_this.props, entry, i)), tickLine && /*#__PURE__*/React.createElement(\"line\", _extends({\n className: \"recharts-polar-angle-axis-tick-line\"\n }, tickLineProps, lineCoord)), tick && PolarAngleAxis.renderTickItem(tick, tickProps, tickFormatter ? tickFormatter(entry.value, i) : entry.value));\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-polar-angle-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n ticks = _this$props4.ticks,\n radius = _this$props4.radius,\n axisLine = _this$props4.axisLine;\n if (radius <= 0 || !ticks || !ticks.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-polar-angle-axis', this.props.className)\n }, axisLine && this.renderAxisLine(), this.renderTicks());\n }\n }], [{\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n tickItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = /*#__PURE__*/React.createElement(Text, _extends({}, props, {\n className: \"recharts-polar-angle-axis-tick-value\"\n }), value);\n }\n return tickItem;\n }\n }]);\n return PolarAngleAxis;\n}(PureComponent);\n_defineProperty(PolarAngleAxis, \"displayName\", 'PolarAngleAxis');\n_defineProperty(PolarAngleAxis, \"axisType\", 'angleAxis');\n_defineProperty(PolarAngleAxis, \"defaultProps\", {\n type: 'category',\n angleAxisId: 0,\n scale: 'auto',\n cx: 0,\n cy: 0,\n orientation: 'outer',\n axisLine: true,\n tickLine: true,\n tickSize: 8,\n tick: true,\n hide: false,\n allowDuplicatedCategory: true\n});","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\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 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","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Rectangle\n */\nimport React, { useEffect, useRef, useState } from 'react';\nimport clsx from 'clsx';\nimport Animate from 'react-smooth';\nimport { filterProps } from '../util/ReactUtils';\nvar getTrapezoidPath = function getTrapezoidPath(x, y, upperWidth, lowerWidth, height) {\n var widthGap = upperWidth - lowerWidth;\n var path;\n path = \"M \".concat(x, \",\").concat(y);\n path += \"L \".concat(x + upperWidth, \",\").concat(y);\n path += \"L \".concat(x + upperWidth - widthGap / 2, \",\").concat(y + height);\n path += \"L \".concat(x + upperWidth - widthGap / 2 - lowerWidth, \",\").concat(y + height);\n path += \"L \".concat(x, \",\").concat(y, \" Z\");\n return path;\n};\nvar defaultProps = {\n x: 0,\n y: 0,\n upperWidth: 0,\n lowerWidth: 0,\n height: 0,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};\nexport var Trapezoid = function Trapezoid(props) {\n var trapezoidProps = _objectSpread(_objectSpread({}, defaultProps), props);\n var pathRef = useRef();\n var _useState = useState(-1),\n _useState2 = _slicedToArray(_useState, 2),\n totalLength = _useState2[0],\n setTotalLength = _useState2[1];\n useEffect(function () {\n if (pathRef.current && pathRef.current.getTotalLength) {\n try {\n var pathTotalLength = pathRef.current.getTotalLength();\n if (pathTotalLength) {\n setTotalLength(pathTotalLength);\n }\n } catch (err) {\n // calculate total length error\n }\n }\n }, []);\n var x = trapezoidProps.x,\n y = trapezoidProps.y,\n upperWidth = trapezoidProps.upperWidth,\n lowerWidth = trapezoidProps.lowerWidth,\n height = trapezoidProps.height,\n className = trapezoidProps.className;\n var animationEasing = trapezoidProps.animationEasing,\n animationDuration = trapezoidProps.animationDuration,\n animationBegin = trapezoidProps.animationBegin,\n isUpdateAnimationActive = trapezoidProps.isUpdateAnimationActive;\n if (x !== +x || y !== +y || upperWidth !== +upperWidth || lowerWidth !== +lowerWidth || height !== +height || upperWidth === 0 && lowerWidth === 0 || height === 0) {\n return null;\n }\n var layerClass = clsx('recharts-trapezoid', className);\n if (!isUpdateAnimationActive) {\n return /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(trapezoidProps, true), {\n className: layerClass,\n d: getTrapezoidPath(x, y, upperWidth, lowerWidth, height)\n })));\n }\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: {\n upperWidth: 0,\n lowerWidth: 0,\n height: height,\n x: x,\n y: y\n },\n to: {\n upperWidth: upperWidth,\n lowerWidth: lowerWidth,\n height: height,\n x: x,\n y: y\n },\n duration: animationDuration,\n animationEasing: animationEasing,\n isActive: isUpdateAnimationActive\n }, function (_ref) {\n var currUpperWidth = _ref.upperWidth,\n currLowerWidth = _ref.lowerWidth,\n currHeight = _ref.height,\n currX = _ref.x,\n currY = _ref.y;\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\"),\n to: \"\".concat(totalLength, \"px 0px\"),\n attributeName: \"strokeDasharray\",\n begin: animationBegin,\n duration: animationDuration,\n easing: animationEasing\n }, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(trapezoidProps, true), {\n className: layerClass,\n d: getTrapezoidPath(currX, currY, currUpperWidth, currLowerWidth, currHeight),\n ref: pathRef\n })));\n });\n};","var _excluded = [\"option\", \"shapeType\", \"propTransformer\", \"activeClassName\", \"isActive\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React, { isValidElement, cloneElement } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport isPlainObject from 'lodash/isPlainObject';\nimport isBoolean from 'lodash/isBoolean';\nimport isEqual from 'lodash/isEqual';\nimport { Rectangle } from '../shape/Rectangle';\nimport { Trapezoid } from '../shape/Trapezoid';\nimport { Sector } from '../shape/Sector';\nimport { Layer } from '../container/Layer';\nimport { Symbols } from '../shape/Symbols';\n\n/**\n * This is an abstraction for rendering a user defined prop for a customized shape in several forms.\n *\n * is the root and will handle taking in:\n * - an object of svg properties\n * - a boolean\n * - a render prop(inline function that returns jsx)\n * - a react element\n *\n * is a subcomponent of and used to match a component\n * to the value of props.shapeType that is passed to the root.\n *\n */\n\nfunction defaultPropTransformer(option, props) {\n return _objectSpread(_objectSpread({}, props), option);\n}\nfunction isSymbolsProps(shapeType, _elementProps) {\n return shapeType === 'symbols';\n}\nfunction ShapeSelector(_ref) {\n var shapeType = _ref.shapeType,\n elementProps = _ref.elementProps;\n switch (shapeType) {\n case 'rectangle':\n return /*#__PURE__*/React.createElement(Rectangle, elementProps);\n case 'trapezoid':\n return /*#__PURE__*/React.createElement(Trapezoid, elementProps);\n case 'sector':\n return /*#__PURE__*/React.createElement(Sector, elementProps);\n case 'symbols':\n if (isSymbolsProps(shapeType, elementProps)) {\n return /*#__PURE__*/React.createElement(Symbols, elementProps);\n }\n break;\n default:\n return null;\n }\n}\nexport function getPropsFromShapeOption(option) {\n if ( /*#__PURE__*/isValidElement(option)) {\n return option.props;\n }\n return option;\n}\nexport function Shape(_ref2) {\n var option = _ref2.option,\n shapeType = _ref2.shapeType,\n _ref2$propTransformer = _ref2.propTransformer,\n propTransformer = _ref2$propTransformer === void 0 ? defaultPropTransformer : _ref2$propTransformer,\n _ref2$activeClassName = _ref2.activeClassName,\n activeClassName = _ref2$activeClassName === void 0 ? 'recharts-active-shape' : _ref2$activeClassName,\n isActive = _ref2.isActive,\n props = _objectWithoutProperties(_ref2, _excluded);\n var shape;\n if ( /*#__PURE__*/isValidElement(option)) {\n shape = /*#__PURE__*/cloneElement(option, _objectSpread(_objectSpread({}, props), getPropsFromShapeOption(option)));\n } else if (isFunction(option)) {\n shape = option(props);\n } else if (isPlainObject(option) && !isBoolean(option)) {\n var nextProps = propTransformer(option, props);\n shape = /*#__PURE__*/React.createElement(ShapeSelector, {\n shapeType: shapeType,\n elementProps: nextProps\n });\n } else {\n var elementProps = props;\n shape = /*#__PURE__*/React.createElement(ShapeSelector, {\n shapeType: shapeType,\n elementProps: elementProps\n });\n }\n if (isActive) {\n return /*#__PURE__*/React.createElement(Layer, {\n className: activeClassName\n }, shape);\n }\n return shape;\n}\n\n/**\n * This is an abstraction to handle identifying the active index from a tooltip mouse interaction\n */\n\nexport function isFunnel(graphicalItem, _item) {\n return _item != null && 'trapezoids' in graphicalItem.props;\n}\nexport function isPie(graphicalItem, _item) {\n return _item != null && 'sectors' in graphicalItem.props;\n}\nexport function isScatter(graphicalItem, _item) {\n return _item != null && 'points' in graphicalItem.props;\n}\nexport function compareFunnel(shapeData, activeTooltipItem) {\n var _activeTooltipItem$la, _activeTooltipItem$la2;\n var xMatches = shapeData.x === (activeTooltipItem === null || activeTooltipItem === void 0 || (_activeTooltipItem$la = activeTooltipItem.labelViewBox) === null || _activeTooltipItem$la === void 0 ? void 0 : _activeTooltipItem$la.x) || shapeData.x === activeTooltipItem.x;\n var yMatches = shapeData.y === (activeTooltipItem === null || activeTooltipItem === void 0 || (_activeTooltipItem$la2 = activeTooltipItem.labelViewBox) === null || _activeTooltipItem$la2 === void 0 ? void 0 : _activeTooltipItem$la2.y) || shapeData.y === activeTooltipItem.y;\n return xMatches && yMatches;\n}\nexport function comparePie(shapeData, activeTooltipItem) {\n var startAngleMatches = shapeData.endAngle === activeTooltipItem.endAngle;\n var endAngleMatches = shapeData.startAngle === activeTooltipItem.startAngle;\n return startAngleMatches && endAngleMatches;\n}\nexport function compareScatter(shapeData, activeTooltipItem) {\n var xMatches = shapeData.x === activeTooltipItem.x;\n var yMatches = shapeData.y === activeTooltipItem.y;\n var zMatches = shapeData.z === activeTooltipItem.z;\n return xMatches && yMatches && zMatches;\n}\nfunction getComparisonFn(graphicalItem, activeItem) {\n var comparison;\n if (isFunnel(graphicalItem, activeItem)) {\n comparison = compareFunnel;\n } else if (isPie(graphicalItem, activeItem)) {\n comparison = comparePie;\n } else if (isScatter(graphicalItem, activeItem)) {\n comparison = compareScatter;\n }\n return comparison;\n}\nfunction getShapeDataKey(graphicalItem, activeItem) {\n var shapeKey;\n if (isFunnel(graphicalItem, activeItem)) {\n shapeKey = 'trapezoids';\n } else if (isPie(graphicalItem, activeItem)) {\n shapeKey = 'sectors';\n } else if (isScatter(graphicalItem, activeItem)) {\n shapeKey = 'points';\n }\n return shapeKey;\n}\nfunction getActiveShapeTooltipPayload(graphicalItem, activeItem) {\n if (isFunnel(graphicalItem, activeItem)) {\n var _activeItem$tooltipPa;\n return (_activeItem$tooltipPa = activeItem.tooltipPayload) === null || _activeItem$tooltipPa === void 0 || (_activeItem$tooltipPa = _activeItem$tooltipPa[0]) === null || _activeItem$tooltipPa === void 0 || (_activeItem$tooltipPa = _activeItem$tooltipPa.payload) === null || _activeItem$tooltipPa === void 0 ? void 0 : _activeItem$tooltipPa.payload;\n }\n if (isPie(graphicalItem, activeItem)) {\n var _activeItem$tooltipPa2;\n return (_activeItem$tooltipPa2 = activeItem.tooltipPayload) === null || _activeItem$tooltipPa2 === void 0 || (_activeItem$tooltipPa2 = _activeItem$tooltipPa2[0]) === null || _activeItem$tooltipPa2 === void 0 || (_activeItem$tooltipPa2 = _activeItem$tooltipPa2.payload) === null || _activeItem$tooltipPa2 === void 0 ? void 0 : _activeItem$tooltipPa2.payload;\n }\n if (isScatter(graphicalItem, activeItem)) {\n return activeItem.payload;\n }\n return {};\n}\n/**\n *\n * @param {GetActiveShapeIndexForTooltip} arg an object of incoming attributes from Tooltip\n * @returns {number}\n *\n * To handle possible duplicates in the data set,\n * match both the data value of the active item to a data value on a graph item,\n * and match the mouse coordinates of the active item to the coordinates of in a particular components shape data.\n * This assumes equal lengths of shape objects to data items.\n */\nexport function getActiveShapeIndexForTooltip(_ref3) {\n var activeTooltipItem = _ref3.activeTooltipItem,\n graphicalItem = _ref3.graphicalItem,\n itemData = _ref3.itemData;\n var shapeKey = getShapeDataKey(graphicalItem, activeTooltipItem);\n var tooltipPayload = getActiveShapeTooltipPayload(graphicalItem, activeTooltipItem);\n var activeItemMatches = itemData.filter(function (datum, dataIndex) {\n var valuesMatch = isEqual(tooltipPayload, datum);\n var mouseCoordinateMatches = graphicalItem.props[shapeKey].filter(function (shapeData) {\n var comparison = getComparisonFn(graphicalItem, activeTooltipItem);\n return comparison(shapeData, activeTooltipItem);\n });\n\n // get the last index in case of multiple matches\n var indexOfMouseCoordinates = graphicalItem.props[shapeKey].indexOf(mouseCoordinateMatches[mouseCoordinateMatches.length - 1]);\n var coordinatesMatch = dataIndex === indexOfMouseCoordinates;\n return valuesMatch && coordinatesMatch;\n });\n\n // get the last index in case of multiple matches\n var activeIndex = itemData.indexOf(activeItemMatches[activeItemMatches.length - 1]);\n return activeIndex;\n}","var _Pie;\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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Render sectors of a pie\n */\nimport React, { PureComponent } from 'react';\nimport Animate from 'react-smooth';\nimport get from 'lodash/get';\nimport isEqual from 'lodash/isEqual';\nimport isNil from 'lodash/isNil';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Curve } from '../shape/Curve';\nimport { Text } from '../component/Text';\nimport { Label } from '../component/Label';\nimport { LabelList } from '../component/LabelList';\nimport { Cell } from '../component/Cell';\nimport { findAllByType, filterProps } from '../util/ReactUtils';\nimport { Global } from '../util/Global';\nimport { polarToCartesian, getMaxRadius } from '../util/PolarUtils';\nimport { isNumber, getPercentValue, mathSign, interpolateNumber, uniqueId } from '../util/DataUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { warn } from '../util/LogUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { Shape } from '../util/ActiveShapeUtils';\nexport var Pie = /*#__PURE__*/function (_PureComponent) {\n _inherits(Pie, _PureComponent);\n function Pie(props) {\n var _this;\n _classCallCheck(this, Pie);\n _this = _callSuper(this, Pie, [props]);\n _defineProperty(_assertThisInitialized(_this), \"pieRef\", null);\n _defineProperty(_assertThisInitialized(_this), \"sectorRefs\", []);\n _defineProperty(_assertThisInitialized(_this), \"id\", uniqueId('recharts-pie-'));\n _defineProperty(_assertThisInitialized(_this), \"handleAnimationEnd\", function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n _this.setState({\n isAnimationFinished: true\n });\n if (isFunction(onAnimationEnd)) {\n onAnimationEnd();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleAnimationStart\", function () {\n var onAnimationStart = _this.props.onAnimationStart;\n _this.setState({\n isAnimationFinished: false\n });\n if (isFunction(onAnimationStart)) {\n onAnimationStart();\n }\n });\n _this.state = {\n isAnimationFinished: !props.isAnimationActive,\n prevIsAnimationActive: props.isAnimationActive,\n prevAnimationId: props.animationId,\n sectorToFocus: 0\n };\n return _this;\n }\n _createClass(Pie, [{\n key: \"isActiveIndex\",\n value: function isActiveIndex(i) {\n var activeIndex = this.props.activeIndex;\n if (Array.isArray(activeIndex)) {\n return activeIndex.indexOf(i) !== -1;\n }\n return i === activeIndex;\n }\n }, {\n key: \"hasActiveIndex\",\n value: function hasActiveIndex() {\n var activeIndex = this.props.activeIndex;\n return Array.isArray(activeIndex) ? activeIndex.length !== 0 : activeIndex || activeIndex === 0;\n }\n }, {\n key: \"renderLabels\",\n value: function renderLabels(sectors) {\n var isAnimationActive = this.props.isAnimationActive;\n if (isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n var _this$props = this.props,\n label = _this$props.label,\n labelLine = _this$props.labelLine,\n dataKey = _this$props.dataKey,\n valueKey = _this$props.valueKey;\n var pieProps = filterProps(this.props, false);\n var customLabelProps = filterProps(label, false);\n var customLabelLineProps = filterProps(labelLine, false);\n var offsetRadius = label && label.offsetRadius || 20;\n var labels = sectors.map(function (entry, i) {\n var midAngle = (entry.startAngle + entry.endAngle) / 2;\n var endPoint = polarToCartesian(entry.cx, entry.cy, entry.outerRadius + offsetRadius, midAngle);\n var labelProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, pieProps), entry), {}, {\n stroke: 'none'\n }, customLabelProps), {}, {\n index: i,\n textAnchor: Pie.getTextAnchor(endPoint.x, entry.cx)\n }, endPoint);\n var lineProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, pieProps), entry), {}, {\n fill: 'none',\n stroke: entry.fill\n }, customLabelLineProps), {}, {\n index: i,\n points: [polarToCartesian(entry.cx, entry.cy, entry.outerRadius, midAngle), endPoint],\n key: 'line'\n });\n var realDataKey = dataKey;\n // TODO: compatible to lower versions\n if (isNil(dataKey) && isNil(valueKey)) {\n realDataKey = 'value';\n } else if (isNil(dataKey)) {\n realDataKey = valueKey;\n }\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(Layer, {\n key: \"label-\".concat(entry.startAngle, \"-\").concat(entry.endAngle, \"-\").concat(entry.midAngle, \"-\").concat(i)\n }, labelLine && Pie.renderLabelLineItem(labelLine, lineProps), Pie.renderLabelItem(label, labelProps, getValueByDataKey(entry, realDataKey)))\n );\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-pie-labels\"\n }, labels);\n }\n }, {\n key: \"renderSectorsStatically\",\n value: function renderSectorsStatically(sectors) {\n var _this2 = this;\n var _this$props2 = this.props,\n activeShape = _this$props2.activeShape,\n blendStroke = _this$props2.blendStroke,\n inactiveShapeProp = _this$props2.inactiveShape;\n return sectors.map(function (entry, i) {\n if ((entry === null || entry === void 0 ? void 0 : entry.startAngle) === 0 && (entry === null || entry === void 0 ? void 0 : entry.endAngle) === 0 && sectors.length !== 1) return null;\n var isActive = _this2.isActiveIndex(i);\n var inactiveShape = inactiveShapeProp && _this2.hasActiveIndex() ? inactiveShapeProp : null;\n var sectorOptions = isActive ? activeShape : inactiveShape;\n var sectorProps = _objectSpread(_objectSpread({}, entry), {}, {\n stroke: blendStroke ? entry.fill : entry.stroke,\n tabIndex: -1\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n ref: function ref(_ref) {\n if (_ref && !_this2.sectorRefs.includes(_ref)) {\n _this2.sectorRefs.push(_ref);\n }\n },\n tabIndex: -1,\n className: \"recharts-pie-sector\"\n }, adaptEventsOfChild(_this2.props, entry, i), {\n // eslint-disable-next-line react/no-array-index-key\n key: \"sector-\".concat(entry === null || entry === void 0 ? void 0 : entry.startAngle, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.endAngle, \"-\").concat(entry.midAngle, \"-\").concat(i)\n }), /*#__PURE__*/React.createElement(Shape, _extends({\n option: sectorOptions,\n isActive: isActive,\n shapeType: \"sector\"\n }, sectorProps)));\n });\n }\n }, {\n key: \"renderSectorsWithAnimation\",\n value: function renderSectorsWithAnimation() {\n var _this3 = this;\n var _this$props3 = this.props,\n sectors = _this$props3.sectors,\n isAnimationActive = _this$props3.isAnimationActive,\n animationBegin = _this$props3.animationBegin,\n animationDuration = _this$props3.animationDuration,\n animationEasing = _this$props3.animationEasing,\n animationId = _this$props3.animationId;\n var _this$state = this.state,\n prevSectors = _this$state.prevSectors,\n prevIsAnimationActive = _this$state.prevIsAnimationActive;\n return /*#__PURE__*/React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"pie-\".concat(animationId, \"-\").concat(prevIsAnimationActive),\n onAnimationStart: this.handleAnimationStart,\n onAnimationEnd: this.handleAnimationEnd\n }, function (_ref2) {\n var t = _ref2.t;\n var stepData = [];\n var first = sectors && sectors[0];\n var curAngle = first.startAngle;\n sectors.forEach(function (entry, index) {\n var prev = prevSectors && prevSectors[index];\n var paddingAngle = index > 0 ? get(entry, 'paddingAngle', 0) : 0;\n if (prev) {\n var angleIp = interpolateNumber(prev.endAngle - prev.startAngle, entry.endAngle - entry.startAngle);\n var latest = _objectSpread(_objectSpread({}, entry), {}, {\n startAngle: curAngle + paddingAngle,\n endAngle: curAngle + angleIp(t) + paddingAngle\n });\n stepData.push(latest);\n curAngle = latest.endAngle;\n } else {\n var endAngle = entry.endAngle,\n startAngle = entry.startAngle;\n var interpolatorAngle = interpolateNumber(0, endAngle - startAngle);\n var deltaAngle = interpolatorAngle(t);\n var _latest = _objectSpread(_objectSpread({}, entry), {}, {\n startAngle: curAngle + paddingAngle,\n endAngle: curAngle + deltaAngle + paddingAngle\n });\n stepData.push(_latest);\n curAngle = _latest.endAngle;\n }\n });\n return /*#__PURE__*/React.createElement(Layer, null, _this3.renderSectorsStatically(stepData));\n });\n }\n }, {\n key: \"attachKeyboardHandlers\",\n value: function attachKeyboardHandlers(pieRef) {\n var _this4 = this;\n // eslint-disable-next-line no-param-reassign\n pieRef.onkeydown = function (e) {\n if (!e.altKey) {\n switch (e.key) {\n case 'ArrowLeft':\n {\n var next = ++_this4.state.sectorToFocus % _this4.sectorRefs.length;\n _this4.sectorRefs[next].focus();\n _this4.setState({\n sectorToFocus: next\n });\n break;\n }\n case 'ArrowRight':\n {\n var _next = --_this4.state.sectorToFocus < 0 ? _this4.sectorRefs.length - 1 : _this4.state.sectorToFocus % _this4.sectorRefs.length;\n _this4.sectorRefs[_next].focus();\n _this4.setState({\n sectorToFocus: _next\n });\n break;\n }\n case 'Escape':\n {\n _this4.sectorRefs[_this4.state.sectorToFocus].blur();\n _this4.setState({\n sectorToFocus: 0\n });\n break;\n }\n default:\n {\n // There is nothing to do here\n }\n }\n }\n };\n }\n }, {\n key: \"renderSectors\",\n value: function renderSectors() {\n var _this$props4 = this.props,\n sectors = _this$props4.sectors,\n isAnimationActive = _this$props4.isAnimationActive;\n var prevSectors = this.state.prevSectors;\n if (isAnimationActive && sectors && sectors.length && (!prevSectors || !isEqual(prevSectors, sectors))) {\n return this.renderSectorsWithAnimation();\n }\n return this.renderSectorsStatically(sectors);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.pieRef) {\n this.attachKeyboardHandlers(this.pieRef);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this5 = this;\n var _this$props5 = this.props,\n hide = _this$props5.hide,\n sectors = _this$props5.sectors,\n className = _this$props5.className,\n label = _this$props5.label,\n cx = _this$props5.cx,\n cy = _this$props5.cy,\n innerRadius = _this$props5.innerRadius,\n outerRadius = _this$props5.outerRadius,\n isAnimationActive = _this$props5.isAnimationActive;\n var isAnimationFinished = this.state.isAnimationFinished;\n if (hide || !sectors || !sectors.length || !isNumber(cx) || !isNumber(cy) || !isNumber(innerRadius) || !isNumber(outerRadius)) {\n return null;\n }\n var layerClass = clsx('recharts-pie', className);\n return /*#__PURE__*/React.createElement(Layer, {\n tabIndex: this.props.rootTabIndex,\n className: layerClass,\n ref: function ref(_ref3) {\n _this5.pieRef = _ref3;\n }\n }, this.renderSectors(), label && this.renderLabels(sectors), Label.renderCallByParent(this.props, null, false), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, sectors, false));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (prevState.prevIsAnimationActive !== nextProps.isAnimationActive) {\n return {\n prevIsAnimationActive: nextProps.isAnimationActive,\n prevAnimationId: nextProps.animationId,\n curSectors: nextProps.sectors,\n prevSectors: [],\n isAnimationFinished: true\n };\n }\n if (nextProps.isAnimationActive && nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curSectors: nextProps.sectors,\n prevSectors: prevState.curSectors,\n isAnimationFinished: true\n };\n }\n if (nextProps.sectors !== prevState.curSectors) {\n return {\n curSectors: nextProps.sectors,\n isAnimationFinished: true\n };\n }\n return null;\n }\n }, {\n key: \"getTextAnchor\",\n value: function getTextAnchor(x, cx) {\n if (x > cx) {\n return 'start';\n }\n if (x < cx) {\n return 'end';\n }\n return 'middle';\n }\n }, {\n key: \"renderLabelLineItem\",\n value: function renderLabelLineItem(option, props) {\n if ( /*#__PURE__*/React.isValidElement(option)) {\n return /*#__PURE__*/React.cloneElement(option, props);\n }\n if (isFunction(option)) {\n return option(props);\n }\n var className = clsx('recharts-pie-label-line', typeof option !== 'boolean' ? option.className : '');\n return /*#__PURE__*/React.createElement(Curve, _extends({}, props, {\n type: \"linear\",\n className: className\n }));\n }\n }, {\n key: \"renderLabelItem\",\n value: function renderLabelItem(option, props, value) {\n if ( /*#__PURE__*/React.isValidElement(option)) {\n return /*#__PURE__*/React.cloneElement(option, props);\n }\n var label = value;\n if (isFunction(option)) {\n label = option(props);\n if ( /*#__PURE__*/React.isValidElement(label)) {\n return label;\n }\n }\n var className = clsx('recharts-pie-label-text', typeof option !== 'boolean' && !isFunction(option) ? option.className : '');\n return /*#__PURE__*/React.createElement(Text, _extends({}, props, {\n alignmentBaseline: \"middle\",\n className: className\n }), label);\n }\n }]);\n return Pie;\n}(PureComponent);\n_Pie = Pie;\n_defineProperty(Pie, \"displayName\", 'Pie');\n_defineProperty(Pie, \"defaultProps\", {\n stroke: '#fff',\n fill: '#808080',\n legendType: 'rect',\n cx: '50%',\n cy: '50%',\n startAngle: 0,\n endAngle: 360,\n innerRadius: 0,\n outerRadius: '80%',\n paddingAngle: 0,\n labelLine: true,\n hide: false,\n minAngle: 0,\n isAnimationActive: !Global.isSsr,\n animationBegin: 400,\n animationDuration: 1500,\n animationEasing: 'ease',\n nameKey: 'name',\n blendStroke: false,\n rootTabIndex: 0\n});\n_defineProperty(Pie, \"parseDeltaAngle\", function (startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n});\n_defineProperty(Pie, \"getRealPieData\", function (item) {\n var _item$props = item.props,\n data = _item$props.data,\n children = _item$props.children;\n var presentationProps = filterProps(item.props, false);\n var cells = findAllByType(children, Cell);\n if (data && data.length) {\n return data.map(function (entry, index) {\n return _objectSpread(_objectSpread(_objectSpread({\n payload: entry\n }, presentationProps), entry), cells && cells[index] && cells[index].props);\n });\n }\n if (cells && cells.length) {\n return cells.map(function (cell) {\n return _objectSpread(_objectSpread({}, presentationProps), cell.props);\n });\n }\n return [];\n});\n_defineProperty(Pie, \"parseCoordinateOfPie\", function (item, offset) {\n var top = offset.top,\n left = offset.left,\n width = offset.width,\n height = offset.height;\n var maxPieRadius = getMaxRadius(width, height);\n var cx = left + getPercentValue(item.props.cx, width, width / 2);\n var cy = top + getPercentValue(item.props.cy, height, height / 2);\n var innerRadius = getPercentValue(item.props.innerRadius, maxPieRadius, 0);\n var outerRadius = getPercentValue(item.props.outerRadius, maxPieRadius, maxPieRadius * 0.8);\n var maxRadius = item.props.maxRadius || Math.sqrt(width * width + height * height) / 2;\n return {\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n maxRadius: maxRadius\n };\n});\n_defineProperty(Pie, \"getComposedData\", function (_ref4) {\n var item = _ref4.item,\n offset = _ref4.offset;\n var pieData = _Pie.getRealPieData(item);\n if (!pieData || !pieData.length) {\n return null;\n }\n var _item$props2 = item.props,\n cornerRadius = _item$props2.cornerRadius,\n startAngle = _item$props2.startAngle,\n endAngle = _item$props2.endAngle,\n paddingAngle = _item$props2.paddingAngle,\n dataKey = _item$props2.dataKey,\n nameKey = _item$props2.nameKey,\n valueKey = _item$props2.valueKey,\n tooltipType = _item$props2.tooltipType;\n var minAngle = Math.abs(item.props.minAngle);\n var coordinate = _Pie.parseCoordinateOfPie(item, offset);\n var deltaAngle = _Pie.parseDeltaAngle(startAngle, endAngle);\n var absDeltaAngle = Math.abs(deltaAngle);\n var realDataKey = dataKey;\n if (isNil(dataKey) && isNil(valueKey)) {\n warn(false, \"Use \\\"dataKey\\\" to specify the value of pie,\\n the props \\\"valueKey\\\" will be deprecated in 1.1.0\");\n realDataKey = 'value';\n } else if (isNil(dataKey)) {\n warn(false, \"Use \\\"dataKey\\\" to specify the value of pie,\\n the props \\\"valueKey\\\" will be deprecated in 1.1.0\");\n realDataKey = valueKey;\n }\n var notZeroItemCount = pieData.filter(function (entry) {\n return getValueByDataKey(entry, realDataKey, 0) !== 0;\n }).length;\n var totalPadingAngle = (absDeltaAngle >= 360 ? notZeroItemCount : notZeroItemCount - 1) * paddingAngle;\n var realTotalAngle = absDeltaAngle - notZeroItemCount * minAngle - totalPadingAngle;\n var sum = pieData.reduce(function (result, entry) {\n var val = getValueByDataKey(entry, realDataKey, 0);\n return result + (isNumber(val) ? val : 0);\n }, 0);\n var sectors;\n if (sum > 0) {\n var prev;\n sectors = pieData.map(function (entry, i) {\n var val = getValueByDataKey(entry, realDataKey, 0);\n var name = getValueByDataKey(entry, nameKey, i);\n var percent = (isNumber(val) ? val : 0) / sum;\n var tempStartAngle;\n if (i) {\n tempStartAngle = prev.endAngle + mathSign(deltaAngle) * paddingAngle * (val !== 0 ? 1 : 0);\n } else {\n tempStartAngle = startAngle;\n }\n var tempEndAngle = tempStartAngle + mathSign(deltaAngle) * ((val !== 0 ? minAngle : 0) + percent * realTotalAngle);\n var midAngle = (tempStartAngle + tempEndAngle) / 2;\n var middleRadius = (coordinate.innerRadius + coordinate.outerRadius) / 2;\n var tooltipPayload = [{\n name: name,\n value: val,\n payload: entry,\n dataKey: realDataKey,\n type: tooltipType\n }];\n var tooltipPosition = polarToCartesian(coordinate.cx, coordinate.cy, middleRadius, midAngle);\n prev = _objectSpread(_objectSpread(_objectSpread({\n percent: percent,\n cornerRadius: cornerRadius,\n name: name,\n tooltipPayload: tooltipPayload,\n midAngle: midAngle,\n middleRadius: middleRadius,\n tooltipPosition: tooltipPosition\n }, entry), coordinate), {}, {\n value: getValueByDataKey(entry, realDataKey),\n startAngle: tempStartAngle,\n endAngle: tempEndAngle,\n payload: entry,\n paddingAngle: mathSign(deltaAngle) * paddingAngle\n });\n return prev;\n });\n }\n return _objectSpread(_objectSpread({}, coordinate), {}, {\n sectors: sectors,\n data: pieData\n });\n});","/* 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 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 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 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","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (!name) {\n return null;\n }\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var result = PREFIX_LIST.reduce(function (res, entry) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, entry + camelName, value));\n }, {});\n result[name] = value;\n return result;\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Brush\n */\nimport React, { PureComponent, Children } from 'react';\nimport clsx from 'clsx';\nimport { scalePoint } from 'victory-vendor/d3-scale';\nimport isFunction from 'lodash/isFunction';\nimport range from 'lodash/range';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { isNumber } from '../util/DataUtils';\nimport { generatePrefixStyle } from '../util/CssPrefixUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar createScale = function createScale(_ref) {\n var data = _ref.data,\n startIndex = _ref.startIndex,\n endIndex = _ref.endIndex,\n x = _ref.x,\n width = _ref.width,\n travellerWidth = _ref.travellerWidth;\n if (!data || !data.length) {\n return {};\n }\n var len = data.length;\n var scale = scalePoint().domain(range(0, len)).range([x, x + width - travellerWidth]);\n var scaleValues = scale.domain().map(function (entry) {\n return scale(entry);\n });\n return {\n isTextActive: false,\n isSlideMoving: false,\n isTravellerMoving: false,\n isTravellerFocused: false,\n startX: scale(startIndex),\n endX: scale(endIndex),\n scale: scale,\n scaleValues: scaleValues\n };\n};\nvar isTouch = function isTouch(e) {\n return e.changedTouches && !!e.changedTouches.length;\n};\nexport var Brush = /*#__PURE__*/function (_PureComponent) {\n _inherits(Brush, _PureComponent);\n function Brush(props) {\n var _this;\n _classCallCheck(this, Brush);\n _this = _callSuper(this, Brush, [props]);\n _defineProperty(_assertThisInitialized(_this), \"handleDrag\", function (e) {\n if (_this.leaveTimer) {\n clearTimeout(_this.leaveTimer);\n _this.leaveTimer = null;\n }\n if (_this.state.isTravellerMoving) {\n _this.handleTravellerMove(e);\n } else if (_this.state.isSlideMoving) {\n _this.handleSlideDrag(e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleTouchMove\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleDrag(e.changedTouches[0]);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleDragEnd\", function () {\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: false\n }, function () {\n var _this$props = _this.props,\n endIndex = _this$props.endIndex,\n onDragEnd = _this$props.onDragEnd,\n startIndex = _this$props.startIndex;\n onDragEnd === null || onDragEnd === void 0 || onDragEnd({\n endIndex: endIndex,\n startIndex: startIndex\n });\n });\n _this.detachDragEndListener();\n });\n _defineProperty(_assertThisInitialized(_this), \"handleLeaveWrapper\", function () {\n if (_this.state.isTravellerMoving || _this.state.isSlideMoving) {\n _this.leaveTimer = window.setTimeout(_this.handleDragEnd, _this.props.leaveTimeOut);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleEnterSlideOrTraveller\", function () {\n _this.setState({\n isTextActive: true\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"handleLeaveSlideOrTraveller\", function () {\n _this.setState({\n isTextActive: false\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"handleSlideDragStart\", function (e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: true,\n slideMoveStartX: event.pageX\n });\n _this.attachDragEndListener();\n });\n _this.travellerDragStartHandlers = {\n startX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'startX'),\n endX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'endX')\n };\n _this.state = {};\n return _this;\n }\n _createClass(Brush, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.leaveTimer) {\n clearTimeout(this.leaveTimer);\n this.leaveTimer = null;\n }\n this.detachDragEndListener();\n }\n }, {\n key: \"getIndex\",\n value: function getIndex(_ref2) {\n var startX = _ref2.startX,\n endX = _ref2.endX;\n var scaleValues = this.state.scaleValues;\n var _this$props2 = this.props,\n gap = _this$props2.gap,\n data = _this$props2.data;\n var lastIndex = data.length - 1;\n var min = Math.min(startX, endX);\n var max = Math.max(startX, endX);\n var minIndex = Brush.getIndexInRange(scaleValues, min);\n var maxIndex = Brush.getIndexInRange(scaleValues, max);\n return {\n startIndex: minIndex - minIndex % gap,\n endIndex: maxIndex === lastIndex ? lastIndex : maxIndex - maxIndex % gap\n };\n }\n }, {\n key: \"getTextOfTick\",\n value: function getTextOfTick(index) {\n var _this$props3 = this.props,\n data = _this$props3.data,\n tickFormatter = _this$props3.tickFormatter,\n dataKey = _this$props3.dataKey;\n var text = getValueByDataKey(data[index], dataKey, index);\n return isFunction(tickFormatter) ? tickFormatter(text, index) : text;\n }\n }, {\n key: \"attachDragEndListener\",\n value: function attachDragEndListener() {\n window.addEventListener('mouseup', this.handleDragEnd, true);\n window.addEventListener('touchend', this.handleDragEnd, true);\n window.addEventListener('mousemove', this.handleDrag, true);\n }\n }, {\n key: \"detachDragEndListener\",\n value: function detachDragEndListener() {\n window.removeEventListener('mouseup', this.handleDragEnd, true);\n window.removeEventListener('touchend', this.handleDragEnd, true);\n window.removeEventListener('mousemove', this.handleDrag, true);\n }\n }, {\n key: \"handleSlideDrag\",\n value: function handleSlideDrag(e) {\n var _this$state = this.state,\n slideMoveStartX = _this$state.slideMoveStartX,\n startX = _this$state.startX,\n endX = _this$state.endX;\n var _this$props4 = this.props,\n x = _this$props4.x,\n width = _this$props4.width,\n travellerWidth = _this$props4.travellerWidth,\n startIndex = _this$props4.startIndex,\n endIndex = _this$props4.endIndex,\n onChange = _this$props4.onChange;\n var delta = e.pageX - slideMoveStartX;\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - endX, x + width - travellerWidth - startX);\n } else if (delta < 0) {\n delta = Math.max(delta, x - startX, x - endX);\n }\n var newIndex = this.getIndex({\n startX: startX + delta,\n endX: endX + delta\n });\n if ((newIndex.startIndex !== startIndex || newIndex.endIndex !== endIndex) && onChange) {\n onChange(newIndex);\n }\n this.setState({\n startX: startX + delta,\n endX: endX + delta,\n slideMoveStartX: e.pageX\n });\n }\n }, {\n key: \"handleTravellerDragStart\",\n value: function handleTravellerDragStart(id, e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n this.setState({\n isSlideMoving: false,\n isTravellerMoving: true,\n movingTravellerId: id,\n brushMoveStartX: event.pageX\n });\n this.attachDragEndListener();\n }\n }, {\n key: \"handleTravellerMove\",\n value: function handleTravellerMove(e) {\n var _this$state2 = this.state,\n brushMoveStartX = _this$state2.brushMoveStartX,\n movingTravellerId = _this$state2.movingTravellerId,\n endX = _this$state2.endX,\n startX = _this$state2.startX;\n var prevValue = this.state[movingTravellerId];\n var _this$props5 = this.props,\n x = _this$props5.x,\n width = _this$props5.width,\n travellerWidth = _this$props5.travellerWidth,\n onChange = _this$props5.onChange,\n gap = _this$props5.gap,\n data = _this$props5.data;\n var params = {\n startX: this.state.startX,\n endX: this.state.endX\n };\n var delta = e.pageX - brushMoveStartX;\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - prevValue);\n } else if (delta < 0) {\n delta = Math.max(delta, x - prevValue);\n }\n params[movingTravellerId] = prevValue + delta;\n var newIndex = this.getIndex(params);\n var startIndex = newIndex.startIndex,\n endIndex = newIndex.endIndex;\n var isFullGap = function isFullGap() {\n var lastIndex = data.length - 1;\n if (movingTravellerId === 'startX' && (endX > startX ? startIndex % gap === 0 : endIndex % gap === 0) || endX < startX && endIndex === lastIndex || movingTravellerId === 'endX' && (endX > startX ? endIndex % gap === 0 : startIndex % gap === 0) || endX > startX && endIndex === lastIndex) {\n return true;\n }\n return false;\n };\n this.setState(_defineProperty(_defineProperty({}, movingTravellerId, prevValue + delta), \"brushMoveStartX\", e.pageX), function () {\n if (onChange) {\n if (isFullGap()) {\n onChange(newIndex);\n }\n }\n });\n }\n }, {\n key: \"handleTravellerMoveKeyboard\",\n value: function handleTravellerMoveKeyboard(direction, id) {\n var _this2 = this;\n // scaleValues are a list of coordinates. For example: [65, 250, 435, 620, 805, 990].\n var _this$state3 = this.state,\n scaleValues = _this$state3.scaleValues,\n startX = _this$state3.startX,\n endX = _this$state3.endX;\n // currentScaleValue refers to which coordinate the current traveller should be placed at.\n var currentScaleValue = this.state[id];\n var currentIndex = scaleValues.indexOf(currentScaleValue);\n if (currentIndex === -1) {\n return;\n }\n var newIndex = currentIndex + direction;\n if (newIndex === -1 || newIndex >= scaleValues.length) {\n return;\n }\n var newScaleValue = scaleValues[newIndex];\n\n // Prevent travellers from being on top of each other or overlapping\n if (id === 'startX' && newScaleValue >= endX || id === 'endX' && newScaleValue <= startX) {\n return;\n }\n this.setState(_defineProperty({}, id, newScaleValue), function () {\n _this2.props.onChange(_this2.getIndex({\n startX: _this2.state.startX,\n endX: _this2.state.endX\n }));\n });\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this$props6 = this.props,\n x = _this$props6.x,\n y = _this$props6.y,\n width = _this$props6.width,\n height = _this$props6.height,\n fill = _this$props6.fill,\n stroke = _this$props6.stroke;\n return /*#__PURE__*/React.createElement(\"rect\", {\n stroke: stroke,\n fill: fill,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderPanorama\",\n value: function renderPanorama() {\n var _this$props7 = this.props,\n x = _this$props7.x,\n y = _this$props7.y,\n width = _this$props7.width,\n height = _this$props7.height,\n data = _this$props7.data,\n children = _this$props7.children,\n padding = _this$props7.padding;\n var chartElement = Children.only(children);\n if (!chartElement) {\n return null;\n }\n return /*#__PURE__*/React.cloneElement(chartElement, {\n x: x,\n y: y,\n width: width,\n height: height,\n margin: padding,\n compact: true,\n data: data\n });\n }\n }, {\n key: \"renderTravellerLayer\",\n value: function renderTravellerLayer(travellerX, id) {\n var _data$startIndex,\n _data$endIndex,\n _this3 = this;\n var _this$props8 = this.props,\n y = _this$props8.y,\n travellerWidth = _this$props8.travellerWidth,\n height = _this$props8.height,\n traveller = _this$props8.traveller,\n ariaLabel = _this$props8.ariaLabel,\n data = _this$props8.data,\n startIndex = _this$props8.startIndex,\n endIndex = _this$props8.endIndex;\n var x = Math.max(travellerX, this.props.x);\n var travellerProps = _objectSpread(_objectSpread({}, filterProps(this.props, false)), {}, {\n x: x,\n y: y,\n width: travellerWidth,\n height: height\n });\n var ariaLabelBrush = ariaLabel || \"Min value: \".concat((_data$startIndex = data[startIndex]) === null || _data$startIndex === void 0 ? void 0 : _data$startIndex.name, \", Max value: \").concat((_data$endIndex = data[endIndex]) === null || _data$endIndex === void 0 ? void 0 : _data$endIndex.name);\n return /*#__PURE__*/React.createElement(Layer, {\n tabIndex: 0,\n role: \"slider\",\n \"aria-label\": ariaLabelBrush,\n \"aria-valuenow\": travellerX,\n className: \"recharts-brush-traveller\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.travellerDragStartHandlers[id],\n onTouchStart: this.travellerDragStartHandlers[id],\n onKeyDown: function onKeyDown(e) {\n if (!['ArrowLeft', 'ArrowRight'].includes(e.key)) {\n return;\n }\n e.preventDefault();\n e.stopPropagation();\n _this3.handleTravellerMoveKeyboard(e.key === 'ArrowRight' ? 1 : -1, id);\n },\n onFocus: function onFocus() {\n _this3.setState({\n isTravellerFocused: true\n });\n },\n onBlur: function onBlur() {\n _this3.setState({\n isTravellerFocused: false\n });\n },\n style: {\n cursor: 'col-resize'\n }\n }, Brush.renderTraveller(traveller, travellerProps));\n }\n }, {\n key: \"renderSlide\",\n value: function renderSlide(startX, endX) {\n var _this$props9 = this.props,\n y = _this$props9.y,\n height = _this$props9.height,\n stroke = _this$props9.stroke,\n travellerWidth = _this$props9.travellerWidth;\n var x = Math.min(startX, endX) + travellerWidth;\n var width = Math.max(Math.abs(endX - startX) - travellerWidth, 0);\n return /*#__PURE__*/React.createElement(\"rect\", {\n className: \"recharts-brush-slide\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.handleSlideDragStart,\n onTouchStart: this.handleSlideDragStart,\n style: {\n cursor: 'move'\n },\n stroke: \"none\",\n fill: stroke,\n fillOpacity: 0.2,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderText\",\n value: function renderText() {\n var _this$props10 = this.props,\n startIndex = _this$props10.startIndex,\n endIndex = _this$props10.endIndex,\n y = _this$props10.y,\n height = _this$props10.height,\n travellerWidth = _this$props10.travellerWidth,\n stroke = _this$props10.stroke;\n var _this$state4 = this.state,\n startX = _this$state4.startX,\n endX = _this$state4.endX;\n var offset = 5;\n var attrs = {\n pointerEvents: 'none',\n fill: stroke\n };\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-brush-texts\"\n }, /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"end\",\n verticalAnchor: \"middle\",\n x: Math.min(startX, endX) - offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(startIndex)), /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"start\",\n verticalAnchor: \"middle\",\n x: Math.max(startX, endX) + travellerWidth + offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(endIndex)));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props11 = this.props,\n data = _this$props11.data,\n className = _this$props11.className,\n children = _this$props11.children,\n x = _this$props11.x,\n y = _this$props11.y,\n width = _this$props11.width,\n height = _this$props11.height,\n alwaysShowText = _this$props11.alwaysShowText;\n var _this$state5 = this.state,\n startX = _this$state5.startX,\n endX = _this$state5.endX,\n isTextActive = _this$state5.isTextActive,\n isSlideMoving = _this$state5.isSlideMoving,\n isTravellerMoving = _this$state5.isTravellerMoving,\n isTravellerFocused = _this$state5.isTravellerFocused;\n if (!data || !data.length || !isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || width <= 0 || height <= 0) {\n return null;\n }\n var layerClass = clsx('recharts-brush', className);\n var isPanoramic = React.Children.count(children) === 1;\n var style = generatePrefixStyle('userSelect', 'none');\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass,\n onMouseLeave: this.handleLeaveWrapper,\n onTouchMove: this.handleTouchMove,\n style: style\n }, this.renderBackground(), isPanoramic && this.renderPanorama(), this.renderSlide(startX, endX), this.renderTravellerLayer(startX, 'startX'), this.renderTravellerLayer(endX, 'endX'), (isTextActive || isSlideMoving || isTravellerMoving || isTravellerFocused || alwaysShowText) && this.renderText());\n }\n }], [{\n key: \"renderDefaultTraveller\",\n value: function renderDefaultTraveller(props) {\n var x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n stroke = props.stroke;\n var lineY = Math.floor(y + height / 2) - 1;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n fill: stroke,\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY,\n x2: x + width - 1,\n y2: lineY,\n fill: \"none\",\n stroke: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY + 2,\n x2: x + width - 1,\n y2: lineY + 2,\n fill: \"none\",\n stroke: \"#fff\"\n }));\n }\n }, {\n key: \"renderTraveller\",\n value: function renderTraveller(option, props) {\n var rectangle;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rectangle = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n rectangle = option(props);\n } else {\n rectangle = Brush.renderDefaultTraveller(props);\n }\n return rectangle;\n }\n }, {\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var data = nextProps.data,\n width = nextProps.width,\n x = nextProps.x,\n travellerWidth = nextProps.travellerWidth,\n updateId = nextProps.updateId,\n startIndex = nextProps.startIndex,\n endIndex = nextProps.endIndex;\n if (data !== prevState.prevData || updateId !== prevState.prevUpdateId) {\n return _objectSpread({\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width\n }, data && data.length ? createScale({\n data: data,\n width: width,\n x: x,\n travellerWidth: travellerWidth,\n startIndex: startIndex,\n endIndex: endIndex\n }) : {\n scale: null,\n scaleValues: null\n });\n }\n if (prevState.scale && (width !== prevState.prevWidth || x !== prevState.prevX || travellerWidth !== prevState.prevTravellerWidth)) {\n prevState.scale.range([x, x + width - travellerWidth]);\n var scaleValues = prevState.scale.domain().map(function (entry) {\n return prevState.scale(entry);\n });\n return {\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width,\n startX: prevState.scale(nextProps.startIndex),\n endX: prevState.scale(nextProps.endIndex),\n scaleValues: scaleValues\n };\n }\n return null;\n }\n }, {\n key: \"getIndexInRange\",\n value: function getIndexInRange(valueRange, x) {\n var len = valueRange.length;\n var start = 0;\n var end = len - 1;\n while (end - start > 1) {\n var middle = Math.floor((start + end) / 2);\n if (valueRange[middle] > x) {\n end = middle;\n } else {\n start = middle;\n }\n }\n return x >= valueRange[end] ? end : start;\n }\n }]);\n 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});","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","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","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};","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 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","/**\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","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 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 _excluded = [\"x\", \"y\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport invariant from 'tiny-invariant';\nimport { Shape } from './ActiveShapeUtils';\n\n// Rectangle props is expecting x, y, height, width as numbers, name as a string, and radius as a custom type\n// When props are being spread in from a user defined component in Bar,\n// the prop types of an SVGElement have these typed as something else.\n// This function will return the passed in props\n// along with x, y, height as numbers, name as a string, and radius as number | [number, number, number, number]\nfunction typeguardBarRectangleProps(_ref, props) {\n var xProp = _ref.x,\n yProp = _ref.y,\n option = _objectWithoutProperties(_ref, _excluded);\n var xValue = \"\".concat(xProp);\n var x = parseInt(xValue, 10);\n var yValue = \"\".concat(yProp);\n var y = parseInt(yValue, 10);\n var heightValue = \"\".concat(props.height || option.height);\n var height = parseInt(heightValue, 10);\n var widthValue = \"\".concat(props.width || option.width);\n var width = parseInt(widthValue, 10);\n return _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, props), option), x ? {\n x: x\n } : {}), y ? {\n y: y\n } : {}), {}, {\n height: height,\n width: width,\n name: props.name,\n radius: props.radius\n });\n}\nexport function BarRectangle(props) {\n return /*#__PURE__*/React.createElement(Shape, _extends({\n shapeType: \"rectangle\",\n propTransformer: typeguardBarRectangleProps,\n activeClassName: \"recharts-active-bar\"\n }, props));\n}\n/**\n * Safely gets minPointSize from from the minPointSize prop if it is a function\n * @param minPointSize minPointSize as passed to the Bar component\n * @param defaultValue default minPointSize\n * @returns minPointSize\n */\nexport var minPointSizeCallback = function minPointSizeCallback(minPointSize) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return function (value, index) {\n if (typeof minPointSize === 'number') return minPointSize;\n var isValueNumber = typeof value === 'number';\n if (isValueNumber) {\n return minPointSize(value, index);\n }\n !isValueNumber ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"minPointSize callback function received a value with type of \".concat(_typeof(value), \". Currently only numbers are supported.\")) : invariant(false) : void 0;\n return defaultValue;\n };\n};","var _excluded = [\"value\", \"background\"];\nvar _Bar;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Render a group of bar\n */\nimport React, { PureComponent } from 'react';\nimport clsx from 'clsx';\nimport Animate from 'react-smooth';\nimport isEqual from 'lodash/isEqual';\nimport isNil from 'lodash/isNil';\nimport { Layer } from '../container/Layer';\nimport { ErrorBar } from './ErrorBar';\nimport { Cell } from '../component/Cell';\nimport { LabelList } from '../component/LabelList';\nimport { uniqueId, mathSign, interpolateNumber } from '../util/DataUtils';\nimport { filterProps, findAllByType } from '../util/ReactUtils';\nimport { Global } from '../util/Global';\nimport { getCateCoordinateOfBar, getValueByDataKey, truncateByDomain, getBaseValueOfBar, findPositionOfBar, getTooltipItem } from '../util/ChartUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { BarRectangle, minPointSizeCallback } from '../util/BarUtils';\nexport var Bar = /*#__PURE__*/function (_PureComponent) {\n _inherits(Bar, _PureComponent);\n function Bar() {\n var _this;\n _classCallCheck(this, Bar);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Bar, [].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isAnimationFinished: false\n });\n _defineProperty(_assertThisInitialized(_this), \"id\", uniqueId('recharts-bar-'));\n _defineProperty(_assertThisInitialized(_this), \"handleAnimationEnd\", function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n _this.setState({\n isAnimationFinished: true\n });\n if (onAnimationEnd) {\n onAnimationEnd();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleAnimationStart\", function () {\n var onAnimationStart = _this.props.onAnimationStart;\n _this.setState({\n isAnimationFinished: false\n });\n if (onAnimationStart) {\n onAnimationStart();\n }\n });\n return _this;\n }\n _createClass(Bar, [{\n key: \"renderRectanglesStatically\",\n value: function renderRectanglesStatically(data) {\n var _this2 = this;\n var _this$props = this.props,\n shape = _this$props.shape,\n dataKey = _this$props.dataKey,\n activeIndex = _this$props.activeIndex,\n activeBar = _this$props.activeBar;\n var baseProps = filterProps(this.props, false);\n return data && data.map(function (entry, i) {\n var isActive = i === activeIndex;\n var option = isActive ? activeBar : shape;\n var props = _objectSpread(_objectSpread(_objectSpread({}, baseProps), entry), {}, {\n isActive: isActive,\n option: option,\n index: i,\n dataKey: dataKey,\n onAnimationStart: _this2.handleAnimationStart,\n onAnimationEnd: _this2.handleAnimationEnd\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-bar-rectangle\"\n }, adaptEventsOfChild(_this2.props, entry, i), {\n key: \"rectangle-\".concat(entry === null || entry === void 0 ? void 0 : entry.x, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.y, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.value)\n }), /*#__PURE__*/React.createElement(BarRectangle, props));\n });\n }\n }, {\n key: \"renderRectanglesWithAnimation\",\n value: function renderRectanglesWithAnimation() {\n var _this3 = this;\n var _this$props2 = this.props,\n data = _this$props2.data,\n layout = _this$props2.layout,\n isAnimationActive = _this$props2.isAnimationActive,\n animationBegin = _this$props2.animationBegin,\n animationDuration = _this$props2.animationDuration,\n animationEasing = _this$props2.animationEasing,\n animationId = _this$props2.animationId;\n var prevData = this.state.prevData;\n return /*#__PURE__*/React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"bar-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n var stepData = data.map(function (entry, index) {\n var prev = prevData && prevData[index];\n if (prev) {\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n var interpolatorWidth = interpolateNumber(prev.width, entry.width);\n var interpolatorHeight = interpolateNumber(prev.height, entry.height);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t),\n width: interpolatorWidth(t),\n height: interpolatorHeight(t)\n });\n }\n if (layout === 'horizontal') {\n var _interpolatorHeight = interpolateNumber(0, entry.height);\n var h = _interpolatorHeight(t);\n return _objectSpread(_objectSpread({}, entry), {}, {\n y: entry.y + entry.height - h,\n height: h\n });\n }\n var interpolator = interpolateNumber(0, entry.width);\n var w = interpolator(t);\n return _objectSpread(_objectSpread({}, entry), {}, {\n width: w\n });\n });\n return /*#__PURE__*/React.createElement(Layer, null, _this3.renderRectanglesStatically(stepData));\n });\n }\n }, {\n key: \"renderRectangles\",\n value: function renderRectangles() {\n var _this$props3 = this.props,\n data = _this$props3.data,\n isAnimationActive = _this$props3.isAnimationActive;\n var prevData = this.state.prevData;\n if (isAnimationActive && data && data.length && (!prevData || !isEqual(prevData, data))) {\n return this.renderRectanglesWithAnimation();\n }\n return this.renderRectanglesStatically(data);\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this4 = this;\n var _this$props4 = this.props,\n data = _this$props4.data,\n dataKey = _this$props4.dataKey,\n activeIndex = _this$props4.activeIndex;\n var backgroundProps = filterProps(this.props.background, false);\n return data.map(function (entry, i) {\n var value = entry.value,\n background = entry.background,\n rest = _objectWithoutProperties(entry, _excluded);\n if (!background) {\n return null;\n }\n var props = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, rest), {}, {\n fill: '#eee'\n }, background), backgroundProps), adaptEventsOfChild(_this4.props, entry, i)), {}, {\n onAnimationStart: _this4.handleAnimationStart,\n onAnimationEnd: _this4.handleAnimationEnd,\n dataKey: dataKey,\n index: i,\n key: \"background-bar-\".concat(i),\n className: 'recharts-bar-background-rectangle'\n });\n return /*#__PURE__*/React.createElement(BarRectangle, _extends({\n option: _this4.props.background,\n isActive: i === activeIndex\n }, props));\n });\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar(needClip, clipPathId) {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n var _this$props5 = this.props,\n data = _this$props5.data,\n xAxis = _this$props5.xAxis,\n yAxis = _this$props5.yAxis,\n layout = _this$props5.layout,\n children = _this$props5.children;\n var errorBarItems = findAllByType(children, ErrorBar);\n if (!errorBarItems) {\n return null;\n }\n var offset = layout === 'vertical' ? data[0].height / 2 : data[0].width / 2;\n var dataPointFormatter = function dataPointFormatter(dataPoint, dataKey) {\n /**\n * if the value coming from `getComposedData` is an array then this is a stacked bar chart.\n * arr[1] represents end value of the bar since the data is in the form of [startValue, endValue].\n * */\n var value = Array.isArray(dataPoint.value) ? dataPoint.value[1] : dataPoint.value;\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: value,\n errorVal: getValueByDataKey(dataPoint, dataKey)\n };\n };\n var errorBarProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, errorBarProps, errorBarItems.map(function (item) {\n return /*#__PURE__*/React.cloneElement(item, {\n key: \"error-bar-\".concat(clipPathId, \"-\").concat(item.props.dataKey),\n data: data,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: layout,\n offset: offset,\n dataPointFormatter: dataPointFormatter\n });\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n hide = _this$props6.hide,\n data = _this$props6.data,\n className = _this$props6.className,\n xAxis = _this$props6.xAxis,\n yAxis = _this$props6.yAxis,\n left = _this$props6.left,\n top = _this$props6.top,\n width = _this$props6.width,\n height = _this$props6.height,\n isAnimationActive = _this$props6.isAnimationActive,\n background = _this$props6.background,\n id = _this$props6.id;\n if (hide || !data || !data.length) {\n return null;\n }\n var isAnimationFinished = this.state.isAnimationFinished;\n var layerClass = clsx('recharts-bar', className);\n var needClipX = xAxis && xAxis.allowDataOverflow;\n var needClipY = yAxis && yAxis.allowDataOverflow;\n var needClip = needClipX || needClipY;\n var clipPathId = isNil(id) ? this.id : id;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClipX || needClipY ? /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: needClipX ? left : left - width / 2,\n y: needClipY ? top : top - height / 2,\n width: needClipX ? width : width * 2,\n height: needClipY ? height : height * 2\n }))) : null, /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-bar-rectangles\",\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n }, background ? this.renderBackground() : null, this.renderRectangles()), this.renderErrorBar(needClip, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, data));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curData: nextProps.data,\n prevData: prevState.curData\n };\n }\n if (nextProps.data !== prevState.curData) {\n return {\n curData: nextProps.data\n };\n }\n return null;\n }\n }]);\n return Bar;\n}(PureComponent);\n_Bar = Bar;\n_defineProperty(Bar, \"displayName\", 'Bar');\n_defineProperty(Bar, \"defaultProps\", {\n xAxisId: 0,\n yAxisId: 0,\n legendType: 'rect',\n minPointSize: 0,\n hide: false,\n data: [],\n layout: 'vertical',\n activeBar: false,\n isAnimationActive: !Global.isSsr,\n animationBegin: 0,\n animationDuration: 400,\n animationEasing: 'ease'\n});\n/**\n * Compose the data of each group\n * @param {Object} props Props for the component\n * @param {Object} item An instance of Bar\n * @param {Array} barPosition The offset and size of each bar\n * @param {Object} xAxis The configuration of x-axis\n * @param {Object} yAxis The configuration of y-axis\n * @param {Array} stackedData The stacked data of a bar item\n * @return{Array} Composed data\n */\n_defineProperty(Bar, \"getComposedData\", function (_ref2) {\n var props = _ref2.props,\n item = _ref2.item,\n barPosition = _ref2.barPosition,\n bandSize = _ref2.bandSize,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n stackedData = _ref2.stackedData,\n dataStartIndex = _ref2.dataStartIndex,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var pos = findPositionOfBar(barPosition, item);\n if (!pos) {\n return null;\n }\n var layout = props.layout;\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n children = _item$props.children,\n minPointSizeProp = _item$props.minPointSize;\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n var stackedDomain = stackedData ? numericAxis.scale.domain() : null;\n var baseValue = getBaseValueOfBar({\n numericAxis: numericAxis\n });\n var cells = findAllByType(children, Cell);\n var rects = displayedData.map(function (entry, index) {\n var value, x, y, width, height, background;\n if (stackedData) {\n value = truncateByDomain(stackedData[dataStartIndex + index], stackedDomain);\n } else {\n value = getValueByDataKey(entry, dataKey);\n if (!Array.isArray(value)) {\n value = [baseValue, value];\n }\n }\n var minPointSize = minPointSizeCallback(minPointSizeProp, _Bar.defaultProps.minPointSize)(value[1], index);\n if (layout === 'horizontal') {\n var _ref4;\n var _ref3 = [yAxis.scale(value[0]), yAxis.scale(value[1])],\n baseValueScale = _ref3[0],\n currentValueScale = _ref3[1];\n x = getCateCoordinateOfBar({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n y = (_ref4 = currentValueScale !== null && currentValueScale !== void 0 ? currentValueScale : baseValueScale) !== null && _ref4 !== void 0 ? _ref4 : undefined;\n width = pos.size;\n var computedHeight = baseValueScale - currentValueScale;\n height = Number.isNaN(computedHeight) ? 0 : computedHeight;\n background = {\n x: x,\n y: yAxis.y,\n width: width,\n height: yAxis.height\n };\n if (Math.abs(minPointSize) > 0 && Math.abs(height) < Math.abs(minPointSize)) {\n var delta = mathSign(height || minPointSize) * (Math.abs(minPointSize) - Math.abs(height));\n y -= delta;\n height += delta;\n }\n } else {\n var _ref5 = [xAxis.scale(value[0]), xAxis.scale(value[1])],\n _baseValueScale = _ref5[0],\n _currentValueScale = _ref5[1];\n x = _baseValueScale;\n y = getCateCoordinateOfBar({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n width = _currentValueScale - _baseValueScale;\n height = pos.size;\n background = {\n x: xAxis.x,\n y: y,\n width: xAxis.width,\n height: height\n };\n if (Math.abs(minPointSize) > 0 && Math.abs(width) < Math.abs(minPointSize)) {\n var _delta = mathSign(width || minPointSize) * (Math.abs(minPointSize) - Math.abs(width));\n width += _delta;\n }\n }\n return _objectSpread(_objectSpread(_objectSpread({}, entry), {}, {\n x: x,\n y: y,\n width: width,\n height: height,\n value: stackedData ? value : value[1],\n payload: entry,\n background: background\n }, cells && cells[index] && cells[index].props), {}, {\n tooltipPayload: [getTooltipItem(item, entry)],\n tooltipPosition: {\n x: x + width / 2,\n y: y + height / 2\n }\n });\n });\n return _objectSpread({\n data: rects,\n layout: layout\n }, offset);\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport mapValues from 'lodash/mapValues';\nimport every from 'lodash/every';\nimport { getTicksOfScale, parseScale, checkDomainOfScale, getBandSizeOfAxis } from './ChartUtils';\nimport { findChildByType } from './ReactUtils';\nimport { getPercentValue } from './DataUtils';\nimport { Bar } from '../cartesian/Bar';\n\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {String} axisType The type of axes, x-axis or y-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height,\n layout = props.layout,\n children = props.children;\n var ids = Object.keys(axisMap);\n var steps = {\n left: offset.left,\n leftMirror: offset.left,\n right: width - offset.right,\n rightMirror: width - offset.right,\n top: offset.top,\n topMirror: offset.top,\n bottom: height - offset.bottom,\n bottomMirror: height - offset.bottom\n };\n var hasBar = !!findChildByType(children, Bar);\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var orientation = axis.orientation,\n domain = axis.domain,\n _axis$padding = axis.padding,\n padding = _axis$padding === void 0 ? {} : _axis$padding,\n mirror = axis.mirror,\n reversed = axis.reversed;\n var offsetKey = \"\".concat(orientation).concat(mirror ? 'Mirror' : '');\n var calculatedPadding, range, x, y, needSpace;\n if (axis.type === 'number' && (axis.padding === 'gap' || axis.padding === 'no-gap')) {\n var diff = domain[1] - domain[0];\n var smallestDistanceBetweenValues = Infinity;\n var sortedValues = axis.categoricalDomain.sort();\n sortedValues.forEach(function (value, index) {\n if (index > 0) {\n smallestDistanceBetweenValues = Math.min((value || 0) - (sortedValues[index - 1] || 0), smallestDistanceBetweenValues);\n }\n });\n if (Number.isFinite(smallestDistanceBetweenValues)) {\n var smallestDistanceInPercent = smallestDistanceBetweenValues / diff;\n var rangeWidth = axis.layout === 'vertical' ? offset.height : offset.width;\n if (axis.padding === 'gap') {\n calculatedPadding = smallestDistanceInPercent * rangeWidth / 2;\n }\n if (axis.padding === 'no-gap') {\n var gap = getPercentValue(props.barCategoryGap, smallestDistanceInPercent * rangeWidth);\n var halfBand = smallestDistanceInPercent * rangeWidth / 2;\n calculatedPadding = halfBand - gap - (halfBand - gap) / rangeWidth * gap;\n }\n }\n }\n if (axisType === 'xAxis') {\n range = [offset.left + (padding.left || 0) + (calculatedPadding || 0), offset.left + offset.width - (padding.right || 0) - (calculatedPadding || 0)];\n } else if (axisType === 'yAxis') {\n range = layout === 'horizontal' ? [offset.top + offset.height - (padding.bottom || 0), offset.top + (padding.top || 0)] : [offset.top + (padding.top || 0) + (calculatedPadding || 0), offset.top + offset.height - (padding.bottom || 0) - (calculatedPadding || 0)];\n } else {\n range = axis.range;\n }\n if (reversed) {\n range = [range[1], range[0]];\n }\n var _parseScale = parseScale(axis, chartName, hasBar),\n scale = _parseScale.scale,\n realScaleType = _parseScale.realScaleType;\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n if (axisType === 'xAxis') {\n needSpace = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;\n x = offset.left;\n y = steps[offsetKey] - needSpace * axis.height;\n } else if (axisType === 'yAxis') {\n needSpace = orientation === 'left' && !mirror || orientation === 'right' && mirror;\n x = steps[offsetKey] - needSpace * axis.width;\n y = offset.top;\n }\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n realScaleType: realScaleType,\n x: x,\n y: y,\n scale: scale,\n width: axisType === 'xAxis' ? offset.width : axis.width,\n height: axisType === 'yAxis' ? offset.height : axis.height\n });\n finalAxis.bandSize = getBandSizeOfAxis(finalAxis, ticks);\n if (!axis.hide && axisType === 'xAxis') {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.height;\n } else if (!axis.hide) {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.width;\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var rectWithPoints = function rectWithPoints(_ref, _ref2) {\n var x1 = _ref.x,\n y1 = _ref.y;\n var x2 = _ref2.x,\n y2 = _ref2.y;\n return {\n x: Math.min(x1, x2),\n y: Math.min(y1, y2),\n width: Math.abs(x2 - x1),\n height: Math.abs(y2 - y1)\n };\n};\n\n/**\n * Compute the x, y, width, and height of a box from two reference points.\n * @param {Object} coords x1, x2, y1, and y2\n * @return {Object} object\n */\nexport var rectWithCoords = function rectWithCoords(_ref3) {\n var x1 = _ref3.x1,\n y1 = _ref3.y1,\n x2 = _ref3.x2,\n y2 = _ref3.y2;\n return rectWithPoints({\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n });\n};\nexport var ScaleHelper = /*#__PURE__*/function () {\n function ScaleHelper(scale) {\n _classCallCheck(this, ScaleHelper);\n this.scale = scale;\n }\n _createClass(ScaleHelper, [{\n key: \"domain\",\n get: function get() {\n return this.scale.domain;\n }\n }, {\n key: \"range\",\n get: function get() {\n return this.scale.range;\n }\n }, {\n key: \"rangeMin\",\n get: function get() {\n return this.range()[0];\n }\n }, {\n key: \"rangeMax\",\n get: function get() {\n return this.range()[1];\n }\n }, {\n key: \"bandwidth\",\n get: function get() {\n return this.scale.bandwidth;\n }\n }, {\n key: \"apply\",\n value: function apply(value) {\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref4.bandAware,\n position = _ref4.position;\n if (value === undefined) {\n return undefined;\n }\n if (position) {\n switch (position) {\n case 'start':\n {\n return this.scale(value);\n }\n case 'middle':\n {\n var offset = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + offset;\n }\n case 'end':\n {\n var _offset = this.bandwidth ? this.bandwidth() : 0;\n return this.scale(value) + _offset;\n }\n default:\n {\n return this.scale(value);\n }\n }\n }\n if (bandAware) {\n var _offset2 = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + _offset2;\n }\n return this.scale(value);\n }\n }, {\n key: \"isInRange\",\n value: function isInRange(value) {\n var range = this.range();\n var first = range[0];\n var last = range[range.length - 1];\n return first <= last ? value >= first && value <= last : value >= last && value <= first;\n }\n }], [{\n key: \"create\",\n value: function create(obj) {\n return new ScaleHelper(obj);\n }\n }]);\n return ScaleHelper;\n}();\n_defineProperty(ScaleHelper, \"EPS\", 1e-4);\nexport var createLabeledScales = function createLabeledScales(options) {\n var scales = Object.keys(options).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, ScaleHelper.create(options[key])));\n }, {});\n return _objectSpread(_objectSpread({}, scales), {}, {\n apply: function apply(coord) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref5.bandAware,\n position = _ref5.position;\n return mapValues(coord, function (value, label) {\n return scales[label].apply(value, {\n bandAware: bandAware,\n position: position\n });\n });\n },\n isInRange: function isInRange(coord) {\n return every(coord, function (value, label) {\n return scales[label].isInRange(value);\n });\n }\n });\n};\n\n/** Normalizes the angle so that 0 <= angle < 180.\n * @param {number} angle Angle in degrees.\n * @return {number} the normalized angle with a value of at least 0 and never greater or equal to 180. */\nexport function normalizeAngle(angle) {\n return (angle % 180 + 180) % 180;\n}\n\n/** Calculates the width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.\n * @param {Object} size Width and height of the text in a horizontal position.\n * @param {number} angle Angle in degrees in which the text is displayed.\n * @return {number} The width of the largest horizontal line that fits inside a rectangle that is displayed at an angle.\n */\nexport var getAngledRectangleWidth = function getAngledRectangleWidth(_ref6) {\n var width = _ref6.width,\n height = _ref6.height;\n var angle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Ensure angle is >= 0 && < 180\n var normalizedAngle = normalizeAngle(angle);\n var angleRadians = normalizedAngle * Math.PI / 180;\n\n /* Depending on the height and width of the rectangle, we may need to use different formulas to calculate the angled\n * width. This threshold defines when each formula should kick in. */\n var angleThreshold = Math.atan(height / width);\n var angledWidth = angleRadians > angleThreshold && angleRadians < Math.PI - angleThreshold ? height / Math.sin(angleRadians) : width / Math.cos(angleRadians);\n return Math.abs(angledWidth);\n};","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 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 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 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","import memoize from 'lodash/memoize';\n/**\n * This is memoized because the viewBox is unlikely to change often\n * - but because it is computed from offset, any change to it would re-render all children.\n *\n * And because we have many readers of the viewBox, and update it only rarely,\n * then let's optimize with memoization.\n */\nexport var calculateViewBox = memoize(function (offset) {\n return {\n x: offset.left,\n y: offset.top,\n width: offset.width,\n height: offset.height\n };\n}, function (offset) {\n return ['l', offset.left, 't', offset.top, 'w', offset.width, 'h', offset.height].join('');\n});","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nimport React, { createContext, useContext } from 'react';\nimport invariant from 'tiny-invariant';\nimport find from 'lodash/find';\nimport every from 'lodash/every';\nimport { calculateViewBox } from '../util/calculateViewBox';\nimport { getAnyElementOfObject } from '../util/DataUtils';\nexport var XAxisContext = /*#__PURE__*/createContext(undefined);\nexport var YAxisContext = /*#__PURE__*/createContext(undefined);\nexport var ViewBoxContext = /*#__PURE__*/createContext(undefined);\nexport var OffsetContext = /*#__PURE__*/createContext({});\nexport var ClipPathIdContext = /*#__PURE__*/createContext(undefined);\nexport var ChartHeightContext = /*#__PURE__*/createContext(0);\nexport var ChartWidthContext = /*#__PURE__*/createContext(0);\n\n/**\n * Will add all the properties required to render all individual Recharts components into a React Context.\n *\n * If you want to read these properties, see the collection of hooks exported from this file.\n *\n * @param {object} props CategoricalChartState, plus children\n * @returns {ReactElement} React Context Provider\n */\nexport var ChartLayoutContextProvider = function ChartLayoutContextProvider(props) {\n var _props$state = props.state,\n xAxisMap = _props$state.xAxisMap,\n yAxisMap = _props$state.yAxisMap,\n offset = _props$state.offset,\n clipPathId = props.clipPathId,\n children = props.children,\n width = props.width,\n height = props.height;\n\n /**\n * Perhaps we should compute this property when reading? Let's see what is more often used\n */\n var viewBox = calculateViewBox(offset);\n\n /*\n * This pretends to be a single context but actually is split into multiple smaller ones.\n * Why?\n * Because one React Context only allows to set one value.\n * But we need to set multiple values.\n * If we do that with one context, then we force re-render on components that might not even be interested\n * in the part of the state that has changed.\n *\n * By splitting into smaller contexts, we allow each components to be optimized and only re-render when its dependencies change.\n *\n * To actually achieve the optimal re-render, it is necessary to use React.memo().\n * See the test file for details.\n */\n return /*#__PURE__*/React.createElement(XAxisContext.Provider, {\n value: xAxisMap\n }, /*#__PURE__*/React.createElement(YAxisContext.Provider, {\n value: yAxisMap\n }, /*#__PURE__*/React.createElement(OffsetContext.Provider, {\n value: offset\n }, /*#__PURE__*/React.createElement(ViewBoxContext.Provider, {\n value: viewBox\n }, /*#__PURE__*/React.createElement(ClipPathIdContext.Provider, {\n value: clipPathId\n }, /*#__PURE__*/React.createElement(ChartHeightContext.Provider, {\n value: height\n }, /*#__PURE__*/React.createElement(ChartWidthContext.Provider, {\n value: width\n }, children)))))));\n};\nexport var useClipPathId = function useClipPathId() {\n return useContext(ClipPathIdContext);\n};\nfunction getKeysForDebug(object) {\n var keys = Object.keys(object);\n if (keys.length === 0) {\n return 'There are no available ids.';\n }\n return \"Available ids are: \".concat(keys, \".\");\n}\n\n/**\n * This either finds and returns Axis by the specified ID, or throws an exception if an axis with this ID does not exist.\n *\n * @param xAxisId identifier of the axis - it's either autogenerated ('0'), or passed via `id` prop as \n * @returns axis configuration object\n * @throws Error if no axis with this ID exists\n */\nexport var useXAxisOrThrow = function useXAxisOrThrow(xAxisId) {\n var xAxisMap = useContext(XAxisContext);\n !(xAxisMap != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find Recharts context; are you sure this is rendered inside a Recharts wrapper component?') : invariant(false) : void 0;\n var xAxis = xAxisMap[xAxisId];\n !(xAxis != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not find xAxis by id \\\"\".concat(xAxisId, \"\\\" [\").concat(_typeof(xAxisId), \"]. \").concat(getKeysForDebug(xAxisMap))) : invariant(false) : void 0;\n return xAxis;\n};\n\n/**\n * This will find an arbitrary first XAxis. If there's exactly one it always returns that one\n * - but if there are multiple then it can return any of those.\n *\n * If you want specific XAxis out of multiple then prefer using useXAxisOrThrow\n *\n * @returns X axisOptions, or undefined - if there are no X axes\n */\nexport var useArbitraryXAxis = function useArbitraryXAxis() {\n var xAxisMap = useContext(XAxisContext);\n return getAnyElementOfObject(xAxisMap);\n};\n\n/**\n * This will find an arbitrary first YAxis. If there's exactly one it always returns that one\n * - but if there are multiple then it can return any of those.\n *\n * If you want specific YAxis out of multiple then prefer using useXAxisOrThrow\n *\n * @returns Y axisOptions, or undefined - if there are no Y axes\n */\nexport var useArbitraryYAxis = function useArbitraryYAxis() {\n var yAxisMap = useContext(YAxisContext);\n return getAnyElementOfObject(yAxisMap);\n};\n\n/**\n * This hooks will:\n * 1st attempt to find an YAxis that has all elements in its domain finite\n * If no such axis exists, it will return an arbitrary YAxis\n * if there are no Y axes then it returns undefined\n *\n * @returns Either Y axisOptions, or undefined if there are no Y axes\n */\nexport var useYAxisWithFiniteDomainOrRandom = function useYAxisWithFiniteDomainOrRandom() {\n var yAxisMap = useContext(YAxisContext);\n var yAxisWithFiniteDomain = find(yAxisMap, function (axis) {\n return every(axis.domain, Number.isFinite);\n });\n return yAxisWithFiniteDomain || getAnyElementOfObject(yAxisMap);\n};\n\n/**\n * This either finds and returns Axis by the specified ID, or throws an exception if an axis with this ID does not exist.\n *\n * @param yAxisId identifier of the axis - it's either autogenerated ('0'), or passed via `id` prop as \n * @returns axis configuration object\n * @throws Error if no axis with this ID exists\n */\nexport var useYAxisOrThrow = function useYAxisOrThrow(yAxisId) {\n var yAxisMap = useContext(YAxisContext);\n !(yAxisMap != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Could not find Recharts context; are you sure this is rendered inside a Recharts wrapper component?') : invariant(false) : void 0;\n var yAxis = yAxisMap[yAxisId];\n !(yAxis != null) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not find yAxis by id \\\"\".concat(yAxisId, \"\\\" [\").concat(_typeof(yAxisId), \"]. \").concat(getKeysForDebug(yAxisMap))) : invariant(false) : void 0;\n return yAxis;\n};\nexport var useViewBox = function useViewBox() {\n var viewBox = useContext(ViewBoxContext);\n return viewBox;\n};\nexport var useOffset = function useOffset() {\n return useContext(OffsetContext);\n};\nexport var useChartWidth = function useChartWidth() {\n return useContext(ChartWidthContext);\n};\nexport var useChartHeight = function useChartHeight() {\n return useContext(ChartHeightContext);\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/**\n * @fileOverview Reference Line\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport some from 'lodash/some';\nimport clsx from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { createLabeledScales, rectWithCoords } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/ReactUtils';\nimport { useClipPathId, useViewBox, useXAxisOrThrow, useYAxisOrThrow } from '../context/chartLayoutContext';\n\n/**\n * This excludes `viewBox` prop from svg for two reasons:\n * 1. The components wants viewBox of object type, and svg wants string\n * - so there's a conflict, and the component will throw if it gets string\n * 2. Internally the component calls `filterProps` which filters the viewBox away anyway\n */\n\nvar renderLine = function renderLine(option, props) {\n var line;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n line = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n line = option(props);\n } else {\n line = /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: \"recharts-reference-line-line\"\n }));\n }\n return line;\n};\n// TODO: ScaleHelper\nexport var getEndPoints = function getEndPoints(scales, isFixedX, isFixedY, isSegment, viewBox, position, xAxisOrientation, yAxisOrientation, props) {\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n if (isFixedY) {\n var yCoord = props.y;\n var coord = scales.y.apply(yCoord, {\n position: position\n });\n if (ifOverflowMatches(props, 'discard') && !scales.y.isInRange(coord)) {\n return null;\n }\n var points = [{\n x: x + width,\n y: coord\n }, {\n x: x,\n y: coord\n }];\n return yAxisOrientation === 'left' ? points.reverse() : points;\n }\n if (isFixedX) {\n var xCoord = props.x;\n var _coord = scales.x.apply(xCoord, {\n position: position\n });\n if (ifOverflowMatches(props, 'discard') && !scales.x.isInRange(_coord)) {\n return null;\n }\n var _points = [{\n x: _coord,\n y: y + height\n }, {\n x: _coord,\n y: y\n }];\n return xAxisOrientation === 'top' ? _points.reverse() : _points;\n }\n if (isSegment) {\n var segment = props.segment;\n var _points2 = segment.map(function (p) {\n return scales.apply(p, {\n position: position\n });\n });\n if (ifOverflowMatches(props, 'discard') && some(_points2, function (p) {\n return !scales.isInRange(p);\n })) {\n return null;\n }\n return _points2;\n }\n return null;\n};\nexport function ReferenceLine(props) {\n var fixedX = props.x,\n fixedY = props.y,\n segment = props.segment,\n xAxisId = props.xAxisId,\n yAxisId = props.yAxisId,\n shape = props.shape,\n className = props.className,\n alwaysShow = props.alwaysShow;\n var clipPathId = useClipPathId();\n var xAxis = useXAxisOrThrow(xAxisId);\n var yAxis = useYAxisOrThrow(yAxisId);\n var viewBox = useViewBox();\n if (!clipPathId || !viewBox) {\n return null;\n }\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var isX = isNumOrStr(fixedX);\n var isY = isNumOrStr(fixedY);\n var isSegment = segment && segment.length === 2;\n var endPoints = getEndPoints(scales, isX, isY, isSegment, viewBox, props.position, xAxis.orientation, yAxis.orientation, props);\n if (!endPoints) {\n return null;\n }\n var _endPoints = _slicedToArray(endPoints, 2),\n _endPoints$ = _endPoints[0],\n x1 = _endPoints$.x,\n y1 = _endPoints$.y,\n _endPoints$2 = _endPoints[1],\n x2 = _endPoints$2.x,\n y2 = _endPoints$2.y;\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n var lineProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), {}, {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-reference-line', className)\n }, renderLine(shape, lineProps), Label.renderCallByParent(props, rectWithCoords({\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n })));\n}\nReferenceLine.displayName = 'ReferenceLine';\nReferenceLine.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n fill: 'none',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1,\n position: 'middle'\n};","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Reference 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 _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Reference Line\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { createLabeledScales, rectWithPoints } from '../util/CartesianUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nimport { Rectangle } from '../shape/Rectangle';\nimport { filterProps } from '../util/ReactUtils';\nvar getRect = function getRect(hasX1, hasX2, hasY1, hasY2, props) {\n var xValue1 = props.x1,\n xValue2 = props.x2,\n yValue1 = props.y1,\n yValue2 = props.y2,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n if (!xAxis || !yAxis) return null;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var p1 = {\n x: hasX1 ? scales.x.apply(xValue1, {\n position: 'start'\n }) : scales.x.rangeMin,\n y: hasY1 ? scales.y.apply(yValue1, {\n position: 'start'\n }) : scales.y.rangeMin\n };\n var p2 = {\n x: hasX2 ? scales.x.apply(xValue2, {\n position: 'end'\n }) : scales.x.rangeMax,\n y: hasY2 ? scales.y.apply(yValue2, {\n position: 'end'\n }) : scales.y.rangeMax\n };\n if (ifOverflowMatches(props, 'discard') && (!scales.isInRange(p1) || !scales.isInRange(p2))) {\n return null;\n }\n return rectWithPoints(p1, p2);\n};\nexport function ReferenceArea(props) {\n var x1 = props.x1,\n x2 = props.x2,\n y1 = props.y1,\n y2 = props.y2,\n className = props.className,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var hasX1 = isNumOrStr(x1);\n var hasX2 = isNumOrStr(x2);\n var hasY1 = isNumOrStr(y1);\n var hasY2 = isNumOrStr(y2);\n var shape = props.shape;\n if (!hasX1 && !hasX2 && !hasY1 && !hasY2 && !shape) {\n return null;\n }\n var rect = getRect(hasX1, hasX2, hasY1, hasY2, props);\n if (!rect && !shape) {\n return null;\n }\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-reference-area', className)\n }, ReferenceArea.renderRect(shape, _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), rect)), Label.renderCallByParent(props, rect));\n}\nReferenceArea.displayName = 'ReferenceArea';\nReferenceArea.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#ccc',\n fillOpacity: 0.5,\n stroke: 'none',\n strokeWidth: 1\n};\nReferenceArea.renderRect = function (option, props) {\n var rect;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rect = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n rect = option(props);\n } else {\n rect = /*#__PURE__*/React.createElement(Rectangle, _extends({}, props, {\n className: \"recharts-reference-area-rect\"\n }));\n }\n return rect;\n};","/**\n * Given an array and a number N, return a new array which contains every nTh\n * element of the input array. For n below 1, an empty array is returned.\n * If isValid is provided, all candidates must suffice the condition, else undefined is returned.\n * @param {T[]} array An input array.\n * @param {integer} n A number\n * @param {Function} isValid A function to evaluate a candidate form the array\n * @returns {T[]} The result array of the same type as the input array.\n */\nexport function getEveryNthWithCondition(array, n, isValid) {\n if (n < 1) {\n return [];\n }\n if (n === 1 && isValid === undefined) {\n return array;\n }\n var result = [];\n for (var i = 0; i < array.length; i += n) {\n if (isValid === undefined || isValid(array[i]) === true) {\n result.push(array[i]);\n } else {\n return undefined;\n }\n }\n return result;\n}","import { getAngledRectangleWidth } from './CartesianUtils';\nimport { getEveryNthWithCondition } from './getEveryNthWithCondition';\nexport function getAngledTickWidth(contentSize, unitSize, angle) {\n var size = {\n width: contentSize.width + unitSize.width,\n height: contentSize.height + unitSize.height\n };\n return getAngledRectangleWidth(size, angle);\n}\nexport function getTickBoundaries(viewBox, sign, sizeKey) {\n var isWidth = sizeKey === 'width';\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n if (sign === 1) {\n return {\n start: isWidth ? x : y,\n end: isWidth ? x + width : y + height\n };\n }\n return {\n start: isWidth ? x + width : y + height,\n end: isWidth ? x : y\n };\n}\nexport function isVisible(sign, tickPosition, getSize, start, end) {\n /* Since getSize() is expensive (it reads the ticks' size from the DOM), we do this check first to avoid calculating\n * the tick's size. */\n if (sign * tickPosition < sign * start || sign * tickPosition > sign * end) {\n return false;\n }\n var size = getSize();\n return sign * (tickPosition - sign * size / 2 - start) >= 0 && sign * (tickPosition + sign * size / 2 - end) <= 0;\n}\nexport function getNumberIntervalTicks(ticks, interval) {\n return getEveryNthWithCondition(ticks, interval + 1);\n}","import { isVisible } from '../util/TickUtils';\nimport { getEveryNthWithCondition } from '../util/getEveryNthWithCondition';\nexport function getEquidistantTicks(sign, boundaries, getTickSize, ticks, minTickGap) {\n var result = (ticks || []).slice();\n var initialStart = boundaries.start,\n end = boundaries.end;\n var index = 0;\n // Premature optimisation idea 1: Estimate a lower bound, and start from there.\n // For now, start from every tick\n var stepsize = 1;\n var start = initialStart;\n var _loop = function _loop() {\n // Given stepsize, evaluate whether every stepsize-th tick can be shown.\n // If it can not, then increase the stepsize by 1, and try again.\n\n var entry = ticks === null || ticks === void 0 ? void 0 : ticks[index];\n\n // Break condition - If we have evaluate all the ticks, then we are done.\n if (entry === undefined) {\n return {\n v: getEveryNthWithCondition(ticks, stepsize)\n };\n }\n\n // Check if the element collides with the next element\n var i = index;\n var size;\n var getSize = function getSize() {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n var tickCoord = entry.coordinate;\n // We will always show the first tick.\n var isShow = index === 0 || isVisible(sign, tickCoord, getSize, start, end);\n if (!isShow) {\n // Start all over with a larger stepsize\n index = 0;\n start = initialStart;\n stepsize += 1;\n }\n if (isShow) {\n // If it can be shown, update the start\n start = tickCoord + sign * (getSize() / 2 + minTickGap);\n index += stepsize;\n }\n },\n _ret;\n while (stepsize <= result.length) {\n _ret = _loop();\n if (_ret) return _ret.v;\n }\n return [];\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport isFunction from 'lodash/isFunction';\nimport { mathSign, isNumber } from '../util/DataUtils';\nimport { getStringSize } from '../util/DOMUtils';\nimport { Global } from '../util/Global';\nimport { isVisible, getTickBoundaries, getNumberIntervalTicks, getAngledTickWidth } from '../util/TickUtils';\nimport { getEquidistantTicks } from './getEquidistantTicks';\nfunction getTicksEnd(sign, boundaries, getTickSize, ticks, minTickGap) {\n var result = (ticks || []).slice();\n var len = result.length;\n var start = boundaries.start;\n var end = boundaries.end;\n var _loop = function _loop(i) {\n var entry = result[i];\n var size;\n var getSize = function getSize() {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n if (i === len - 1) {\n var gap = sign * (entry.coordinate + sign * getSize() / 2 - end);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap > 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n var isShow = isVisible(sign, entry.tickCoord, getSize, start, end);\n if (isShow) {\n end = entry.tickCoord - sign * (getSize() / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n };\n for (var i = len - 1; i >= 0; i--) {\n _loop(i);\n }\n return result;\n}\nfunction getTicksStart(sign, boundaries, getTickSize, ticks, minTickGap, preserveEnd) {\n var result = (ticks || []).slice();\n var len = result.length;\n var start = boundaries.start,\n end = boundaries.end;\n if (preserveEnd) {\n // Try to guarantee the tail to be displayed\n var tail = ticks[len - 1];\n var tailSize = getTickSize(tail, len - 1);\n var tailGap = sign * (tail.coordinate + sign * tailSize / 2 - end);\n result[len - 1] = tail = _objectSpread(_objectSpread({}, tail), {}, {\n tickCoord: tailGap > 0 ? tail.coordinate - tailGap * sign : tail.coordinate\n });\n var isTailShow = isVisible(sign, tail.tickCoord, function () {\n return tailSize;\n }, start, end);\n if (isTailShow) {\n end = tail.tickCoord - sign * (tailSize / 2 + minTickGap);\n result[len - 1] = _objectSpread(_objectSpread({}, tail), {}, {\n isShow: true\n });\n }\n }\n var count = preserveEnd ? len - 1 : len;\n var _loop2 = function _loop2(i) {\n var entry = result[i];\n var size;\n var getSize = function getSize() {\n if (size === undefined) {\n size = getTickSize(entry, i);\n }\n return size;\n };\n if (i === 0) {\n var gap = sign * (entry.coordinate - sign * getSize() / 2 - start);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap < 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n var isShow = isVisible(sign, entry.tickCoord, getSize, start, end);\n if (isShow) {\n start = entry.tickCoord + sign * (getSize() / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n };\n for (var i = 0; i < count; i++) {\n _loop2(i);\n }\n return result;\n}\nexport function getTicks(props, fontSize, letterSpacing) {\n var tick = props.tick,\n ticks = props.ticks,\n viewBox = props.viewBox,\n minTickGap = props.minTickGap,\n orientation = props.orientation,\n interval = props.interval,\n tickFormatter = props.tickFormatter,\n unit = props.unit,\n angle = props.angle;\n if (!ticks || !ticks.length || !tick) {\n return [];\n }\n if (isNumber(interval) || Global.isSsr) {\n return getNumberIntervalTicks(ticks, typeof interval === 'number' && isNumber(interval) ? interval : 0);\n }\n var candidates = [];\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height';\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n }) : {\n width: 0,\n height: 0\n };\n var getTickSize = function getTickSize(content, index) {\n var value = isFunction(tickFormatter) ? tickFormatter(content.value, index) : content.value;\n // Recharts only supports angles when sizeKey === 'width'\n return sizeKey === 'width' ? getAngledTickWidth(getStringSize(value, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n }), unitSize, angle) : getStringSize(value, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n })[sizeKey];\n };\n var sign = ticks.length >= 2 ? mathSign(ticks[1].coordinate - ticks[0].coordinate) : 1;\n var boundaries = getTickBoundaries(viewBox, sign, sizeKey);\n if (interval === 'equidistantPreserveStart') {\n return getEquidistantTicks(sign, boundaries, getTickSize, ticks, minTickGap);\n }\n if (interval === 'preserveStart' || interval === 'preserveStartEnd') {\n candidates = getTicksStart(sign, boundaries, getTickSize, ticks, minTickGap, interval === 'preserveStartEnd');\n } else {\n candidates = getTicksEnd(sign, boundaries, getTickSize, ticks, minTickGap);\n }\n return candidates.filter(function (entry) {\n return entry.isShow;\n });\n}","var _excluded = [\"viewBox\"],\n _excluded2 = [\"viewBox\"],\n _excluded3 = [\"ticks\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Cartesian Axis\n */\nimport React, { Component } from 'react';\nimport isFunction from 'lodash/isFunction';\nimport get from 'lodash/get';\nimport clsx from 'clsx';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { Label } from '../component/Label';\nimport { isNumber } from '../util/DataUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nimport { getTicks } from './getTicks';\n\n/** The orientation of the axis in correspondence to the chart */\n\n/** A unit to be appended to a value */\n\n/** The formatter function of tick */\n\nexport var CartesianAxis = /*#__PURE__*/function (_Component) {\n _inherits(CartesianAxis, _Component);\n function CartesianAxis(props) {\n var _this;\n _classCallCheck(this, CartesianAxis);\n _this = _callSuper(this, CartesianAxis, [props]);\n _this.state = {\n fontSize: '',\n letterSpacing: ''\n };\n return _this;\n }\n _createClass(CartesianAxis, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(_ref, nextState) {\n var viewBox = _ref.viewBox,\n restProps = _objectWithoutProperties(_ref, _excluded);\n // props.viewBox is sometimes generated every time -\n // check that specially as object equality is likely to fail\n var _this$props = this.props,\n viewBoxOld = _this$props.viewBox,\n restPropsOld = _objectWithoutProperties(_this$props, _excluded2);\n return !shallowEqual(viewBox, viewBoxOld) || !shallowEqual(restProps, restPropsOld) || !shallowEqual(nextState, this.state);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var htmlLayer = this.layerReference;\n if (!htmlLayer) return;\n var tick = htmlLayer.getElementsByClassName('recharts-cartesian-axis-tick-value')[0];\n if (tick) {\n this.setState({\n fontSize: window.getComputedStyle(tick).fontSize,\n letterSpacing: window.getComputedStyle(tick).letterSpacing\n });\n }\n }\n\n /**\n * Calculate the coordinates of endpoints in ticks\n * @param {Object} data The data of a simple tick\n * @return {Object} (x1, y1): The coordinate of endpoint close to tick text\n * (x2, y2): The coordinate of endpoint close to axis\n */\n }, {\n key: \"getTickLineCoord\",\n value: function getTickLineCoord(data) {\n var _this$props2 = this.props,\n x = _this$props2.x,\n y = _this$props2.y,\n width = _this$props2.width,\n height = _this$props2.height,\n orientation = _this$props2.orientation,\n tickSize = _this$props2.tickSize,\n mirror = _this$props2.mirror,\n tickMargin = _this$props2.tickMargin;\n var x1, x2, y1, y2, tx, ty;\n var sign = mirror ? -1 : 1;\n var finalTickSize = data.tickSize || tickSize;\n var tickCoord = isNumber(data.tickCoord) ? data.tickCoord : data.coordinate;\n switch (orientation) {\n case 'top':\n x1 = x2 = data.coordinate;\n y2 = y + +!mirror * height;\n y1 = y2 - sign * finalTickSize;\n ty = y1 - sign * tickMargin;\n tx = tickCoord;\n break;\n case 'left':\n y1 = y2 = data.coordinate;\n x2 = x + +!mirror * width;\n x1 = x2 - sign * finalTickSize;\n tx = x1 - sign * tickMargin;\n ty = tickCoord;\n break;\n case 'right':\n y1 = y2 = data.coordinate;\n x2 = x + +mirror * width;\n x1 = x2 + sign * finalTickSize;\n tx = x1 + sign * tickMargin;\n ty = tickCoord;\n break;\n default:\n x1 = x2 = data.coordinate;\n y2 = y + +mirror * height;\n y1 = y2 + sign * finalTickSize;\n ty = y1 + sign * tickMargin;\n tx = tickCoord;\n break;\n }\n return {\n line: {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n },\n tick: {\n x: tx,\n y: ty\n }\n };\n }\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor() {\n var _this$props3 = this.props,\n orientation = _this$props3.orientation,\n mirror = _this$props3.mirror;\n var textAnchor;\n switch (orientation) {\n case 'left':\n textAnchor = mirror ? 'start' : 'end';\n break;\n case 'right':\n textAnchor = mirror ? 'end' : 'start';\n break;\n default:\n textAnchor = 'middle';\n break;\n }\n return textAnchor;\n }\n }, {\n key: \"getTickVerticalAnchor\",\n value: function getTickVerticalAnchor() {\n var _this$props4 = this.props,\n orientation = _this$props4.orientation,\n mirror = _this$props4.mirror;\n var verticalAnchor = 'end';\n switch (orientation) {\n case 'left':\n case 'right':\n verticalAnchor = 'middle';\n break;\n case 'top':\n verticalAnchor = mirror ? 'start' : 'end';\n break;\n default:\n verticalAnchor = mirror ? 'end' : 'start';\n break;\n }\n return verticalAnchor;\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props5 = this.props,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height,\n orientation = _this$props5.orientation,\n mirror = _this$props5.mirror,\n axisLine = _this$props5.axisLine;\n var props = _objectSpread(_objectSpread(_objectSpread({}, filterProps(this.props, false)), filterProps(axisLine, false)), {}, {\n fill: 'none'\n });\n if (orientation === 'top' || orientation === 'bottom') {\n var needHeight = +(orientation === 'top' && !mirror || orientation === 'bottom' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x,\n y1: y + needHeight * height,\n x2: x + width,\n y2: y + needHeight * height\n });\n } else {\n var needWidth = +(orientation === 'left' && !mirror || orientation === 'right' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x + needWidth * width,\n y1: y,\n x2: x + needWidth * width,\n y2: y + height\n });\n }\n return /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: clsx('recharts-cartesian-axis-line', get(axisLine, 'className'))\n }));\n }\n }, {\n key: \"renderTicks\",\n value:\n /**\n * render the ticks\n * @param {Array} ticks The ticks to actually render (overrides what was passed in props)\n * @param {string} fontSize Fontsize to consider for tick spacing\n * @param {string} letterSpacing Letterspacing to consider for tick spacing\n * @return {ReactComponent} renderedTicks\n */\n function renderTicks(ticks, fontSize, letterSpacing) {\n var _this2 = this;\n var _this$props6 = this.props,\n tickLine = _this$props6.tickLine,\n stroke = _this$props6.stroke,\n tick = _this$props6.tick,\n tickFormatter = _this$props6.tickFormatter,\n unit = _this$props6.unit;\n var finalTicks = getTicks(_objectSpread(_objectSpread({}, this.props), {}, {\n ticks: ticks\n }), fontSize, letterSpacing);\n var textAnchor = this.getTickTextAnchor();\n var verticalAnchor = this.getTickVerticalAnchor();\n var axisProps = filterProps(this.props, false);\n var customTickProps = filterProps(tick, false);\n var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {\n fill: 'none'\n }, filterProps(tickLine, false));\n var items = finalTicks.map(function (entry, i) {\n var _this2$getTickLineCoo = _this2.getTickLineCoord(entry),\n lineCoord = _this2$getTickLineCoo.line,\n tickCoord = _this2$getTickLineCoo.tick;\n var tickProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n textAnchor: textAnchor,\n verticalAnchor: verticalAnchor\n }, axisProps), {}, {\n stroke: 'none',\n fill: stroke\n }, customTickProps), tickCoord), {}, {\n index: i,\n payload: entry,\n visibleTicksCount: finalTicks.length,\n tickFormatter: tickFormatter\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-cartesian-axis-tick\",\n key: \"tick-\".concat(entry.value, \"-\").concat(entry.coordinate, \"-\").concat(entry.tickCoord)\n }, adaptEventsOfChild(_this2.props, entry, i)), tickLine && /*#__PURE__*/React.createElement(\"line\", _extends({}, tickLineProps, lineCoord, {\n className: clsx('recharts-cartesian-axis-tick-line', get(tickLine, 'className'))\n })), tick && CartesianAxis.renderTickItem(tick, tickProps, \"\".concat(isFunction(tickFormatter) ? tickFormatter(entry.value, i) : entry.value).concat(unit || '')));\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n var _this$props7 = this.props,\n axisLine = _this$props7.axisLine,\n width = _this$props7.width,\n height = _this$props7.height,\n ticksGenerator = _this$props7.ticksGenerator,\n className = _this$props7.className,\n hide = _this$props7.hide;\n if (hide) {\n return null;\n }\n var _this$props8 = this.props,\n ticks = _this$props8.ticks,\n noTicksProps = _objectWithoutProperties(_this$props8, _excluded3);\n var finalTicks = ticks;\n if (isFunction(ticksGenerator)) {\n finalTicks = ticks && ticks.length > 0 ? ticksGenerator(this.props) : ticksGenerator(noTicksProps);\n }\n if (width <= 0 || height <= 0 || !finalTicks || !finalTicks.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: clsx('recharts-cartesian-axis', className),\n ref: function ref(_ref2) {\n _this3.layerReference = _ref2;\n }\n }, axisLine && this.renderAxisLine(), this.renderTicks(finalTicks, this.state.fontSize, this.state.letterSpacing), Label.renderCallByParent(this.props));\n }\n }], [{\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n tickItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = /*#__PURE__*/React.createElement(Text, _extends({}, props, {\n className: \"recharts-cartesian-axis-tick-value\"\n }), value);\n }\n return tickItem;\n }\n }]);\n return CartesianAxis;\n}(Component);\n_defineProperty(CartesianAxis, \"displayName\", 'CartesianAxis');\n_defineProperty(CartesianAxis, \"defaultProps\", {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n viewBox: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n // The orientation of axis\n orientation: 'bottom',\n // The ticks\n ticks: [],\n stroke: '#666',\n tickLine: true,\n axisLine: true,\n tick: true,\n mirror: false,\n minTickGap: 5,\n // The width or height of tick\n tickSize: 6,\n tickMargin: 2,\n interval: 'preserveEnd'\n});","var _excluded = [\"x1\", \"y1\", \"x2\", \"y2\", \"key\"],\n _excluded2 = [\"offset\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/**\n * @fileOverview Cartesian Grid\n */\nimport React from 'react';\nimport isFunction from 'lodash/isFunction';\nimport { warn } from '../util/LogUtils';\nimport { isNumber } from '../util/DataUtils';\nimport { filterProps } from '../util/ReactUtils';\nimport { getCoordinatesOfGrid, getTicksOfAxis } from '../util/ChartUtils';\nimport { getTicks } from './getTicks';\nimport { CartesianAxis } from './CartesianAxis';\nimport { useArbitraryXAxis, useChartHeight, useChartWidth, useOffset, useYAxisWithFiniteDomainOrRandom } from '../context/chartLayoutContext';\n\n/**\n * The = 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 _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview 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 function Line() {\n var _this;\n _classCallCheck(this, Line);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Line, [].concat(args));\n _defineProperty(_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, false);\n var customDotProps = filterProps(dot, true);\n var dots = points.map(function (entry, i) {\n var dotProps = _objectSpread(_objectSpread(_objectSpread({\n key: \"dot-\".concat(i),\n r: 3\n }, lineProps), customDotProps), {}, {\n value: entry.value,\n dataKey: dataKey,\n cx: entry.x,\n cy: entry.y,\n index: i,\n payload: entry.payload\n });\n return Line.renderDotItem(dot, dotProps);\n });\n var dotsProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipDot ? '' : 'dots-').concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-line-dots\",\n key: \"dots\"\n }, dotsProps), dots);\n }\n }, {\n key: \"renderCurveStatically\",\n value: function renderCurveStatically(points, needClip, clipPathId, props) {\n var _this$props3 = this.props,\n type = _this$props3.type,\n layout = _this$props3.layout,\n connectNulls = _this$props3.connectNulls,\n ref = _this$props3.ref,\n others = _objectWithoutProperties(_this$props3, _excluded);\n var curveProps = _objectSpread(_objectSpread(_objectSpread({}, filterProps(others, true)), {}, {\n fill: 'none',\n className: 'recharts-line-curve',\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null,\n points: points\n }, props), {}, {\n type: type,\n layout: layout,\n connectNulls: connectNulls\n });\n return /*#__PURE__*/React.createElement(Curve, _extends({}, curveProps, {\n pathRef: this.pathRef\n }));\n }\n }, {\n key: \"renderCurveWithAnimation\",\n value: function renderCurveWithAnimation(needClip, clipPathId) {\n var _this2 = this;\n var _this$props4 = this.props,\n points = _this$props4.points,\n strokeDasharray = _this$props4.strokeDasharray,\n isAnimationActive = _this$props4.isAnimationActive,\n animationBegin = _this$props4.animationBegin,\n animationDuration = _this$props4.animationDuration,\n animationEasing = _this$props4.animationEasing,\n animationId = _this$props4.animationId,\n animateNewValues = _this$props4.animateNewValues,\n width = _this$props4.width,\n height = _this$props4.height;\n var _this$state = this.state,\n prevPoints = _this$state.prevPoints,\n totalLength = _this$state.totalLength;\n return /*#__PURE__*/React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"line-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n if (prevPoints) {\n var prevPointsDiffFactor = prevPoints.length / points.length;\n var stepData = points.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n if (prevPoints[prevPointIndex]) {\n var prev = prevPoints[prevPointIndex];\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n }\n\n // magic number of faking previous x and y location\n if (animateNewValues) {\n var _interpolatorX = interpolateNumber(width * 2, entry.x);\n var _interpolatorY = interpolateNumber(height / 2, entry.y);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: _interpolatorX(t),\n y: _interpolatorY(t)\n });\n }\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: entry.x,\n y: entry.y\n });\n });\n return _this2.renderCurveStatically(stepData, needClip, clipPathId);\n }\n var interpolator = interpolateNumber(0, totalLength);\n var curLength = interpolator(t);\n var currentStrokeDasharray;\n if (strokeDasharray) {\n var lines = \"\".concat(strokeDasharray).split(/[,\\s]+/gim).map(function (num) {\n return parseFloat(num);\n });\n currentStrokeDasharray = _this2.getStrokeDasharray(curLength, totalLength, lines);\n } else {\n currentStrokeDasharray = _this2.generateSimpleStrokeDasharray(totalLength, curLength);\n }\n return _this2.renderCurveStatically(points, needClip, clipPathId, {\n strokeDasharray: currentStrokeDasharray\n });\n });\n }\n }, {\n key: \"renderCurve\",\n value: function renderCurve(needClip, clipPathId) {\n var _this$props5 = this.props,\n points = _this$props5.points,\n isAnimationActive = _this$props5.isAnimationActive;\n var _this$state2 = this.state,\n prevPoints = _this$state2.prevPoints,\n totalLength = _this$state2.totalLength;\n if (isAnimationActive && points && points.length && (!prevPoints && totalLength > 0 || !isEqual(prevPoints, points))) {\n return this.renderCurveWithAnimation(needClip, clipPathId);\n }\n return this.renderCurveStatically(points, needClip, clipPathId);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _filterProps;\n var _this$props6 = this.props,\n hide = _this$props6.hide,\n dot = _this$props6.dot,\n points = _this$props6.points,\n className = _this$props6.className,\n xAxis = _this$props6.xAxis,\n yAxis = _this$props6.yAxis,\n top = _this$props6.top,\n left = _this$props6.left,\n width = _this$props6.width,\n height = _this$props6.height,\n isAnimationActive = _this$props6.isAnimationActive,\n id = _this$props6.id;\n if (hide || !points || !points.length) {\n return null;\n }\n var isAnimationFinished = this.state.isAnimationFinished;\n var hasSinglePoint = points.length === 1;\n var layerClass = clsx('recharts-line', className);\n var needClipX = xAxis && xAxis.allowDataOverflow;\n var needClipY = yAxis && yAxis.allowDataOverflow;\n var needClip = needClipX || needClipY;\n var clipPathId = isNil(id) ? this.id : id;\n var _ref2 = (_filterProps = filterProps(dot, false)) !== null && _filterProps !== void 0 ? _filterProps : {\n r: 3,\n strokeWidth: 2\n },\n _ref2$r = _ref2.r,\n r = _ref2$r === void 0 ? 3 : _ref2$r,\n _ref2$strokeWidth = _ref2.strokeWidth,\n strokeWidth = _ref2$strokeWidth === void 0 ? 2 : _ref2$strokeWidth;\n var _ref3 = 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', typeof option !== 'boolean' ? 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});","var _excluded = [\"layout\", \"type\", \"stroke\", \"connectNulls\", \"isRange\", \"ref\"];\nvar _Area;\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Area\n */\nimport React, { PureComponent } from 'react';\nimport clsx from 'clsx';\nimport Animate from 'react-smooth';\nimport isFunction from 'lodash/isFunction';\nimport max from 'lodash/max';\nimport isNil from 'lodash/isNil';\nimport isNan from 'lodash/isNaN';\nimport isEqual from 'lodash/isEqual';\nimport { Curve } from '../shape/Curve';\nimport { Dot } from '../shape/Dot';\nimport { Layer } from '../container/Layer';\nimport { LabelList } from '../component/LabelList';\nimport { Global } from '../util/Global';\nimport { isNumber, uniqueId, interpolateNumber } from '../util/DataUtils';\nimport { getCateCoordinateOfLine, getValueByDataKey } from '../util/ChartUtils';\nimport { filterProps, isDotProps } from '../util/ReactUtils';\nexport var Area = /*#__PURE__*/function (_PureComponent) {\n _inherits(Area, _PureComponent);\n function Area() {\n var _this;\n _classCallCheck(this, Area);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Area, [].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isAnimationFinished: true\n });\n _defineProperty(_assertThisInitialized(_this), \"id\", uniqueId('recharts-area-'));\n _defineProperty(_assertThisInitialized(_this), \"handleAnimationEnd\", function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n _this.setState({\n isAnimationFinished: true\n });\n if (isFunction(onAnimationEnd)) {\n onAnimationEnd();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleAnimationStart\", function () {\n var onAnimationStart = _this.props.onAnimationStart;\n _this.setState({\n isAnimationFinished: false\n });\n if (isFunction(onAnimationStart)) {\n onAnimationStart();\n }\n });\n return _this;\n }\n _createClass(Area, [{\n key: \"renderDots\",\n value: function renderDots(needClip, clipDot, clipPathId) {\n var isAnimationActive = this.props.isAnimationActive;\n var isAnimationFinished = this.state.isAnimationFinished;\n if (isAnimationActive && !isAnimationFinished) {\n return null;\n }\n var _this$props = this.props,\n dot = _this$props.dot,\n points = _this$props.points,\n dataKey = _this$props.dataKey;\n var areaProps = filterProps(this.props, false);\n var customDotProps = filterProps(dot, true);\n var dots = points.map(function (entry, i) {\n var dotProps = _objectSpread(_objectSpread(_objectSpread({\n key: \"dot-\".concat(i),\n r: 3\n }, areaProps), customDotProps), {}, {\n index: i,\n cx: entry.x,\n cy: entry.y,\n dataKey: dataKey,\n value: entry.value,\n payload: entry.payload,\n points: points\n });\n return Area.renderDotItem(dot, dotProps);\n });\n var dotsProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipDot ? '' : 'dots-').concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-area-dots\"\n }, dotsProps), dots);\n }\n }, {\n key: \"renderHorizontalRect\",\n value: function renderHorizontalRect(alpha) {\n var _this$props2 = this.props,\n baseLine = _this$props2.baseLine,\n points = _this$props2.points,\n strokeWidth = _this$props2.strokeWidth;\n var startX = points[0].x;\n var endX = points[points.length - 1].x;\n var width = alpha * Math.abs(startX - endX);\n var maxY = max(points.map(function (entry) {\n return entry.y || 0;\n }));\n if (isNumber(baseLine) && typeof baseLine === 'number') {\n maxY = Math.max(baseLine, maxY);\n } else if (baseLine && Array.isArray(baseLine) && baseLine.length) {\n maxY = Math.max(max(baseLine.map(function (entry) {\n return entry.y || 0;\n })), maxY);\n }\n if (isNumber(maxY)) {\n return /*#__PURE__*/React.createElement(\"rect\", {\n x: startX < endX ? startX : startX - width,\n y: 0,\n width: width,\n height: Math.floor(maxY + (strokeWidth ? parseInt(\"\".concat(strokeWidth), 10) : 1))\n });\n }\n return null;\n }\n }, {\n key: \"renderVerticalRect\",\n value: function renderVerticalRect(alpha) {\n var _this$props3 = this.props,\n baseLine = _this$props3.baseLine,\n points = _this$props3.points,\n strokeWidth = _this$props3.strokeWidth;\n var startY = points[0].y;\n var endY = points[points.length - 1].y;\n var height = alpha * Math.abs(startY - endY);\n var maxX = max(points.map(function (entry) {\n return entry.x || 0;\n }));\n if (isNumber(baseLine) && typeof baseLine === 'number') {\n maxX = Math.max(baseLine, maxX);\n } else if (baseLine && Array.isArray(baseLine) && baseLine.length) {\n maxX = Math.max(max(baseLine.map(function (entry) {\n return entry.x || 0;\n })), maxX);\n }\n if (isNumber(maxX)) {\n return /*#__PURE__*/React.createElement(\"rect\", {\n x: 0,\n y: startY < endY ? startY : startY - height,\n width: maxX + (strokeWidth ? parseInt(\"\".concat(strokeWidth), 10) : 1),\n height: Math.floor(height)\n });\n }\n return null;\n }\n }, {\n key: \"renderClipRect\",\n value: function renderClipRect(alpha) {\n var layout = this.props.layout;\n if (layout === 'vertical') {\n return this.renderVerticalRect(alpha);\n }\n return this.renderHorizontalRect(alpha);\n }\n }, {\n key: \"renderAreaStatically\",\n value: function renderAreaStatically(points, baseLine, needClip, clipPathId) {\n var _this$props4 = this.props,\n layout = _this$props4.layout,\n type = _this$props4.type,\n stroke = _this$props4.stroke,\n connectNulls = _this$props4.connectNulls,\n isRange = _this$props4.isRange,\n ref = _this$props4.ref,\n others = _objectWithoutProperties(_this$props4, _excluded);\n return /*#__PURE__*/React.createElement(Layer, {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n }, /*#__PURE__*/React.createElement(Curve, _extends({}, filterProps(others, true), {\n points: points,\n connectNulls: connectNulls,\n type: type,\n baseLine: baseLine,\n layout: layout,\n stroke: \"none\",\n className: \"recharts-area-area\"\n })), stroke !== 'none' && /*#__PURE__*/React.createElement(Curve, _extends({}, filterProps(this.props, false), {\n className: \"recharts-area-curve\",\n layout: layout,\n type: type,\n connectNulls: connectNulls,\n fill: \"none\",\n points: points\n })), stroke !== 'none' && isRange && /*#__PURE__*/React.createElement(Curve, _extends({}, filterProps(this.props, false), {\n className: \"recharts-area-curve\",\n layout: layout,\n type: type,\n connectNulls: connectNulls,\n fill: \"none\",\n points: baseLine\n })));\n }\n }, {\n key: \"renderAreaWithAnimation\",\n value: function renderAreaWithAnimation(needClip, clipPathId) {\n var _this2 = this;\n var _this$props5 = this.props,\n points = _this$props5.points,\n baseLine = _this$props5.baseLine,\n isAnimationActive = _this$props5.isAnimationActive,\n animationBegin = _this$props5.animationBegin,\n animationDuration = _this$props5.animationDuration,\n animationEasing = _this$props5.animationEasing,\n animationId = _this$props5.animationId;\n var _this$state = this.state,\n prevPoints = _this$state.prevPoints,\n prevBaseLine = _this$state.prevBaseLine;\n // const clipPathId = isNil(id) ? this.id : id;\n\n return /*#__PURE__*/React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"area-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n if (prevPoints) {\n var prevPointsDiffFactor = prevPoints.length / points.length;\n // update animtaion\n var stepPoints = points.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n if (prevPoints[prevPointIndex]) {\n var prev = prevPoints[prevPointIndex];\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n }\n return entry;\n });\n var stepBaseLine;\n if (isNumber(baseLine) && typeof baseLine === 'number') {\n var interpolator = interpolateNumber(prevBaseLine, baseLine);\n stepBaseLine = interpolator(t);\n } else if (isNil(baseLine) || isNan(baseLine)) {\n var _interpolator = interpolateNumber(prevBaseLine, 0);\n stepBaseLine = _interpolator(t);\n } else {\n stepBaseLine = baseLine.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n if (prevBaseLine[prevPointIndex]) {\n var prev = prevBaseLine[prevPointIndex];\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n }\n return entry;\n });\n }\n return _this2.renderAreaStatically(stepPoints, stepBaseLine, needClip, clipPathId);\n }\n return /*#__PURE__*/React.createElement(Layer, null, /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"animationClipPath-\".concat(clipPathId)\n }, _this2.renderClipRect(t))), /*#__PURE__*/React.createElement(Layer, {\n clipPath: \"url(#animationClipPath-\".concat(clipPathId, \")\")\n }, _this2.renderAreaStatically(points, baseLine, needClip, clipPathId)));\n });\n }\n }, {\n key: \"renderArea\",\n value: function renderArea(needClip, clipPathId) {\n var _this$props6 = this.props,\n points = _this$props6.points,\n baseLine = _this$props6.baseLine,\n isAnimationActive = _this$props6.isAnimationActive;\n var _this$state2 = this.state,\n prevPoints = _this$state2.prevPoints,\n prevBaseLine = _this$state2.prevBaseLine,\n totalLength = _this$state2.totalLength;\n if (isAnimationActive && points && points.length && (!prevPoints && totalLength > 0 || !isEqual(prevPoints, points) || !isEqual(prevBaseLine, baseLine))) {\n return this.renderAreaWithAnimation(needClip, clipPathId);\n }\n return this.renderAreaStatically(points, baseLine, needClip, clipPathId);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _filterProps;\n var _this$props7 = this.props,\n hide = _this$props7.hide,\n dot = _this$props7.dot,\n points = _this$props7.points,\n className = _this$props7.className,\n top = _this$props7.top,\n left = _this$props7.left,\n xAxis = _this$props7.xAxis,\n yAxis = _this$props7.yAxis,\n width = _this$props7.width,\n height = _this$props7.height,\n isAnimationActive = _this$props7.isAnimationActive,\n id = _this$props7.id;\n if (hide || !points || !points.length) {\n return null;\n }\n var isAnimationFinished = this.state.isAnimationFinished;\n var hasSinglePoint = points.length === 1;\n var layerClass = clsx('recharts-area', className);\n var needClipX = xAxis && xAxis.allowDataOverflow;\n var needClipY = yAxis && yAxis.allowDataOverflow;\n var needClip = needClipX || needClipY;\n var clipPathId = isNil(id) ? this.id : id;\n var _ref2 = (_filterProps = filterProps(dot, false)) !== null && _filterProps !== void 0 ? _filterProps : {\n r: 3,\n strokeWidth: 2\n },\n _ref2$r = _ref2.r,\n r = _ref2$r === void 0 ? 3 : _ref2$r,\n _ref2$strokeWidth = _ref2.strokeWidth,\n strokeWidth = _ref2$strokeWidth === void 0 ? 2 : _ref2$strokeWidth;\n var _ref3 = 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.renderArea(needClip, clipPathId) : null, (dot || hasSinglePoint) && this.renderDots(needClip, clipDot, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, points));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curPoints: nextProps.points,\n curBaseLine: nextProps.baseLine,\n prevPoints: prevState.curPoints,\n prevBaseLine: prevState.curBaseLine\n };\n }\n if (nextProps.points !== prevState.curPoints || nextProps.baseLine !== prevState.curBaseLine) {\n return {\n curPoints: nextProps.points,\n curBaseLine: nextProps.baseLine\n };\n }\n return null;\n }\n }]);\n return Area;\n}(PureComponent);\n_Area = Area;\n_defineProperty(Area, \"displayName\", 'Area');\n_defineProperty(Area, \"defaultProps\", {\n stroke: '#3182bd',\n fill: '#3182bd',\n fillOpacity: 0.6,\n xAxisId: 0,\n yAxisId: 0,\n legendType: 'line',\n connectNulls: false,\n // points of area\n points: [],\n dot: false,\n activeDot: true,\n hide: false,\n isAnimationActive: !Global.isSsr,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n});\n_defineProperty(Area, \"getBaseValue\", function (props, item, xAxis, yAxis) {\n var layout = props.layout,\n chartBaseValue = props.baseValue;\n var itemBaseValue = item.props.baseValue;\n\n // The baseValue can be defined both on the AreaChart as well as on the Area.\n // The value for the item takes precedence.\n var baseValue = itemBaseValue !== null && itemBaseValue !== void 0 ? itemBaseValue : chartBaseValue;\n if (isNumber(baseValue) && typeof baseValue === 'number') {\n return baseValue;\n }\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n var domain = numericAxis.scale.domain();\n if (numericAxis.type === 'number') {\n var domainMax = Math.max(domain[0], domain[1]);\n var domainMin = Math.min(domain[0], domain[1]);\n if (baseValue === 'dataMin') {\n return domainMin;\n }\n if (baseValue === 'dataMax') {\n return domainMax;\n }\n return domainMax < 0 ? domainMax : Math.max(Math.min(domain[0], domain[1]), 0);\n }\n if (baseValue === 'dataMin') {\n return domain[0];\n }\n if (baseValue === 'dataMax') {\n return domain[1];\n }\n return domain[0];\n});\n_defineProperty(Area, \"getComposedData\", function (_ref4) {\n var props = _ref4.props,\n item = _ref4.item,\n xAxis = _ref4.xAxis,\n yAxis = _ref4.yAxis,\n xAxisTicks = _ref4.xAxisTicks,\n yAxisTicks = _ref4.yAxisTicks,\n bandSize = _ref4.bandSize,\n dataKey = _ref4.dataKey,\n stackedData = _ref4.stackedData,\n dataStartIndex = _ref4.dataStartIndex,\n displayedData = _ref4.displayedData,\n offset = _ref4.offset;\n var layout = props.layout;\n var hasStack = stackedData && stackedData.length;\n var baseValue = _Area.getBaseValue(props, item, xAxis, yAxis);\n var isHorizontalLayout = layout === 'horizontal';\n var isRange = false;\n var points = displayedData.map(function (entry, index) {\n var value;\n if (hasStack) {\n value = stackedData[dataStartIndex + index];\n } else {\n value = getValueByDataKey(entry, dataKey);\n if (!Array.isArray(value)) {\n value = [baseValue, value];\n } else {\n isRange = true;\n }\n }\n var isBreakPoint = value[1] == null || hasStack && getValueByDataKey(entry, dataKey) == null;\n if (isHorizontalLayout) {\n return {\n x: getCateCoordinateOfLine({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n y: isBreakPoint ? null : yAxis.scale(value[1]),\n value: value,\n payload: entry\n };\n }\n return {\n x: isBreakPoint ? null : xAxis.scale(value[1]),\n y: getCateCoordinateOfLine({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n value: value,\n payload: entry\n };\n });\n var baseLine;\n if (hasStack || isRange) {\n baseLine = points.map(function (entry) {\n var x = Array.isArray(entry.value) ? entry.value[0] : null;\n if (isHorizontalLayout) {\n return {\n x: entry.x,\n y: x != null && entry.y != null ? yAxis.scale(x) : null\n };\n }\n return {\n x: x != null ? xAxis.scale(x) : null,\n y: entry.y\n };\n });\n } else {\n baseLine = isHorizontalLayout ? yAxis.scale(baseValue) : xAxis.scale(baseValue);\n }\n return _objectSpread({\n points: points,\n baseLine: baseLine,\n layout: layout,\n isRange: isRange\n }, offset);\n});\n_defineProperty(Area, \"renderDotItem\", function (option, props) {\n var dotItem;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n dotItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (isFunction(option)) {\n dotItem = option(props);\n } else {\n var className = clsx('recharts-area-dot', typeof option !== 'boolean' ? option.className : '');\n dotItem = /*#__PURE__*/React.createElement(Dot, _extends({}, props, {\n className: className\n }));\n }\n return dotItem;\n});","/**\n * @fileOverview Z Axis\n */\n\nexport var ZAxis = function ZAxis() {\n return null;\n};\nZAxis.displayName = 'ZAxis';\nZAxis.defaultProps = {\n zAxisId: 0,\n range: [64, 64],\n scale: 'auto',\n type: 'number'\n};","var _excluded = [\"option\", \"isActive\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport { Symbols } from '../shape/Symbols';\nimport { Shape } from './ActiveShapeUtils';\nexport function ScatterSymbol(_ref) {\n var option = _ref.option,\n isActive = _ref.isActive,\n props = _objectWithoutProperties(_ref, _excluded);\n if (typeof option === 'string') {\n return /*#__PURE__*/React.createElement(Shape, _extends({\n option: /*#__PURE__*/React.createElement(Symbols, _extends({\n type: option\n }, props)),\n isActive: isActive,\n shapeType: \"symbols\"\n }, props));\n }\n return /*#__PURE__*/React.createElement(Shape, _extends({\n option: option,\n isActive: isActive,\n shapeType: \"symbols\"\n }, props));\n}","var _Scatter;\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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @fileOverview Render a group of scatters\n */\nimport React, { PureComponent } from 'react';\nimport Animate from 'react-smooth';\nimport isNil from 'lodash/isNil';\nimport isEqual from 'lodash/isEqual';\nimport isFunction from 'lodash/isFunction';\nimport clsx from 'clsx';\nimport { Layer } from '../container/Layer';\nimport { LabelList } from '../component/LabelList';\nimport { findAllByType, filterProps } from '../util/ReactUtils';\nimport { Global } from '../util/Global';\nimport { ZAxis } from './ZAxis';\nimport { Curve } from '../shape/Curve';\nimport { ErrorBar } from './ErrorBar';\nimport { Cell } from '../component/Cell';\nimport { uniqueId, interpolateNumber, getLinearRegression } from '../util/DataUtils';\nimport { getValueByDataKey, getCateCoordinateOfLine } from '../util/ChartUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { ScatterSymbol } from '../util/ScatterUtils';\nexport var Scatter = /*#__PURE__*/function (_PureComponent) {\n _inherits(Scatter, _PureComponent);\n function Scatter() {\n var _this;\n _classCallCheck(this, Scatter);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _callSuper(this, Scatter, [].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isAnimationFinished: false\n });\n _defineProperty(_assertThisInitialized(_this), \"handleAnimationEnd\", function () {\n _this.setState({\n isAnimationFinished: true\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"handleAnimationStart\", function () {\n _this.setState({\n isAnimationFinished: false\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"id\", uniqueId('recharts-scatter-'));\n return _this;\n }\n _createClass(Scatter, [{\n key: \"renderSymbolsStatically\",\n value: function renderSymbolsStatically(points) {\n var _this2 = this;\n var _this$props = this.props,\n shape = _this$props.shape,\n activeShape = _this$props.activeShape,\n activeIndex = _this$props.activeIndex;\n var baseProps = filterProps(this.props, false);\n return points.map(function (entry, i) {\n var isActive = activeIndex === i;\n var option = isActive ? activeShape : shape;\n var props = _objectSpread(_objectSpread({\n key: \"symbol-\".concat(i)\n }, baseProps), entry);\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-scatter-symbol\"\n }, adaptEventsOfChild(_this2.props, entry, i), {\n // eslint-disable-next-line react/no-array-index-key\n key: \"symbol-\".concat(entry === null || entry === void 0 ? void 0 : entry.cx, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.cy, \"-\").concat(entry === null || entry === void 0 ? void 0 : entry.size, \"-\").concat(i),\n role: \"img\"\n }), /*#__PURE__*/React.createElement(ScatterSymbol, _extends({\n option: option,\n isActive: isActive\n }, props)));\n });\n }\n }, {\n key: \"renderSymbolsWithAnimation\",\n value: function renderSymbolsWithAnimation() {\n var _this3 = this;\n var _this$props2 = this.props,\n points = _this$props2.points,\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 prevPoints = this.state.prevPoints;\n return /*#__PURE__*/React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"pie-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n var stepData = points.map(function (entry, index) {\n var prev = prevPoints && prevPoints[index];\n if (prev) {\n var interpolatorCx = interpolateNumber(prev.cx, entry.cx);\n var interpolatorCy = interpolateNumber(prev.cy, entry.cy);\n var interpolatorSize = interpolateNumber(prev.size, entry.size);\n return _objectSpread(_objectSpread({}, entry), {}, {\n cx: interpolatorCx(t),\n cy: interpolatorCy(t),\n size: interpolatorSize(t)\n });\n }\n var interpolator = interpolateNumber(0, entry.size);\n return _objectSpread(_objectSpread({}, entry), {}, {\n size: interpolator(t)\n });\n });\n return /*#__PURE__*/React.createElement(Layer, null, _this3.renderSymbolsStatically(stepData));\n });\n }\n }, {\n key: \"renderSymbols\",\n value: function renderSymbols() {\n var _this$props3 = this.props,\n points = _this$props3.points,\n isAnimationActive = _this$props3.isAnimationActive;\n var prevPoints = this.state.prevPoints;\n if (isAnimationActive && points && points.length && (!prevPoints || !isEqual(prevPoints, points))) {\n return this.renderSymbolsWithAnimation();\n }\n return this.renderSymbolsStatically(points);\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar() {\n var isAnimationActive = this.props.isAnimationActive;\n if (isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n var _this$props4 = this.props,\n points = _this$props4.points,\n xAxis = _this$props4.xAxis,\n yAxis = _this$props4.yAxis,\n children = _this$props4.children;\n var errorBarItems = findAllByType(children, ErrorBar);\n if (!errorBarItems) {\n return null;\n }\n return errorBarItems.map(function (item, i) {\n var _item$props = item.props,\n direction = _item$props.direction,\n errorDataKey = _item$props.dataKey;\n return /*#__PURE__*/React.cloneElement(item, {\n key: \"\".concat(direction, \"-\").concat(errorDataKey, \"-\").concat(points[i]),\n data: points,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: direction === 'x' ? 'vertical' : 'horizontal',\n dataPointFormatter: function dataPointFormatter(dataPoint, dataKey) {\n return {\n x: dataPoint.cx,\n y: dataPoint.cy,\n value: direction === 'x' ? +dataPoint.node.x : +dataPoint.node.y,\n errorVal: getValueByDataKey(dataPoint, dataKey)\n };\n }\n });\n });\n }\n }, {\n key: \"renderLine\",\n value: function renderLine() {\n var _this$props5 = this.props,\n points = _this$props5.points,\n line = _this$props5.line,\n lineType = _this$props5.lineType,\n lineJointType = _this$props5.lineJointType;\n var scatterProps = filterProps(this.props, false);\n var customLineProps = filterProps(line, false);\n var linePoints, lineItem;\n if (lineType === 'joint') {\n linePoints = points.map(function (entry) {\n return {\n x: entry.cx,\n y: entry.cy\n };\n });\n } else if (lineType === 'fitting') {\n var _getLinearRegression = getLinearRegression(points),\n xmin = _getLinearRegression.xmin,\n xmax = _getLinearRegression.xmax,\n a = _getLinearRegression.a,\n b = _getLinearRegression.b;\n var linearExp = function linearExp(x) {\n return a * x + b;\n };\n linePoints = [{\n x: xmin,\n y: linearExp(xmin)\n }, {\n x: xmax,\n y: linearExp(xmax)\n }];\n }\n var lineProps = _objectSpread(_objectSpread(_objectSpread({}, scatterProps), {}, {\n fill: 'none',\n stroke: scatterProps && scatterProps.fill\n }, customLineProps), {}, {\n points: linePoints\n });\n if ( /*#__PURE__*/React.isValidElement(line)) {\n lineItem = /*#__PURE__*/React.cloneElement(line, lineProps);\n } else if (isFunction(line)) {\n lineItem = line(lineProps);\n } else {\n lineItem = /*#__PURE__*/React.createElement(Curve, _extends({}, lineProps, {\n type: lineJointType\n }));\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-scatter-line\",\n key: \"recharts-scatter-line\"\n }, lineItem);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props6 = this.props,\n hide = _this$props6.hide,\n points = _this$props6.points,\n line = _this$props6.line,\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 id = _this$props6.id,\n isAnimationActive = _this$props6.isAnimationActive;\n if (hide || !points || !points.length) {\n return null;\n }\n var isAnimationFinished = this.state.isAnimationFinished;\n var layerClass = clsx('recharts-scatter', 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 clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\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, line && this.renderLine(), this.renderErrorBar(), /*#__PURE__*/React.createElement(Layer, {\n key: \"recharts-scatter-symbols\"\n }, this.renderSymbols()), (!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 return Scatter;\n}(PureComponent);\n_Scatter = Scatter;\n_defineProperty(Scatter, \"displayName\", 'Scatter');\n_defineProperty(Scatter, \"defaultProps\", {\n xAxisId: 0,\n yAxisId: 0,\n zAxisId: 0,\n legendType: 'circle',\n lineType: 'joint',\n lineJointType: 'linear',\n data: [],\n shape: 'circle',\n hide: false,\n isAnimationActive: !Global.isSsr,\n animationBegin: 0,\n animationDuration: 400,\n animationEasing: 'linear'\n});\n/**\n * Compose the data of each group\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(Scatter, \"getComposedData\", function (_ref2) {\n var xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n zAxis = _ref2.zAxis,\n item = _ref2.item,\n displayedData = _ref2.displayedData,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n offset = _ref2.offset;\n var tooltipType = item.props.tooltipType;\n var cells = findAllByType(item.props.children, Cell);\n var xAxisDataKey = isNil(xAxis.dataKey) ? item.props.dataKey : xAxis.dataKey;\n var yAxisDataKey = isNil(yAxis.dataKey) ? item.props.dataKey : yAxis.dataKey;\n var zAxisDataKey = zAxis && zAxis.dataKey;\n var defaultRangeZ = zAxis ? zAxis.range : ZAxis.defaultProps.range;\n var defaultZ = defaultRangeZ && defaultRangeZ[0];\n var xBandSize = xAxis.scale.bandwidth ? xAxis.scale.bandwidth() : 0;\n var yBandSize = yAxis.scale.bandwidth ? yAxis.scale.bandwidth() : 0;\n var points = displayedData.map(function (entry, index) {\n var x = getValueByDataKey(entry, xAxisDataKey);\n var y = getValueByDataKey(entry, yAxisDataKey);\n var z = !isNil(zAxisDataKey) && getValueByDataKey(entry, zAxisDataKey) || '-';\n var tooltipPayload = [{\n name: isNil(xAxis.dataKey) ? item.props.name : xAxis.name || xAxis.dataKey,\n unit: xAxis.unit || '',\n value: x,\n payload: entry,\n dataKey: xAxisDataKey,\n type: tooltipType\n }, {\n name: isNil(yAxis.dataKey) ? item.props.name : yAxis.name || yAxis.dataKey,\n unit: yAxis.unit || '',\n value: y,\n payload: entry,\n dataKey: yAxisDataKey,\n type: tooltipType\n }];\n if (z !== '-') {\n tooltipPayload.push({\n name: zAxis.name || zAxis.dataKey,\n unit: zAxis.unit || '',\n value: z,\n payload: entry,\n dataKey: zAxisDataKey,\n type: tooltipType\n });\n }\n var cx = getCateCoordinateOfLine({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: xBandSize,\n entry: entry,\n index: index,\n dataKey: xAxisDataKey\n });\n var cy = getCateCoordinateOfLine({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: yBandSize,\n entry: entry,\n index: index,\n dataKey: yAxisDataKey\n });\n var size = z !== '-' ? zAxis.scale(z) : defaultZ;\n var radius = Math.sqrt(Math.max(size, 0) / Math.PI);\n return _objectSpread(_objectSpread({}, entry), {}, {\n cx: cx,\n cy: cy,\n x: cx - radius,\n y: cy - radius,\n xAxis: xAxis,\n yAxis: yAxis,\n zAxis: zAxis,\n width: 2 * radius,\n height: 2 * radius,\n size: size,\n node: {\n x: x,\n y: y,\n z: z\n },\n tooltipPayload: tooltipPayload,\n tooltipPosition: {\n x: cx,\n y: cy\n },\n payload: entry\n }, cells && cells[index] && cells[index].props);\n });\n return _objectSpread({\n points: points\n }, offset);\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 X Axis\n */\n\nimport React from 'react';\nimport clsx from 'clsx';\nimport { useChartHeight, useChartWidth, useXAxisOrThrow } from '../context/chartLayoutContext';\nimport { CartesianAxis } from './CartesianAxis';\nimport { getTicksOfAxis } from '../util/ChartUtils';\n\n/** Define of XAxis props */\n\nexport var XAxis = function XAxis(_ref) {\n var xAxisId = _ref.xAxisId;\n var width = useChartWidth();\n var height = useChartHeight();\n var axisOptions = useXAxisOrThrow(xAxisId);\n if (axisOptions == null) {\n return null;\n }\n return (\n /*#__PURE__*/\n // @ts-expect-error the axisOptions type is not exactly what CartesianAxis is expecting.\n React.createElement(CartesianAxis, _extends({}, axisOptions, {\n className: clsx(\"recharts-\".concat(axisOptions.axisType, \" \").concat(axisOptions.axisType), axisOptions.className),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n ticksGenerator: function ticksGenerator(axis) {\n return getTicksOfAxis(axis, true);\n }\n }))\n );\n};\nXAxis.displayName = 'XAxis';\nXAxis.defaultProps = {\n allowDecimals: true,\n hide: false,\n orientation: 'bottom',\n width: 0,\n height: 30,\n mirror: false,\n xAxisId: 0,\n tickCount: 5,\n type: 'category',\n padding: {\n left: 0,\n right: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false,\n allowDuplicatedCategory: true\n};","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/**\n * @fileOverview Y Axis\n */\nimport React from 'react';\nimport clsx from 'clsx';\nimport { useChartHeight, useChartWidth, useYAxisOrThrow } from '../context/chartLayoutContext';\nimport { CartesianAxis } from './CartesianAxis';\nimport { getTicksOfAxis } from '../util/ChartUtils';\nexport var YAxis = function YAxis(_ref) {\n var yAxisId = _ref.yAxisId;\n var width = useChartWidth();\n var height = useChartHeight();\n var axisOptions = useYAxisOrThrow(yAxisId);\n if (axisOptions == null) {\n return null;\n }\n return (\n /*#__PURE__*/\n // @ts-expect-error the axisOptions type is not exactly what CartesianAxis is expecting.\n React.createElement(CartesianAxis, _extends({}, axisOptions, {\n className: clsx(\"recharts-\".concat(axisOptions.axisType, \" \").concat(axisOptions.axisType), axisOptions.className),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n ticksGenerator: function ticksGenerator(axis) {\n return getTicksOfAxis(axis, true);\n }\n }))\n );\n};\nYAxis.displayName = 'YAxis';\nYAxis.defaultProps = {\n allowDuplicatedCategory: true,\n allowDecimals: true,\n hide: false,\n orientation: 'left',\n width: 60,\n height: 0,\n mirror: false,\n yAxisId: 0,\n tickCount: 5,\n type: 'number',\n padding: {\n top: 0,\n bottom: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false\n};","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};","'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","import EventEmitter from 'eventemitter3';\nvar eventCenter = new EventEmitter();\nexport { eventCenter };\nexport var SYNC_EVENT = 'recharts.syncMouseEvents';","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nexport var AccessibilityManager = /*#__PURE__*/function () {\n function AccessibilityManager() {\n _classCallCheck(this, AccessibilityManager);\n _defineProperty(this, \"activeIndex\", 0);\n _defineProperty(this, \"coordinateList\", []);\n _defineProperty(this, \"layout\", 'horizontal');\n }\n _createClass(AccessibilityManager, [{\n key: \"setDetails\",\n value: function setDetails(_ref) {\n var _ref2;\n var _ref$coordinateList = _ref.coordinateList,\n coordinateList = _ref$coordinateList === void 0 ? null : _ref$coordinateList,\n _ref$container = _ref.container,\n container = _ref$container === void 0 ? null : _ref$container,\n _ref$layout = _ref.layout,\n layout = _ref$layout === void 0 ? null : _ref$layout,\n _ref$offset = _ref.offset,\n offset = _ref$offset === void 0 ? null : _ref$offset,\n _ref$mouseHandlerCall = _ref.mouseHandlerCallback,\n mouseHandlerCallback = _ref$mouseHandlerCall === void 0 ? null : _ref$mouseHandlerCall;\n this.coordinateList = (_ref2 = coordinateList !== null && coordinateList !== void 0 ? coordinateList : this.coordinateList) !== null && _ref2 !== void 0 ? _ref2 : [];\n this.container = container !== null && container !== void 0 ? container : this.container;\n this.layout = layout !== null && layout !== void 0 ? layout : this.layout;\n this.offset = offset !== null && offset !== void 0 ? offset : this.offset;\n this.mouseHandlerCallback = mouseHandlerCallback !== null && mouseHandlerCallback !== void 0 ? mouseHandlerCallback : this.mouseHandlerCallback;\n\n // Keep activeIndex in the bounds between 0 and the last coordinate index\n this.activeIndex = Math.min(Math.max(this.activeIndex, 0), this.coordinateList.length - 1);\n }\n }, {\n key: \"focus\",\n value: function focus() {\n this.spoofMouse();\n }\n }, {\n key: \"keyboardEvent\",\n value: function keyboardEvent(e) {\n // The AccessibilityManager relies on the Tooltip component. When tooltips suddenly stop existing,\n // it can cause errors. We use this function to check. We don't want arrow keys to be processed\n // if there are no tooltips, since that will cause unexpected behavior of users.\n if (this.coordinateList.length === 0) {\n return;\n }\n switch (e.key) {\n case 'ArrowRight':\n {\n if (this.layout !== 'horizontal') {\n return;\n }\n this.activeIndex = Math.min(this.activeIndex + 1, this.coordinateList.length - 1);\n this.spoofMouse();\n break;\n }\n case 'ArrowLeft':\n {\n if (this.layout !== 'horizontal') {\n return;\n }\n this.activeIndex = Math.max(this.activeIndex - 1, 0);\n this.spoofMouse();\n break;\n }\n default:\n {\n break;\n }\n }\n }\n }, {\n key: \"setIndex\",\n value: function setIndex(newIndex) {\n this.activeIndex = newIndex;\n }\n }, {\n key: \"spoofMouse\",\n value: function spoofMouse() {\n var _window, _window2;\n if (this.layout !== 'horizontal') {\n return;\n }\n\n // This can happen when the tooltips suddenly stop existing as children of the component\n // That update doesn't otherwise fire events, so we have to double check here.\n if (this.coordinateList.length === 0) {\n return;\n }\n var _this$container$getBo = this.container.getBoundingClientRect(),\n x = _this$container$getBo.x,\n y = _this$container$getBo.y,\n height = _this$container$getBo.height;\n var coordinate = this.coordinateList[this.activeIndex].coordinate;\n var scrollOffsetX = ((_window = window) === null || _window === void 0 ? void 0 : _window.scrollX) || 0;\n var scrollOffsetY = ((_window2 = window) === null || _window2 === void 0 ? void 0 : _window2.scrollY) || 0;\n var pageX = x + coordinate + scrollOffsetX;\n var pageY = y + this.offset.top + height / 2 + scrollOffsetY;\n this.mouseHandlerCallback({\n pageX: pageX,\n pageY: pageY\n });\n }\n }]);\n return AccessibilityManager;\n}();","import { isNumber } from './DataUtils';\n/**\n * Takes a domain and user props to determine whether he provided the domain via props or if we need to calculate it.\n * @param {AxisDomain} domain The potential domain from props\n * @param {Boolean} allowDataOverflow from props\n * @param {String} axisType from props\n * @returns {Boolean} `true` if domain is specified by user\n */\nexport function isDomainSpecifiedByUser(domain, allowDataOverflow, axisType) {\n if (axisType === 'number' && allowDataOverflow === true && Array.isArray(domain)) {\n var domainStart = domain === null || domain === void 0 ? void 0 : domain[0];\n var domainEnd = domain === null || domain === void 0 ? void 0 : domain[1];\n\n /*\n * The `isNumber` check is needed because the user could also provide strings like \"dataMin\" via the domain props.\n * In such case, we have to compute the domain from the data.\n */\n if (!!domainStart && !!domainEnd && isNumber(domainStart) && isNumber(domainEnd)) {\n return true;\n }\n }\n return false;\n}","export function getCursorRectangle(layout, activeCoordinate, offset, tooltipAxisBandSize) {\n var halfSize = tooltipAxisBandSize / 2;\n return {\n stroke: 'none',\n fill: '#ccc',\n x: layout === 'horizontal' ? activeCoordinate.x - halfSize : offset.left + 0.5,\n y: layout === 'horizontal' ? offset.top + 0.5 : activeCoordinate.y - halfSize,\n width: layout === 'horizontal' ? tooltipAxisBandSize : offset.width - 1,\n height: layout === 'horizontal' ? offset.height - 1 : tooltipAxisBandSize\n };\n}","import { polarToCartesian } from '../PolarUtils';\n/**\n * Only applicable for radial layouts\n * @param {Object} activeCoordinate ChartCoordinate\n * @returns {Object} RadialCursorPoints\n */\nexport function getRadialCursorPoints(activeCoordinate) {\n var cx = activeCoordinate.cx,\n cy = activeCoordinate.cy,\n radius = activeCoordinate.radius,\n startAngle = activeCoordinate.startAngle,\n endAngle = activeCoordinate.endAngle;\n var startPoint = polarToCartesian(cx, cy, radius, startAngle);\n var endPoint = polarToCartesian(cx, cy, radius, endAngle);\n return {\n points: [startPoint, endPoint],\n cx: cx,\n cy: cy,\n radius: radius,\n startAngle: startAngle,\n endAngle: endAngle\n };\n}","import { polarToCartesian } from '../PolarUtils';\nimport { getRadialCursorPoints } from './getRadialCursorPoints';\nexport function getCursorPoints(layout, activeCoordinate, offset) {\n var x1, y1, x2, y2;\n if (layout === 'horizontal') {\n x1 = activeCoordinate.x;\n x2 = x1;\n y1 = offset.top;\n y2 = offset.top + offset.height;\n } else if (layout === 'vertical') {\n y1 = activeCoordinate.y;\n y2 = y1;\n x1 = offset.left;\n x2 = offset.left + offset.width;\n } else if (activeCoordinate.cx != null && activeCoordinate.cy != null) {\n if (layout === 'centric') {\n var cx = activeCoordinate.cx,\n cy = activeCoordinate.cy,\n innerRadius = activeCoordinate.innerRadius,\n outerRadius = activeCoordinate.outerRadius,\n angle = activeCoordinate.angle;\n var innerPoint = polarToCartesian(cx, cy, innerRadius, angle);\n var outerPoint = polarToCartesian(cx, cy, outerRadius, angle);\n x1 = innerPoint.x;\n y1 = innerPoint.y;\n x2 = outerPoint.x;\n y2 = outerPoint.y;\n } else {\n return getRadialCursorPoints(activeCoordinate);\n }\n }\n return [{\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n }];\n}","function _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport { cloneElement, createElement, isValidElement } from 'react';\nimport clsx from 'clsx';\nimport { Curve } from '../shape/Curve';\nimport { Cross } from '../shape/Cross';\nimport { getCursorRectangle } from '../util/cursor/getCursorRectangle';\nimport { Rectangle } from '../shape/Rectangle';\nimport { getRadialCursorPoints } from '../util/cursor/getRadialCursorPoints';\nimport { Sector } from '../shape/Sector';\nimport { getCursorPoints } from '../util/cursor/getCursorPoints';\nimport { filterProps } from '../util/ReactUtils';\n/*\n * Cursor is the background, or a highlight,\n * that shows when user mouses over or activates\n * an area.\n *\n * It usually shows together with a tooltip\n * to emphasise which part of the chart does the tooltip refer to.\n */\nexport function Cursor(props) {\n var element = props.element,\n tooltipEventType = props.tooltipEventType,\n isActive = props.isActive,\n activeCoordinate = props.activeCoordinate,\n activePayload = props.activePayload,\n offset = props.offset,\n activeTooltipIndex = props.activeTooltipIndex,\n tooltipAxisBandSize = props.tooltipAxisBandSize,\n layout = props.layout,\n chartName = props.chartName;\n if (!element || !element.props.cursor || !isActive || !activeCoordinate || chartName !== 'ScatterChart' && tooltipEventType !== 'axis') {\n return null;\n }\n var restProps;\n var cursorComp = Curve;\n if (chartName === 'ScatterChart') {\n restProps = activeCoordinate;\n cursorComp = Cross;\n } else if (chartName === 'BarChart') {\n restProps = getCursorRectangle(layout, activeCoordinate, offset, tooltipAxisBandSize);\n cursorComp = Rectangle;\n } else if (layout === 'radial') {\n var _getRadialCursorPoint = getRadialCursorPoints(activeCoordinate),\n cx = _getRadialCursorPoint.cx,\n cy = _getRadialCursorPoint.cy,\n radius = _getRadialCursorPoint.radius,\n startAngle = _getRadialCursorPoint.startAngle,\n endAngle = _getRadialCursorPoint.endAngle;\n restProps = {\n cx: cx,\n cy: cy,\n startAngle: startAngle,\n endAngle: endAngle,\n innerRadius: radius,\n outerRadius: radius\n };\n cursorComp = Sector;\n } else {\n restProps = {\n points: getCursorPoints(layout, activeCoordinate, offset)\n };\n cursorComp = Curve;\n }\n var cursorProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n stroke: '#ccc',\n pointerEvents: 'none'\n }, offset), restProps), filterProps(element.props.cursor, false)), {}, {\n payload: activePayload,\n payloadIndex: activeTooltipIndex,\n className: clsx('recharts-tooltip-cursor', element.props.cursor.className)\n });\n return /*#__PURE__*/isValidElement(element.props.cursor) ? /*#__PURE__*/cloneElement(element.props.cursor, cursorProps) : /*#__PURE__*/createElement(cursorComp, cursorProps);\n}","var _excluded = [\"item\"],\n _excluded2 = [\"children\", \"className\", \"width\", \"height\", \"style\", \"compact\", \"title\", \"desc\"];\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == _typeof(i) ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != _typeof(i)) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React, { Component, cloneElement, isValidElement } from 'react';\nimport isNil from 'lodash/isNil';\nimport isFunction from 'lodash/isFunction';\nimport range from 'lodash/range';\nimport get from 'lodash/get';\nimport sortBy from 'lodash/sortBy';\nimport throttle from 'lodash/throttle';\nimport clsx from 'clsx';\n// eslint-disable-next-line no-restricted-imports\n\nimport invariant from 'tiny-invariant';\nimport { Surface } from '../container/Surface';\nimport { Layer } from '../container/Layer';\nimport { Tooltip } from '../component/Tooltip';\nimport { Legend } from '../component/Legend';\nimport { Dot } from '../shape/Dot';\nimport { isInRectangle } from '../shape/Rectangle';\nimport { filterProps, findAllByType, findChildByType, getDisplayName, getReactEventByType, isChildrenEqual, parseChildIndex, renderByOrder, validateWidthHeight } from '../util/ReactUtils';\nimport { Brush } from '../cartesian/Brush';\nimport { getOffset } from '../util/DOMUtils';\nimport { findEntryInArray, getAnyElementOfObject, hasDuplicate, isNumber, uniqueId } from '../util/DataUtils';\nimport { appendOffsetOfLegend, calculateActiveTickIndex, combineEventHandlers, getBandSizeOfAxis, getBarPosition, getBarSizeList, getDomainOfDataByKey, getDomainOfItemsWithSameAxis, getDomainOfStackGroups, getLegendProps, getMainColorOfGraphicItem, getStackedDataOfItem, getStackGroupsByAxisId, getTicksOfAxis, getTooltipItem, isCategoricalAxis, parseDomainOfCategoryAxis, parseErrorBarsOfAxis, parseSpecifiedDomain } from '../util/ChartUtils';\nimport { detectReferenceElementsDomain } from '../util/DetectReferenceElementsDomain';\nimport { inRangeOfSector, polarToCartesian } from '../util/PolarUtils';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { eventCenter, SYNC_EVENT } from '../util/Events';\nimport { adaptEventHandlers } from '../util/types';\nimport { AccessibilityManager } from './AccessibilityManager';\nimport { isDomainSpecifiedByUser } from '../util/isDomainSpecifiedByUser';\nimport { getActiveShapeIndexForTooltip, isFunnel, isPie, isScatter } from '../util/ActiveShapeUtils';\nimport { Cursor } from '../component/Cursor';\nimport { ChartLayoutContextProvider } from '../context/chartLayoutContext';\nvar ORIENT_MAP = {\n xAxis: ['bottom', 'top'],\n yAxis: ['left', 'right']\n};\nvar FULL_WIDTH_AND_HEIGHT = {\n width: '100%',\n height: '100%'\n};\nvar originCoordinate = {\n x: 0,\n y: 0\n};\n\n/**\n * This function exists as a temporary workaround.\n *\n * Why? generateCategoricalChart does not render `{children}` directly;\n * instead it passes them through `renderByOrder` function which reads their handlers.\n *\n * So, this is a handler that does nothing.\n * Once we get rid of `renderByOrder` and switch to JSX only, we can get rid of this handler too.\n *\n * @param {JSX} element as is in JSX\n * @returns {JSX} the same element\n */\nfunction renderAsIs(element) {\n return element;\n}\nvar calculateTooltipPos = function calculateTooltipPos(rangeObj, layout) {\n if (layout === 'horizontal') {\n return rangeObj.x;\n }\n if (layout === 'vertical') {\n return rangeObj.y;\n }\n if (layout === 'centric') {\n return rangeObj.angle;\n }\n return rangeObj.radius;\n};\nvar getActiveCoordinate = function getActiveCoordinate(layout, tooltipTicks, activeIndex, rangeObj) {\n var entry = tooltipTicks.find(function (tick) {\n return tick && tick.index === activeIndex;\n });\n if (entry) {\n if (layout === 'horizontal') {\n return {\n x: entry.coordinate,\n y: rangeObj.y\n };\n }\n if (layout === 'vertical') {\n return {\n x: rangeObj.x,\n y: entry.coordinate\n };\n }\n if (layout === 'centric') {\n var _angle = entry.coordinate;\n var _radius = rangeObj.radius;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, _radius, _angle)), {}, {\n angle: _angle,\n radius: _radius\n });\n }\n var radius = entry.coordinate;\n var angle = rangeObj.angle;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, radius, angle)), {}, {\n angle: angle,\n radius: radius\n });\n }\n return originCoordinate;\n};\nvar getDisplayedData = function getDisplayedData(data, _ref) {\n var graphicalItems = _ref.graphicalItems,\n dataStartIndex = _ref.dataStartIndex,\n dataEndIndex = _ref.dataEndIndex;\n var itemsData = (graphicalItems !== null && graphicalItems !== void 0 ? graphicalItems : []).reduce(function (result, child) {\n var itemData = child.props.data;\n if (itemData && itemData.length) {\n return [].concat(_toConsumableArray(result), _toConsumableArray(itemData));\n }\n return result;\n }, []);\n if (itemsData.length > 0) {\n return itemsData;\n }\n if (data && data.length && isNumber(dataStartIndex) && isNumber(dataEndIndex)) {\n return data.slice(dataStartIndex, dataEndIndex + 1);\n }\n return [];\n};\nfunction getDefaultDomainByAxisType(axisType) {\n return axisType === 'number' ? [0, 'auto'] : undefined;\n}\n\n/**\n * Get the content to be displayed in the tooltip\n * @param {Object} state Current state\n * @param {Array} chartData The data defined in chart\n * @param {Number} activeIndex Active index of data\n * @param {String} activeLabel Active label of data\n * @return {Array} The content of tooltip\n */\nvar getTooltipContent = function getTooltipContent(state, chartData, activeIndex, activeLabel) {\n var graphicalItems = state.graphicalItems,\n tooltipAxis = state.tooltipAxis;\n var displayedData = getDisplayedData(chartData, state);\n if (activeIndex < 0 || !graphicalItems || !graphicalItems.length || activeIndex >= displayedData.length) {\n return null;\n }\n // get data by activeIndex when the axis don't allow duplicated category\n return graphicalItems.reduce(function (result, child) {\n var _child$props$data;\n /**\n * Fixes: https://github.com/recharts/recharts/issues/3669\n * Defaulting to chartData below to fix an edge case where the tooltip does not include data from all charts\n * when a separate dataset is passed to chart prop data and specified on Line/Area/etc prop data\n */\n var data = (_child$props$data = child.props.data) !== null && _child$props$data !== void 0 ? _child$props$data : chartData;\n if (data && state.dataStartIndex + state.dataEndIndex !== 0) {\n data = data.slice(state.dataStartIndex, state.dataEndIndex + 1);\n }\n var payload;\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // graphic child has data props\n var entries = data === undefined ? displayedData : data;\n payload = findEntryInArray(entries, tooltipAxis.dataKey, activeLabel);\n } else {\n payload = data && data[activeIndex] || displayedData[activeIndex];\n }\n if (!payload) {\n return result;\n }\n return [].concat(_toConsumableArray(result), [getTooltipItem(child, payload)]);\n }, []);\n};\n\n/**\n * Returns tooltip data based on a mouse position (as a parameter or in state)\n * @param {Object} state current state\n * @param {Array} chartData the data defined in chart\n * @param {String} layout The layout type of chart\n * @param {Object} rangeObj { x, y } coordinates\n * @return {Object} Tooltip data data\n */\nvar getTooltipData = function getTooltipData(state, chartData, layout, rangeObj) {\n var rangeData = rangeObj || {\n x: state.chartX,\n y: state.chartY\n };\n var pos = calculateTooltipPos(rangeData, layout);\n var ticks = state.orderedTooltipTicks,\n axis = state.tooltipAxis,\n tooltipTicks = state.tooltipTicks;\n var activeIndex = calculateActiveTickIndex(pos, ticks, tooltipTicks, axis);\n if (activeIndex >= 0 && tooltipTicks) {\n var activeLabel = tooltipTicks[activeIndex] && tooltipTicks[activeIndex].value;\n var activePayload = getTooltipContent(state, chartData, activeIndex, activeLabel);\n var activeCoordinate = getActiveCoordinate(layout, ticks, activeIndex, rangeData);\n return {\n activeTooltipIndex: activeIndex,\n activeLabel: activeLabel,\n activePayload: activePayload,\n activeCoordinate: activeCoordinate\n };\n }\n return null;\n};\n\n/**\n * Get the configuration of axis by the options of axis instance\n * @param {Object} props Latest props\n * @param {Array} axes The instance of axes\n * @param {Array} graphicalItems The instances of item\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\nexport var getAxisMapByAxes = function getAxisMapByAxes(props, _ref2) {\n var axes = _ref2.axes,\n graphicalItems = _ref2.graphicalItems,\n axisType = _ref2.axisType,\n axisIdKey = _ref2.axisIdKey,\n stackGroups = _ref2.stackGroups,\n dataStartIndex = _ref2.dataStartIndex,\n dataEndIndex = _ref2.dataEndIndex;\n var layout = props.layout,\n children = props.children,\n stackOffset = props.stackOffset;\n var isCategorical = isCategoricalAxis(layout, axisType);\n\n // Eliminate duplicated axes\n return axes.reduce(function (result, child) {\n var _child$props$domain2;\n var _child$props = child.props,\n type = _child$props.type,\n dataKey = _child$props.dataKey,\n allowDataOverflow = _child$props.allowDataOverflow,\n allowDuplicatedCategory = _child$props.allowDuplicatedCategory,\n scale = _child$props.scale,\n ticks = _child$props.ticks,\n includeHidden = _child$props.includeHidden;\n var axisId = child.props[axisIdKey];\n if (result[axisId]) {\n return result;\n }\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId;\n }),\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var domain, duplicateDomain, categoricalDomain;\n\n /*\n * This is a hack to short-circuit the domain creation here to enhance performance.\n * Usually, the data is used to determine the domain, but when the user specifies\n * a domain upfront (via props), there is no need to calculate the domain start and end,\n * which is very expensive for a larger amount of data.\n * The only thing that would prohibit short-circuiting is when the user doesn't allow data overflow,\n * because the axis is supposed to ignore the specified domain that way.\n */\n if (isDomainSpecifiedByUser(child.props.domain, allowDataOverflow, type)) {\n domain = parseSpecifiedDomain(child.props.domain, null, allowDataOverflow);\n /* The chart can be categorical and have the domain specified in numbers\n * we still need to calculate the categorical domain\n * TODO: refactor this more\n */\n if (isCategorical && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n }\n\n // if the domain is defaulted we need this for `originalDomain` as well\n var defaultDomain = getDefaultDomainByAxisType(type);\n\n // we didn't create the domain from user's props above, so we need to calculate it\n if (!domain || domain.length === 0) {\n var _child$props$domain;\n var childDomain = (_child$props$domain = child.props.domain) !== null && _child$props$domain !== void 0 ? _child$props$domain : defaultDomain;\n if (dataKey) {\n // has dataKey in \n domain = getDomainOfDataByKey(displayedData, dataKey, type);\n if (type === 'category' && isCategorical) {\n // the field type is category data and this axis is categorical axis\n var duplicate = hasDuplicate(domain);\n if (allowDuplicatedCategory && duplicate) {\n duplicateDomain = domain;\n // When category axis has duplicated text, serial numbers are used to generate scale\n domain = range(0, len);\n } else if (!allowDuplicatedCategory) {\n // remove duplicated category\n domain = parseDomainOfCategoryAxis(childDomain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n }\n } else if (type === 'category') {\n // the field type is category data and this axis is numerical axis\n if (!allowDuplicatedCategory) {\n domain = parseDomainOfCategoryAxis(childDomain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 || entry === '' || isNil(entry) ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n } else {\n // eliminate undefined or null or empty string\n domain = domain.filter(function (entry) {\n return entry !== '' && !isNil(entry);\n });\n }\n } else if (type === 'number') {\n // the field type is numerical\n var errorBarsDomain = parseErrorBarsOfAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && (includeHidden || !item.props.hide);\n }), dataKey, axisType, layout);\n if (errorBarsDomain) {\n domain = errorBarsDomain;\n }\n }\n if (isCategorical && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n } else if (isCategorical) {\n // the axis is a categorical axis\n domain = range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack && type === 'number') {\n // when stackOffset is 'expand', the domain may be calculated as [0, 1.000000000002]\n domain = stackOffset === 'expand' ? [0, 1] : getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n } else {\n domain = getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && (includeHidden || !item.props.hide);\n }), type, layout, true);\n }\n if (type === 'number') {\n // To detect wether there is any reference lines whose props alwaysShow is true\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType, ticks);\n if (childDomain) {\n domain = parseSpecifiedDomain(childDomain, domain, allowDataOverflow);\n }\n } else if (type === 'category' && childDomain) {\n var axisDomain = childDomain;\n var isDomainValid = domain.every(function (entry) {\n return axisDomain.indexOf(entry) >= 0;\n });\n if (isDomainValid) {\n domain = axisDomain;\n }\n }\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({}, child.props), {}, {\n axisType: axisType,\n domain: domain,\n categoricalDomain: categoricalDomain,\n duplicateDomain: duplicateDomain,\n originalDomain: (_child$props$domain2 = child.props.domain) !== null && _child$props$domain2 !== void 0 ? _child$props$domain2 : defaultDomain,\n isCategorical: isCategorical,\n layout: layout\n })));\n }, {});\n};\n\n/**\n * Get the configuration of axis by the options of item,\n * this kind of axis does not display in chart\n * @param {Object} props Latest props\n * @param {Array} graphicalItems The instances of item\n * @param {ReactElement} Axis Axis Component\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\nvar getAxisMapByItems = function getAxisMapByItems(props, _ref3) {\n var graphicalItems = _ref3.graphicalItems,\n Axis = _ref3.Axis,\n axisType = _ref3.axisType,\n axisIdKey = _ref3.axisIdKey,\n stackGroups = _ref3.stackGroups,\n dataStartIndex = _ref3.dataStartIndex,\n dataEndIndex = _ref3.dataEndIndex;\n var layout = props.layout,\n children = props.children;\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var isCategorical = isCategoricalAxis(layout, axisType);\n var index = -1;\n\n // The default type of x-axis is category axis,\n // The default contents of x-axis is the serial numbers of data\n // The default type of y-axis is number axis\n // The default contents of y-axis is the domain of data\n return graphicalItems.reduce(function (result, child) {\n var axisId = child.props[axisIdKey];\n var originalDomain = getDefaultDomainByAxisType('number');\n if (!result[axisId]) {\n index++;\n var domain;\n if (isCategorical) {\n domain = range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack) {\n domain = getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n } else {\n domain = parseSpecifiedDomain(originalDomain, getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), 'number', layout), Axis.defaultProps.allowDataOverflow);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({\n axisType: axisType\n }, Axis.defaultProps), {}, {\n hide: true,\n orientation: get(ORIENT_MAP, \"\".concat(axisType, \".\").concat(index % 2), null),\n domain: domain,\n originalDomain: originalDomain,\n isCategorical: isCategorical,\n layout: layout\n // specify scale when no Axis\n // scale: isCategorical ? 'band' : 'linear',\n })));\n }\n return result;\n }, {});\n};\n\n/**\n * Get the configuration of all x-axis or y-axis\n * @param {Object} props Latest props\n * @param {String} axisType The type of axis\n * @param {React.ComponentType} [AxisComp] Axis Component\n * @param {Array} graphicalItems The instances of item\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\nvar getAxisMap = function getAxisMap(props, _ref4) {\n var _ref4$axisType = _ref4.axisType,\n axisType = _ref4$axisType === void 0 ? 'xAxis' : _ref4$axisType,\n AxisComp = _ref4.AxisComp,\n graphicalItems = _ref4.graphicalItems,\n stackGroups = _ref4.stackGroups,\n dataStartIndex = _ref4.dataStartIndex,\n dataEndIndex = _ref4.dataEndIndex;\n var children = props.children;\n var axisIdKey = \"\".concat(axisType, \"Id\");\n // Get all the instance of Axis\n var axes = findAllByType(children, AxisComp);\n var axisMap = {};\n if (axes && axes.length) {\n axisMap = getAxisMapByAxes(props, {\n axes: axes,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n } else if (graphicalItems && graphicalItems.length) {\n axisMap = getAxisMapByItems(props, {\n Axis: AxisComp,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n }\n return axisMap;\n};\nvar tooltipTicksGenerator = function tooltipTicksGenerator(axisMap) {\n var axis = getAnyElementOfObject(axisMap);\n var tooltipTicks = getTicksOfAxis(axis, false, true);\n return {\n tooltipTicks: tooltipTicks,\n orderedTooltipTicks: sortBy(tooltipTicks, function (o) {\n return o.coordinate;\n }),\n tooltipAxis: axis,\n tooltipAxisBandSize: getBandSizeOfAxis(axis, tooltipTicks)\n };\n};\n\n/**\n * Returns default, reset state for the categorical chart.\n * @param {Object} props Props object to use when creating the default state\n * @return {Object} Whole new state\n */\nexport var createDefaultState = function createDefaultState(props) {\n var children = props.children,\n defaultShowTooltip = props.defaultShowTooltip;\n var brushItem = findChildByType(children, Brush);\n var startIndex = 0;\n var endIndex = 0;\n if (props.data && props.data.length !== 0) {\n endIndex = props.data.length - 1;\n }\n if (brushItem && brushItem.props) {\n if (brushItem.props.startIndex >= 0) {\n startIndex = brushItem.props.startIndex;\n }\n if (brushItem.props.endIndex >= 0) {\n endIndex = brushItem.props.endIndex;\n }\n }\n return {\n chartX: 0,\n chartY: 0,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n activeTooltipIndex: -1,\n isTooltipActive: Boolean(defaultShowTooltip)\n };\n};\nvar hasGraphicalBarItem = function hasGraphicalBarItem(graphicalItems) {\n if (!graphicalItems || !graphicalItems.length) {\n return false;\n }\n return graphicalItems.some(function (item) {\n var name = getDisplayName(item && item.type);\n return name && name.indexOf('Bar') >= 0;\n });\n};\nvar getAxisNameByLayout = function getAxisNameByLayout(layout) {\n if (layout === 'horizontal') {\n return {\n numericAxisName: 'yAxis',\n cateAxisName: 'xAxis'\n };\n }\n if (layout === 'vertical') {\n return {\n numericAxisName: 'xAxis',\n cateAxisName: 'yAxis'\n };\n }\n if (layout === 'centric') {\n return {\n numericAxisName: 'radiusAxis',\n cateAxisName: 'angleAxis'\n };\n }\n return {\n numericAxisName: 'angleAxis',\n cateAxisName: 'radiusAxis'\n };\n};\n\n/**\n * Calculate the offset of main part in the svg element\n * @param {Object} params.props Latest props\n * @param {Array} params.graphicalItems The instances of item\n * @param {Object} params.xAxisMap The configuration of x-axis\n * @param {Object} params.yAxisMap The configuration of y-axis\n * @param {Object} prevLegendBBox The boundary box of legend\n * @return {Object} The offset of main part in the svg element\n */\nvar calculateOffset = function calculateOffset(_ref5, prevLegendBBox) {\n var props = _ref5.props,\n graphicalItems = _ref5.graphicalItems,\n _ref5$xAxisMap = _ref5.xAxisMap,\n xAxisMap = _ref5$xAxisMap === void 0 ? {} : _ref5$xAxisMap,\n _ref5$yAxisMap = _ref5.yAxisMap,\n yAxisMap = _ref5$yAxisMap === void 0 ? {} : _ref5$yAxisMap;\n var width = props.width,\n height = props.height,\n children = props.children;\n var margin = props.margin || {};\n var brushItem = findChildByType(children, Brush);\n var legendItem = findChildByType(children, Legend);\n var offsetH = Object.keys(yAxisMap).reduce(function (result, id) {\n var entry = yAxisMap[id];\n var orientation = entry.orientation;\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, result[orientation] + entry.width));\n }\n return result;\n }, {\n left: margin.left || 0,\n right: margin.right || 0\n });\n var offsetV = Object.keys(xAxisMap).reduce(function (result, id) {\n var entry = xAxisMap[id];\n var orientation = entry.orientation;\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, get(result, \"\".concat(orientation)) + entry.height));\n }\n return result;\n }, {\n top: margin.top || 0,\n bottom: margin.bottom || 0\n });\n var offset = _objectSpread(_objectSpread({}, offsetV), offsetH);\n var brushBottom = offset.bottom;\n if (brushItem) {\n offset.bottom += brushItem.props.height || Brush.defaultProps.height;\n }\n if (legendItem && prevLegendBBox) {\n // @ts-expect-error margin is optional in props but required in appendOffsetOfLegend\n offset = appendOffsetOfLegend(offset, graphicalItems, props, prevLegendBBox);\n }\n var offsetWidth = width - offset.left - offset.right;\n var offsetHeight = height - offset.top - offset.bottom;\n return _objectSpread(_objectSpread({\n brushBottom: brushBottom\n }, offset), {}, {\n // never return negative values for height and width\n width: Math.max(offsetWidth, 0),\n height: Math.max(offsetHeight, 0)\n });\n};\n// Determine the size of the axis, used for calculation of relative bar sizes\nvar getCartesianAxisSize = function getCartesianAxisSize(axisObj, axisName) {\n if (axisName === 'xAxis') {\n return axisObj[axisName].width;\n }\n if (axisName === 'yAxis') {\n return axisObj[axisName].height;\n }\n // This is only supported for Bar charts (i.e. charts with cartesian axes), so we should never get here\n return undefined;\n};\nexport var generateCategoricalChart = function generateCategoricalChart(_ref6) {\n var _CategoricalChartWrapper;\n var chartName = _ref6.chartName,\n GraphicalChild = _ref6.GraphicalChild,\n _ref6$defaultTooltipE = _ref6.defaultTooltipEventType,\n defaultTooltipEventType = _ref6$defaultTooltipE === void 0 ? 'axis' : _ref6$defaultTooltipE,\n _ref6$validateTooltip = _ref6.validateTooltipEventTypes,\n validateTooltipEventTypes = _ref6$validateTooltip === void 0 ? ['axis'] : _ref6$validateTooltip,\n axisComponents = _ref6.axisComponents,\n legendContent = _ref6.legendContent,\n formatAxisMap = _ref6.formatAxisMap,\n defaultProps = _ref6.defaultProps;\n var getFormatItems = function getFormatItems(props, currentState) {\n var graphicalItems = currentState.graphicalItems,\n stackGroups = currentState.stackGroups,\n offset = currentState.offset,\n updateId = currentState.updateId,\n dataStartIndex = currentState.dataStartIndex,\n dataEndIndex = currentState.dataEndIndex;\n var barSize = props.barSize,\n layout = props.layout,\n barGap = props.barGap,\n barCategoryGap = props.barCategoryGap,\n globalMaxBarSize = props.maxBarSize;\n var _getAxisNameByLayout = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout.numericAxisName,\n cateAxisName = _getAxisNameByLayout.cateAxisName;\n var hasBar = hasGraphicalBarItem(graphicalItems);\n var formattedItems = [];\n graphicalItems.forEach(function (item, index) {\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: [item],\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n childMaxBarSize = _item$props.maxBarSize;\n // axisId of the numerical axis\n var numericAxisId = item.props[\"\".concat(numericAxisName, \"Id\")];\n // axisId of the categorical axis\n var cateAxisId = item.props[\"\".concat(cateAxisName, \"Id\")];\n var axisObjInitialValue = {};\n var axisObj = axisComponents.reduce(function (result, entry) {\n var _item$type$displayNam, _item$type;\n // map of axisId to axis for a specific axis type\n var axisMap = currentState[\"\".concat(entry.axisType, \"Map\")];\n // axisId of axis we are currently computing\n var id = item.props[\"\".concat(entry.axisType, \"Id\")];\n\n /**\n * tell the user in dev mode that their configuration is incorrect if we cannot find a match between\n * axisId on the chart and axisId on the axis. zAxis does not get passed in the map for ComposedChart,\n * leave it out of the check for now.\n */\n !(axisMap && axisMap[id] || entry.axisType === 'zAxis') ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Specifying a(n) \".concat(entry.axisType, \"Id requires a corresponding \").concat(entry.axisType\n // @ts-expect-error we should stop reading data from ReactElements\n , \"Id on the targeted graphical component \").concat((_item$type$displayNam = item === null || item === void 0 || (_item$type = item.type) === null || _item$type === void 0 ? void 0 : _item$type.displayName) !== null && _item$type$displayNam !== void 0 ? _item$type$displayNam : '')) : invariant(false) : void 0;\n\n // the axis we are currently formatting\n var axis = axisMap[id];\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty(_defineProperty({}, entry.axisType, axis), \"\".concat(entry.axisType, \"Ticks\"), getTicksOfAxis(axis)));\n }, axisObjInitialValue);\n var cateAxis = axisObj[cateAxisName];\n var cateTicks = axisObj[\"\".concat(cateAxisName, \"Ticks\")];\n var stackedData = stackGroups && stackGroups[numericAxisId] && stackGroups[numericAxisId].hasStack && getStackedDataOfItem(item, stackGroups[numericAxisId].stackGroups);\n var itemIsBar = getDisplayName(item.type).indexOf('Bar') >= 0;\n var bandSize = getBandSizeOfAxis(cateAxis, cateTicks);\n var barPosition = [];\n var sizeList = hasBar && getBarSizeList({\n barSize: barSize,\n stackGroups: stackGroups,\n totalSize: getCartesianAxisSize(axisObj, cateAxisName)\n });\n if (itemIsBar) {\n var _ref7, _getBandSizeOfAxis;\n // If it is bar, calculate the position of bar\n var maxBarSize = isNil(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n var barBandSize = (_ref7 = (_getBandSizeOfAxis = getBandSizeOfAxis(cateAxis, cateTicks, true)) !== null && _getBandSizeOfAxis !== void 0 ? _getBandSizeOfAxis : maxBarSize) !== null && _ref7 !== void 0 ? _ref7 : 0;\n barPosition = getBarPosition({\n barGap: barGap,\n barCategoryGap: barCategoryGap,\n bandSize: barBandSize !== bandSize ? barBandSize : bandSize,\n sizeList: sizeList[cateAxisId],\n maxBarSize: maxBarSize\n });\n if (barBandSize !== bandSize) {\n barPosition = barPosition.map(function (pos) {\n return _objectSpread(_objectSpread({}, pos), {}, {\n position: _objectSpread(_objectSpread({}, pos.position), {}, {\n offset: pos.position.offset - barBandSize / 2\n })\n });\n });\n }\n }\n // @ts-expect-error we should stop reading data from ReactElements\n var composedFn = item && item.type && item.type.getComposedData;\n if (composedFn) {\n formattedItems.push({\n props: _objectSpread(_objectSpread({}, composedFn(_objectSpread(_objectSpread({}, axisObj), {}, {\n displayedData: displayedData,\n props: props,\n dataKey: dataKey,\n item: item,\n bandSize: bandSize,\n barPosition: barPosition,\n offset: offset,\n stackedData: stackedData,\n layout: layout,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))), {}, _defineProperty(_defineProperty(_defineProperty({\n key: item.key || \"item-\".concat(index)\n }, numericAxisName, axisObj[numericAxisName]), cateAxisName, axisObj[cateAxisName]), \"animationId\", updateId)),\n childIndex: parseChildIndex(item, props.children),\n item: item\n });\n }\n });\n return formattedItems;\n };\n\n /**\n * The AxisMaps are expensive to render on large data sets\n * so provide the ability to store them in state and only update them when necessary\n * they are dependent upon the start and end index of\n * the brush so it's important that this method is called _after_\n * the state is updated with any new start/end indices\n *\n * @param {Object} props The props object to be used for updating the axismaps\n * dataStartIndex: The start index of the data series when a brush is applied\n * dataEndIndex: The end index of the data series when a brush is applied\n * updateId: The update id\n * @param {Object} prevState Prev state\n * @return {Object} state New state to set\n */\n var updateStateOfAxisMapsOffsetAndStackGroups = function updateStateOfAxisMapsOffsetAndStackGroups(_ref8, prevState) {\n var props = _ref8.props,\n dataStartIndex = _ref8.dataStartIndex,\n dataEndIndex = _ref8.dataEndIndex,\n updateId = _ref8.updateId;\n if (!validateWidthHeight({\n props: props\n })) {\n return null;\n }\n var children = props.children,\n layout = props.layout,\n stackOffset = props.stackOffset,\n data = props.data,\n reverseStackOrder = props.reverseStackOrder;\n var _getAxisNameByLayout2 = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout2.numericAxisName,\n cateAxisName = _getAxisNameByLayout2.cateAxisName;\n var graphicalItems = findAllByType(children, GraphicalChild);\n var stackGroups = getStackGroupsByAxisId(data, graphicalItems, \"\".concat(numericAxisName, \"Id\"), \"\".concat(cateAxisName, \"Id\"), stackOffset, reverseStackOrder);\n var axisObj = axisComponents.reduce(function (result, entry) {\n var name = \"\".concat(entry.axisType, \"Map\");\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, name, getAxisMap(props, _objectSpread(_objectSpread({}, entry), {}, {\n graphicalItems: graphicalItems,\n stackGroups: entry.axisType === numericAxisName && stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))));\n }, {});\n var offset = calculateOffset(_objectSpread(_objectSpread({}, axisObj), {}, {\n props: props,\n graphicalItems: graphicalItems\n }), prevState === null || prevState === void 0 ? void 0 : prevState.legendBBox);\n Object.keys(axisObj).forEach(function (key) {\n axisObj[key] = formatAxisMap(props, axisObj[key], offset, key.replace('Map', ''), chartName);\n });\n var cateAxisMap = axisObj[\"\".concat(cateAxisName, \"Map\")];\n var ticksObj = tooltipTicksGenerator(cateAxisMap);\n var formattedGraphicalItems = getFormatItems(props, _objectSpread(_objectSpread({}, axisObj), {}, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId,\n graphicalItems: graphicalItems,\n stackGroups: stackGroups,\n offset: offset\n }));\n return _objectSpread(_objectSpread({\n formattedGraphicalItems: formattedGraphicalItems,\n graphicalItems: graphicalItems,\n offset: offset,\n stackGroups: stackGroups\n }, ticksObj), axisObj);\n };\n return _CategoricalChartWrapper = /*#__PURE__*/function (_Component) {\n _inherits(CategoricalChartWrapper, _Component);\n function CategoricalChartWrapper(_props) {\n var _props$id, _props$throttleDelay;\n var _this;\n _classCallCheck(this, CategoricalChartWrapper);\n _this = _callSuper(this, CategoricalChartWrapper, [_props]);\n _defineProperty(_assertThisInitialized(_this), \"eventEmitterSymbol\", Symbol('rechartsEventEmitter'));\n _defineProperty(_assertThisInitialized(_this), \"accessibilityManager\", new AccessibilityManager());\n _defineProperty(_assertThisInitialized(_this), \"handleLegendBBoxUpdate\", function (box) {\n if (box) {\n var _this$state = _this.state,\n dataStartIndex = _this$state.dataStartIndex,\n dataEndIndex = _this$state.dataEndIndex,\n updateId = _this$state.updateId;\n _this.setState(_objectSpread({\n legendBBox: box\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, _objectSpread(_objectSpread({}, _this.state), {}, {\n legendBBox: box\n }))));\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleReceiveSyncEvent\", function (cId, data, emitter) {\n if (_this.props.syncId === cId) {\n if (emitter === _this.eventEmitterSymbol && typeof _this.props.syncMethod !== 'function') {\n return;\n }\n _this.applySyncEvent(data);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleBrushChange\", function (_ref9) {\n var startIndex = _ref9.startIndex,\n endIndex = _ref9.endIndex;\n // Only trigger changes if the extents of the brush have actually changed\n if (startIndex !== _this.state.dataStartIndex || endIndex !== _this.state.dataEndIndex) {\n var updateId = _this.state.updateId;\n _this.setState(function () {\n return _objectSpread({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n updateId: updateId\n }, _this.state));\n });\n _this.triggerSyncEvent({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n });\n }\n });\n /**\n * The handler of mouse entering chart\n * @param {Object} e Event object\n * @return {Null} null\n */\n _defineProperty(_assertThisInitialized(_this), \"handleMouseEnter\", function (e) {\n var mouse = _this.getMouseInfo(e);\n if (mouse) {\n var _nextState = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n _this.setState(_nextState);\n _this.triggerSyncEvent(_nextState);\n var onMouseEnter = _this.props.onMouseEnter;\n if (isFunction(onMouseEnter)) {\n onMouseEnter(_nextState, e);\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"triggeredAfterMouseMove\", function (e) {\n var mouse = _this.getMouseInfo(e);\n var nextState = mouse ? _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n }) : {\n isTooltipActive: false\n };\n _this.setState(nextState);\n _this.triggerSyncEvent(nextState);\n var onMouseMove = _this.props.onMouseMove;\n if (isFunction(onMouseMove)) {\n onMouseMove(nextState, e);\n }\n });\n /**\n * The handler of mouse entering a scatter\n * @param {Object} el The active scatter\n * @return {Object} no return\n */\n _defineProperty(_assertThisInitialized(_this), \"handleItemMouseEnter\", function (el) {\n _this.setState(function () {\n return {\n isTooltipActive: true,\n activeItem: el,\n activePayload: el.tooltipPayload,\n activeCoordinate: el.tooltipPosition || {\n x: el.cx,\n y: el.cy\n }\n };\n });\n });\n /**\n * The handler of mouse leaving a scatter\n * @return {Object} no return\n */\n _defineProperty(_assertThisInitialized(_this), \"handleItemMouseLeave\", function () {\n _this.setState(function () {\n return {\n isTooltipActive: false\n };\n });\n });\n /**\n * The handler of mouse moving in chart\n * @param {React.MouseEvent} e Event object\n * @return {void} no return\n */\n _defineProperty(_assertThisInitialized(_this), \"handleMouseMove\", function (e) {\n e.persist();\n _this.throttleTriggeredAfterMouseMove(e);\n });\n /**\n * The handler if mouse leaving chart\n * @param {Object} e Event object\n * @return {Null} no return\n */\n _defineProperty(_assertThisInitialized(_this), \"handleMouseLeave\", function (e) {\n _this.throttleTriggeredAfterMouseMove.cancel();\n var nextState = {\n isTooltipActive: false\n };\n _this.setState(nextState);\n _this.triggerSyncEvent(nextState);\n var onMouseLeave = _this.props.onMouseLeave;\n if (isFunction(onMouseLeave)) {\n onMouseLeave(nextState, e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleOuterEvent\", function (e) {\n var eventName = getReactEventByType(e);\n var event = get(_this.props, \"\".concat(eventName));\n if (eventName && isFunction(event)) {\n var _mouse;\n var mouse;\n if (/.*touch.*/i.test(eventName)) {\n mouse = _this.getMouseInfo(e.changedTouches[0]);\n } else {\n mouse = _this.getMouseInfo(e);\n }\n event((_mouse = mouse) !== null && _mouse !== void 0 ? _mouse : {}, e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleClick\", function (e) {\n var mouse = _this.getMouseInfo(e);\n if (mouse) {\n var _nextState2 = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n _this.setState(_nextState2);\n _this.triggerSyncEvent(_nextState2);\n var onClick = _this.props.onClick;\n if (isFunction(onClick)) {\n onClick(_nextState2, e);\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleMouseDown\", function (e) {\n var onMouseDown = _this.props.onMouseDown;\n if (isFunction(onMouseDown)) {\n var _nextState3 = _this.getMouseInfo(e);\n onMouseDown(_nextState3, e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleMouseUp\", function (e) {\n var onMouseUp = _this.props.onMouseUp;\n if (isFunction(onMouseUp)) {\n var _nextState4 = _this.getMouseInfo(e);\n onMouseUp(_nextState4, e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleTouchMove\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.throttleTriggeredAfterMouseMove(e.changedTouches[0]);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleTouchStart\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseDown(e.changedTouches[0]);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleTouchEnd\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseUp(e.changedTouches[0]);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"triggerSyncEvent\", function (data) {\n if (_this.props.syncId !== undefined) {\n eventCenter.emit(SYNC_EVENT, _this.props.syncId, data, _this.eventEmitterSymbol);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"applySyncEvent\", function (data) {\n var _this$props = _this.props,\n layout = _this$props.layout,\n syncMethod = _this$props.syncMethod;\n var updateId = _this.state.updateId;\n var dataStartIndex = data.dataStartIndex,\n dataEndIndex = data.dataEndIndex;\n if (data.dataStartIndex !== undefined || data.dataEndIndex !== undefined) {\n _this.setState(_objectSpread({\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, _this.state)));\n } else if (data.activeTooltipIndex !== undefined) {\n var chartX = data.chartX,\n chartY = data.chartY;\n var activeTooltipIndex = data.activeTooltipIndex;\n var _this$state2 = _this.state,\n offset = _this$state2.offset,\n tooltipTicks = _this$state2.tooltipTicks;\n if (!offset) {\n return;\n }\n if (typeof syncMethod === 'function') {\n // Call a callback function. If there is an application specific algorithm\n activeTooltipIndex = syncMethod(tooltipTicks, data);\n } else if (syncMethod === 'value') {\n // Set activeTooltipIndex to the index with the same value as data.activeLabel\n // For loop instead of findIndex because the latter is very slow in some browsers\n activeTooltipIndex = -1; // in case we cannot find the element\n for (var i = 0; i < tooltipTicks.length; i++) {\n if (tooltipTicks[i].value === data.activeLabel) {\n activeTooltipIndex = i;\n break;\n }\n }\n }\n var viewBox = _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n });\n // When a categorical chart is combined with another chart, the value of chartX\n // and chartY may beyond the boundaries.\n var validateChartX = Math.min(chartX, viewBox.x + viewBox.width);\n var validateChartY = Math.min(chartY, viewBox.y + viewBox.height);\n var activeLabel = tooltipTicks[activeTooltipIndex] && tooltipTicks[activeTooltipIndex].value;\n var activePayload = getTooltipContent(_this.state, _this.props.data, activeTooltipIndex);\n var activeCoordinate = tooltipTicks[activeTooltipIndex] ? {\n x: layout === 'horizontal' ? tooltipTicks[activeTooltipIndex].coordinate : validateChartX,\n y: layout === 'horizontal' ? validateChartY : tooltipTicks[activeTooltipIndex].coordinate\n } : originCoordinate;\n _this.setState(_objectSpread(_objectSpread({}, data), {}, {\n activeLabel: activeLabel,\n activeCoordinate: activeCoordinate,\n activePayload: activePayload,\n activeTooltipIndex: activeTooltipIndex\n }));\n } else {\n _this.setState(data);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"renderCursor\", function (element) {\n var _element$props$active;\n var _this$state3 = _this.state,\n isTooltipActive = _this$state3.isTooltipActive,\n activeCoordinate = _this$state3.activeCoordinate,\n activePayload = _this$state3.activePayload,\n offset = _this$state3.offset,\n activeTooltipIndex = _this$state3.activeTooltipIndex,\n tooltipAxisBandSize = _this$state3.tooltipAxisBandSize;\n var tooltipEventType = _this.getTooltipEventType();\n // The cursor is a part of the Tooltip, and it should be shown (by default) when the Tooltip is active.\n var isActive = (_element$props$active = element.props.active) !== null && _element$props$active !== void 0 ? _element$props$active : isTooltipActive;\n var layout = _this.props.layout;\n var key = element.key || '_recharts-cursor';\n return /*#__PURE__*/React.createElement(Cursor, {\n key: key,\n activeCoordinate: activeCoordinate,\n activePayload: activePayload,\n activeTooltipIndex: activeTooltipIndex,\n chartName: chartName,\n element: element,\n isActive: isActive,\n layout: layout,\n offset: offset,\n tooltipAxisBandSize: tooltipAxisBandSize,\n tooltipEventType: tooltipEventType\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"renderPolarAxis\", function (element, displayName, index) {\n var axisType = get(element, 'type.axisType');\n var axisMap = get(_this.state, \"\".concat(axisType, \"Map\"));\n var axisOption = axisMap && axisMap[element.props[\"\".concat(axisType, \"Id\")]];\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, axisOption), {}, {\n className: clsx(axisType, axisOption.className),\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n ticks: getTicksOfAxis(axisOption, true)\n }));\n });\n _defineProperty(_assertThisInitialized(_this), \"renderPolarGrid\", function (element) {\n var _element$props = element.props,\n radialLines = _element$props.radialLines,\n polarAngles = _element$props.polarAngles,\n polarRadius = _element$props.polarRadius;\n var _this$state4 = _this.state,\n radiusAxisMap = _this$state4.radiusAxisMap,\n angleAxisMap = _this$state4.angleAxisMap;\n var radiusAxis = getAnyElementOfObject(radiusAxisMap);\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n var cx = angleAxis.cx,\n cy = angleAxis.cy,\n innerRadius = angleAxis.innerRadius,\n outerRadius = angleAxis.outerRadius;\n return /*#__PURE__*/cloneElement(element, {\n polarAngles: Array.isArray(polarAngles) ? polarAngles : getTicksOfAxis(angleAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n polarRadius: Array.isArray(polarRadius) ? polarRadius : getTicksOfAxis(radiusAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n key: element.key || 'polar-grid',\n radialLines: radialLines\n });\n });\n /**\n * Draw legend\n * @return {ReactElement} The instance of Legend\n */\n _defineProperty(_assertThisInitialized(_this), \"renderLegend\", function () {\n var formattedGraphicalItems = _this.state.formattedGraphicalItems;\n var _this$props2 = _this.props,\n children = _this$props2.children,\n width = _this$props2.width,\n height = _this$props2.height;\n var margin = _this.props.margin || {};\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var props = getLegendProps({\n children: children,\n formattedGraphicalItems: formattedGraphicalItems,\n legendWidth: legendWidth,\n legendContent: legendContent\n });\n if (!props) {\n return null;\n }\n var item = props.item,\n otherProps = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/cloneElement(item, _objectSpread(_objectSpread({}, otherProps), {}, {\n chartWidth: width,\n chartHeight: height,\n margin: margin,\n onBBoxUpdate: _this.handleLegendBBoxUpdate\n }));\n });\n /**\n * Draw Tooltip\n * @return {ReactElement} The instance of Tooltip\n */\n _defineProperty(_assertThisInitialized(_this), \"renderTooltip\", function () {\n var _tooltipItem$props$ac;\n var _this$props3 = _this.props,\n children = _this$props3.children,\n accessibilityLayer = _this$props3.accessibilityLayer;\n var tooltipItem = findChildByType(children, Tooltip);\n if (!tooltipItem) {\n return null;\n }\n var _this$state5 = _this.state,\n isTooltipActive = _this$state5.isTooltipActive,\n activeCoordinate = _this$state5.activeCoordinate,\n activePayload = _this$state5.activePayload,\n activeLabel = _this$state5.activeLabel,\n offset = _this$state5.offset;\n\n // The user can set isActive on the Tooltip,\n // and we respect the user to enable customisation.\n // The Tooltip is active if the user has set isActive, or if the tooltip is active due to a mouse event.\n var isActive = (_tooltipItem$props$ac = tooltipItem.props.active) !== null && _tooltipItem$props$ac !== void 0 ? _tooltipItem$props$ac : isTooltipActive;\n return /*#__PURE__*/cloneElement(tooltipItem, {\n viewBox: _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n }),\n active: isActive,\n label: activeLabel,\n payload: isActive ? activePayload : [],\n coordinate: activeCoordinate,\n accessibilityLayer: accessibilityLayer\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"renderBrush\", function (element) {\n var _this$props4 = _this.props,\n margin = _this$props4.margin,\n data = _this$props4.data;\n var _this$state6 = _this.state,\n offset = _this$state6.offset,\n dataStartIndex = _this$state6.dataStartIndex,\n dataEndIndex = _this$state6.dataEndIndex,\n updateId = _this$state6.updateId;\n\n // TODO: update brush when children update\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || '_recharts-brush',\n onChange: combineEventHandlers(_this.handleBrushChange, element.props.onChange),\n data: data,\n x: isNumber(element.props.x) ? element.props.x : offset.left,\n y: isNumber(element.props.y) ? element.props.y : offset.top + offset.height + offset.brushBottom - (margin.bottom || 0),\n width: isNumber(element.props.width) ? element.props.width : offset.width,\n startIndex: dataStartIndex,\n endIndex: dataEndIndex,\n updateId: \"brush-\".concat(updateId)\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"renderReferenceElement\", function (element, displayName, index) {\n if (!element) {\n return null;\n }\n var _assertThisInitialize = _assertThisInitialized(_this),\n clipPathId = _assertThisInitialize.clipPathId;\n var _this$state7 = _this.state,\n xAxisMap = _this$state7.xAxisMap,\n yAxisMap = _this$state7.yAxisMap,\n offset = _this$state7.offset;\n var _element$props2 = element.props,\n xAxisId = _element$props2.xAxisId,\n yAxisId = _element$props2.yAxisId;\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n xAxis: xAxisMap[xAxisId],\n yAxis: yAxisMap[yAxisId],\n viewBox: {\n x: offset.left,\n y: offset.top,\n width: offset.width,\n height: offset.height\n },\n clipPathId: clipPathId\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"renderActivePoints\", function (_ref10) {\n var item = _ref10.item,\n activePoint = _ref10.activePoint,\n basePoint = _ref10.basePoint,\n childIndex = _ref10.childIndex,\n isRange = _ref10.isRange;\n var result = [];\n var key = item.props.key;\n var _item$item$props = item.item.props,\n activeDot = _item$item$props.activeDot,\n dataKey = _item$item$props.dataKey;\n var dotProps = _objectSpread(_objectSpread({\n index: childIndex,\n dataKey: dataKey,\n cx: activePoint.x,\n cy: activePoint.y,\n r: 4,\n fill: getMainColorOfGraphicItem(item.item),\n strokeWidth: 2,\n stroke: '#fff',\n payload: activePoint.payload,\n value: activePoint.value,\n key: \"\".concat(key, \"-activePoint-\").concat(childIndex)\n }, filterProps(activeDot, false)), adaptEventHandlers(activeDot));\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, dotProps));\n if (basePoint) {\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, _objectSpread(_objectSpread({}, dotProps), {}, {\n cx: basePoint.x,\n cy: basePoint.y,\n key: \"\".concat(key, \"-basePoint-\").concat(childIndex)\n })));\n } else if (isRange) {\n result.push(null);\n }\n return result;\n });\n _defineProperty(_assertThisInitialized(_this), \"renderGraphicChild\", function (element, displayName, index) {\n var item = _this.filterFormatItem(element, displayName, index);\n if (!item) {\n return null;\n }\n var tooltipEventType = _this.getTooltipEventType();\n var _this$state8 = _this.state,\n isTooltipActive = _this$state8.isTooltipActive,\n tooltipAxis = _this$state8.tooltipAxis,\n activeTooltipIndex = _this$state8.activeTooltipIndex,\n activeLabel = _this$state8.activeLabel;\n var children = _this.props.children;\n var tooltipItem = findChildByType(children, Tooltip);\n var _item$props2 = item.props,\n points = _item$props2.points,\n isRange = _item$props2.isRange,\n baseLine = _item$props2.baseLine;\n var _item$item$props2 = item.item.props,\n activeDot = _item$item$props2.activeDot,\n hide = _item$item$props2.hide,\n activeBar = _item$item$props2.activeBar,\n activeShape = _item$item$props2.activeShape;\n var hasActive = Boolean(!hide && isTooltipActive && tooltipItem && (activeDot || activeBar || activeShape));\n var itemEvents = {};\n if (tooltipEventType !== 'axis' && tooltipItem && tooltipItem.props.trigger === 'click') {\n itemEvents = {\n onClick: combineEventHandlers(_this.handleItemMouseEnter, element.props.onClick)\n };\n } else if (tooltipEventType !== 'axis') {\n itemEvents = {\n onMouseLeave: combineEventHandlers(_this.handleItemMouseLeave, element.props.onMouseLeave),\n onMouseEnter: combineEventHandlers(_this.handleItemMouseEnter, element.props.onMouseEnter)\n };\n }\n var graphicalItem = /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, item.props), itemEvents));\n function findWithPayload(entry) {\n // TODO needs to verify dataKey is Function\n return typeof tooltipAxis.dataKey === 'function' ? tooltipAxis.dataKey(entry.payload) : null;\n }\n if (hasActive) {\n if (activeTooltipIndex >= 0) {\n var activePoint, basePoint;\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // number transform to string\n var specifiedKey = typeof tooltipAxis.dataKey === 'function' ? findWithPayload : 'payload.'.concat(tooltipAxis.dataKey.toString());\n activePoint = findEntryInArray(points, specifiedKey, activeLabel);\n basePoint = isRange && baseLine && findEntryInArray(baseLine, specifiedKey, activeLabel);\n } else {\n activePoint = points === null || points === void 0 ? void 0 : points[activeTooltipIndex];\n basePoint = isRange && baseLine && baseLine[activeTooltipIndex];\n }\n if (activeShape || activeBar) {\n var activeIndex = element.props.activeIndex !== undefined ? element.props.activeIndex : activeTooltipIndex;\n return [/*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread(_objectSpread({}, item.props), itemEvents), {}, {\n activeIndex: activeIndex\n })), null, null];\n }\n if (!isNil(activePoint)) {\n return [graphicalItem].concat(_toConsumableArray(_this.renderActivePoints({\n item: item,\n activePoint: activePoint,\n basePoint: basePoint,\n childIndex: activeTooltipIndex,\n isRange: isRange\n })));\n }\n } else {\n var _this$getItemByXY;\n /**\n * We hit this block if consumer uses a Tooltip without XAxis and/or YAxis.\n * In which case, this.state.activeTooltipIndex never gets set\n * because the mouse events that trigger that value getting set never get trigged without the axis components.\n *\n * An example usage case is a FunnelChart\n */\n var _ref11 = (_this$getItemByXY = _this.getItemByXY(_this.state.activeCoordinate)) !== null && _this$getItemByXY !== void 0 ? _this$getItemByXY : {\n graphicalItem: graphicalItem\n },\n _ref11$graphicalItem = _ref11.graphicalItem,\n _ref11$graphicalItem$ = _ref11$graphicalItem.item,\n xyItem = _ref11$graphicalItem$ === void 0 ? element : _ref11$graphicalItem$,\n childIndex = _ref11$graphicalItem.childIndex;\n var elementProps = _objectSpread(_objectSpread(_objectSpread({}, item.props), itemEvents), {}, {\n activeIndex: childIndex\n });\n return [/*#__PURE__*/cloneElement(xyItem, elementProps), null, null];\n }\n }\n if (isRange) {\n return [graphicalItem, null, null];\n }\n return [graphicalItem, null];\n });\n _defineProperty(_assertThisInitialized(_this), \"renderCustomized\", function (element, displayName, index) {\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({\n key: \"recharts-customized-\".concat(index)\n }, _this.props), _this.state));\n });\n _defineProperty(_assertThisInitialized(_this), \"renderMap\", {\n CartesianGrid: {\n handler: renderAsIs,\n once: true\n },\n ReferenceArea: {\n handler: _this.renderReferenceElement\n },\n ReferenceLine: {\n handler: renderAsIs\n },\n ReferenceDot: {\n handler: _this.renderReferenceElement\n },\n XAxis: {\n handler: renderAsIs\n },\n YAxis: {\n handler: renderAsIs\n },\n Brush: {\n handler: _this.renderBrush,\n once: true\n },\n Bar: {\n handler: _this.renderGraphicChild\n },\n Line: {\n handler: _this.renderGraphicChild\n },\n Area: {\n handler: _this.renderGraphicChild\n },\n Radar: {\n handler: _this.renderGraphicChild\n },\n RadialBar: {\n handler: _this.renderGraphicChild\n },\n Scatter: {\n handler: _this.renderGraphicChild\n },\n Pie: {\n handler: _this.renderGraphicChild\n },\n Funnel: {\n handler: _this.renderGraphicChild\n },\n Tooltip: {\n handler: _this.renderCursor,\n once: true\n },\n PolarGrid: {\n handler: _this.renderPolarGrid,\n once: true\n },\n PolarAngleAxis: {\n handler: _this.renderPolarAxis\n },\n PolarRadiusAxis: {\n handler: _this.renderPolarAxis\n },\n Customized: {\n handler: _this.renderCustomized\n }\n });\n _this.clipPathId = \"\".concat((_props$id = _props.id) !== null && _props$id !== void 0 ? _props$id : uniqueId('recharts'), \"-clip\");\n\n // trigger 60fps\n _this.throttleTriggeredAfterMouseMove = throttle(_this.triggeredAfterMouseMove, (_props$throttleDelay = _props.throttleDelay) !== null && _props$throttleDelay !== void 0 ? _props$throttleDelay : 1000 / 60);\n _this.state = {};\n return _this;\n }\n _createClass(CategoricalChartWrapper, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props$margin$le, _this$props$margin$to;\n this.addListener();\n this.accessibilityManager.setDetails({\n container: this.container,\n offset: {\n left: (_this$props$margin$le = this.props.margin.left) !== null && _this$props$margin$le !== void 0 ? _this$props$margin$le : 0,\n top: (_this$props$margin$to = this.props.margin.top) !== null && _this$props$margin$to !== void 0 ? _this$props$margin$to : 0\n },\n coordinateList: this.state.tooltipTicks,\n mouseHandlerCallback: this.triggeredAfterMouseMove,\n layout: this.props.layout\n });\n this.displayDefaultTooltip();\n }\n }, {\n key: \"displayDefaultTooltip\",\n value: function displayDefaultTooltip() {\n var _this$props5 = this.props,\n children = _this$props5.children,\n data = _this$props5.data,\n height = _this$props5.height,\n layout = _this$props5.layout;\n var tooltipElem = findChildByType(children, Tooltip);\n // If the chart doesn't include a element, there's no tooltip to display\n if (!tooltipElem) {\n return;\n }\n var defaultIndex = tooltipElem.props.defaultIndex;\n\n // Protect against runtime errors\n if (typeof defaultIndex !== 'number' || defaultIndex < 0 || defaultIndex > this.state.tooltipTicks.length) {\n return;\n }\n var activeLabel = this.state.tooltipTicks[defaultIndex] && this.state.tooltipTicks[defaultIndex].value;\n var activePayload = getTooltipContent(this.state, data, defaultIndex, activeLabel);\n var independentAxisCoord = this.state.tooltipTicks[defaultIndex].coordinate;\n var dependentAxisCoord = (this.state.offset.top + height) / 2;\n var isHorizontal = layout === 'horizontal';\n var activeCoordinate = isHorizontal ? {\n x: independentAxisCoord,\n y: dependentAxisCoord\n } : {\n y: independentAxisCoord,\n x: dependentAxisCoord\n };\n\n // Unlike other chart types, scatter plot's tooltip positions rely on both X and Y coordinates. Only the scatter plot\n // element knows its own Y coordinates.\n // If there's a scatter plot, we'll want to grab that element for an interrogation.\n var scatterPlotElement = this.state.formattedGraphicalItems.find(function (_ref12) {\n var item = _ref12.item;\n return item.type.name === 'Scatter';\n });\n if (scatterPlotElement) {\n activeCoordinate = _objectSpread(_objectSpread({}, activeCoordinate), scatterPlotElement.props.points[defaultIndex].tooltipPosition);\n activePayload = scatterPlotElement.props.points[defaultIndex].tooltipPayload;\n }\n var nextState = {\n activeTooltipIndex: defaultIndex,\n isTooltipActive: true,\n activeLabel: activeLabel,\n activePayload: activePayload,\n activeCoordinate: activeCoordinate\n };\n this.setState(nextState);\n this.renderCursor(tooltipElem);\n\n // Make sure that anyone who keyboard-only users who tab to the chart will start their\n // cursors at defaultIndex\n this.accessibilityManager.setIndex(defaultIndex);\n }\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate(prevProps, prevState) {\n if (!this.props.accessibilityLayer) {\n return null;\n }\n if (this.state.tooltipTicks !== prevState.tooltipTicks) {\n this.accessibilityManager.setDetails({\n coordinateList: this.state.tooltipTicks\n });\n }\n if (this.props.layout !== prevProps.layout) {\n this.accessibilityManager.setDetails({\n layout: this.props.layout\n });\n }\n if (this.props.margin !== prevProps.margin) {\n var _this$props$margin$le2, _this$props$margin$to2;\n this.accessibilityManager.setDetails({\n offset: {\n left: (_this$props$margin$le2 = this.props.margin.left) !== null && _this$props$margin$le2 !== void 0 ? _this$props$margin$le2 : 0,\n top: (_this$props$margin$to2 = this.props.margin.top) !== null && _this$props$margin$to2 !== void 0 ? _this$props$margin$to2 : 0\n }\n });\n }\n\n // Something has to be returned for getSnapshotBeforeUpdate\n return null;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n // Check to see if the Tooltip updated. If so, re-check default tooltip position\n if (!isChildrenEqual([findChildByType(prevProps.children, Tooltip)], [findChildByType(this.props.children, Tooltip)])) {\n this.displayDefaultTooltip();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.removeListener();\n this.throttleTriggeredAfterMouseMove.cancel();\n }\n }, {\n key: \"getTooltipEventType\",\n value: function getTooltipEventType() {\n var tooltipItem = findChildByType(this.props.children, Tooltip);\n if (tooltipItem && typeof tooltipItem.props.shared === 'boolean') {\n var eventType = tooltipItem.props.shared ? 'axis' : 'item';\n return validateTooltipEventTypes.indexOf(eventType) >= 0 ? eventType : defaultTooltipEventType;\n }\n return defaultTooltipEventType;\n }\n\n /**\n * Get the information of mouse in chart, return null when the mouse is not in the chart\n * @param {MousePointer} event The event object\n * @return {Object} Mouse data\n */\n }, {\n key: \"getMouseInfo\",\n value: function getMouseInfo(event) {\n if (!this.container) {\n return null;\n }\n var element = this.container;\n var boundingRect = element.getBoundingClientRect();\n var containerOffset = getOffset(boundingRect);\n var e = {\n chartX: Math.round(event.pageX - containerOffset.left),\n chartY: Math.round(event.pageY - containerOffset.top)\n };\n var scale = boundingRect.width / element.offsetWidth || 1;\n var rangeObj = this.inRange(e.chartX, e.chartY, scale);\n if (!rangeObj) {\n return null;\n }\n var _this$state9 = this.state,\n xAxisMap = _this$state9.xAxisMap,\n yAxisMap = _this$state9.yAxisMap;\n var tooltipEventType = this.getTooltipEventType();\n if (tooltipEventType !== 'axis' && xAxisMap && yAxisMap) {\n var xScale = getAnyElementOfObject(xAxisMap).scale;\n var yScale = getAnyElementOfObject(yAxisMap).scale;\n var xValue = xScale && xScale.invert ? xScale.invert(e.chartX) : null;\n var yValue = yScale && yScale.invert ? yScale.invert(e.chartY) : null;\n return _objectSpread(_objectSpread({}, e), {}, {\n xValue: xValue,\n yValue: yValue\n });\n }\n var toolTipData = getTooltipData(this.state, this.props.data, this.props.layout, rangeObj);\n if (toolTipData) {\n return _objectSpread(_objectSpread({}, e), toolTipData);\n }\n return null;\n }\n }, {\n key: \"inRange\",\n value: function inRange(x, y) {\n var scale = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var layout = this.props.layout;\n var scaledX = x / scale,\n scaledY = y / scale;\n if (layout === 'horizontal' || layout === 'vertical') {\n var offset = this.state.offset;\n var isInRange = scaledX >= offset.left && scaledX <= offset.left + offset.width && scaledY >= offset.top && scaledY <= offset.top + offset.height;\n return isInRange ? {\n x: scaledX,\n y: scaledY\n } : null;\n }\n var _this$state10 = this.state,\n angleAxisMap = _this$state10.angleAxisMap,\n radiusAxisMap = _this$state10.radiusAxisMap;\n if (angleAxisMap && radiusAxisMap) {\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n return inRangeOfSector({\n x: scaledX,\n y: scaledY\n }, angleAxis);\n }\n return null;\n }\n }, {\n key: \"parseEventsOfWrapper\",\n value: function parseEventsOfWrapper() {\n var children = this.props.children;\n var tooltipEventType = this.getTooltipEventType();\n var tooltipItem = findChildByType(children, Tooltip);\n var tooltipEvents = {};\n if (tooltipItem && tooltipEventType === 'axis') {\n if (tooltipItem.props.trigger === 'click') {\n tooltipEvents = {\n onClick: this.handleClick\n };\n } else {\n tooltipEvents = {\n onMouseEnter: this.handleMouseEnter,\n onMouseMove: this.handleMouseMove,\n onMouseLeave: this.handleMouseLeave,\n onTouchMove: this.handleTouchMove,\n onTouchStart: this.handleTouchStart,\n onTouchEnd: this.handleTouchEnd\n };\n }\n }\n\n // @ts-expect-error adaptEventHandlers expects DOM Event but generateCategoricalChart works with React UIEvents\n var outerEvents = adaptEventHandlers(this.props, this.handleOuterEvent);\n return _objectSpread(_objectSpread({}, outerEvents), tooltipEvents);\n }\n }, {\n key: \"addListener\",\n value: function addListener() {\n eventCenter.on(SYNC_EVENT, this.handleReceiveSyncEvent);\n }\n }, {\n key: \"removeListener\",\n value: function removeListener() {\n eventCenter.removeListener(SYNC_EVENT, this.handleReceiveSyncEvent);\n }\n }, {\n key: \"filterFormatItem\",\n value: function filterFormatItem(item, displayName, childIndex) {\n var formattedGraphicalItems = this.state.formattedGraphicalItems;\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var entry = formattedGraphicalItems[i];\n if (entry.item === item || entry.props.key === item.key || displayName === getDisplayName(entry.item.type) && childIndex === entry.childIndex) {\n return entry;\n }\n }\n return null;\n }\n }, {\n key: \"renderClipPath\",\n value: function renderClipPath() {\n var clipPathId = this.clipPathId;\n var _this$state$offset = this.state.offset,\n left = _this$state$offset.left,\n top = _this$state$offset.top,\n height = _this$state$offset.height,\n width = _this$state$offset.width;\n return /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: clipPathId\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left,\n y: top,\n height: height,\n width: width\n })));\n }\n }, {\n key: \"getXScales\",\n value: function getXScales() {\n var xAxisMap = this.state.xAxisMap;\n return xAxisMap ? Object.entries(xAxisMap).reduce(function (res, _ref13) {\n var _ref14 = _slicedToArray(_ref13, 2),\n axisId = _ref14[0],\n axisProps = _ref14[1];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getYScales\",\n value: function getYScales() {\n var yAxisMap = this.state.yAxisMap;\n return yAxisMap ? Object.entries(yAxisMap).reduce(function (res, _ref15) {\n var _ref16 = _slicedToArray(_ref15, 2),\n axisId = _ref16[0],\n axisProps = _ref16[1];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getXScaleByAxisId\",\n value: function getXScaleByAxisId(axisId) {\n var _this$state$xAxisMap;\n return (_this$state$xAxisMap = this.state.xAxisMap) === null || _this$state$xAxisMap === void 0 || (_this$state$xAxisMap = _this$state$xAxisMap[axisId]) === null || _this$state$xAxisMap === void 0 ? void 0 : _this$state$xAxisMap.scale;\n }\n }, {\n key: \"getYScaleByAxisId\",\n value: function getYScaleByAxisId(axisId) {\n var _this$state$yAxisMap;\n return (_this$state$yAxisMap = this.state.yAxisMap) === null || _this$state$yAxisMap === void 0 || (_this$state$yAxisMap = _this$state$yAxisMap[axisId]) === null || _this$state$yAxisMap === void 0 ? void 0 : _this$state$yAxisMap.scale;\n }\n }, {\n key: \"getItemByXY\",\n value: function getItemByXY(chartXY) {\n var _this$state11 = this.state,\n formattedGraphicalItems = _this$state11.formattedGraphicalItems,\n activeItem = _this$state11.activeItem;\n if (formattedGraphicalItems && formattedGraphicalItems.length) {\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var graphicalItem = formattedGraphicalItems[i];\n var props = graphicalItem.props,\n item = graphicalItem.item;\n var itemDisplayName = getDisplayName(item.type);\n if (itemDisplayName === 'Bar') {\n var activeBarItem = (props.data || []).find(function (entry) {\n return isInRectangle(chartXY, entry);\n });\n if (activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: activeBarItem\n };\n }\n } else if (itemDisplayName === 'RadialBar') {\n var _activeBarItem = (props.data || []).find(function (entry) {\n return inRangeOfSector(chartXY, entry);\n });\n if (_activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: _activeBarItem\n };\n }\n } else if (isFunnel(graphicalItem, activeItem) || isPie(graphicalItem, activeItem) || isScatter(graphicalItem, activeItem)) {\n var activeIndex = getActiveShapeIndexForTooltip({\n graphicalItem: graphicalItem,\n activeTooltipItem: activeItem,\n itemData: item.props.data\n });\n var childIndex = item.props.activeIndex === undefined ? activeIndex : item.props.activeIndex;\n return {\n graphicalItem: _objectSpread(_objectSpread({}, graphicalItem), {}, {\n childIndex: childIndex\n }),\n payload: isScatter(graphicalItem, activeItem) ? item.props.data[activeIndex] : graphicalItem.props.data[activeIndex]\n };\n }\n }\n }\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n if (!validateWidthHeight(this)) {\n return null;\n }\n var _this$props6 = this.props,\n children = _this$props6.children,\n className = _this$props6.className,\n width = _this$props6.width,\n height = _this$props6.height,\n style = _this$props6.style,\n compact = _this$props6.compact,\n title = _this$props6.title,\n desc = _this$props6.desc,\n others = _objectWithoutProperties(_this$props6, _excluded2);\n var attrs = filterProps(others, false);\n\n // The \"compact\" mode is mainly used as the panorama within Brush\n if (compact) {\n return /*#__PURE__*/React.createElement(ChartLayoutContextProvider, {\n state: this.state,\n width: this.props.width,\n height: this.props.height,\n clipPathId: this.clipPathId\n }, /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height,\n title: title,\n desc: desc\n }), this.renderClipPath(), renderByOrder(children, this.renderMap)));\n }\n if (this.props.accessibilityLayer) {\n var _this$props$tabIndex, _this$props$role;\n // Set tabIndex to 0 by default (can be overwritten)\n attrs.tabIndex = (_this$props$tabIndex = this.props.tabIndex) !== null && _this$props$tabIndex !== void 0 ? _this$props$tabIndex : 0;\n // Set role to img by default (can be overwritten)\n attrs.role = (_this$props$role = this.props.role) !== null && _this$props$role !== void 0 ? _this$props$role : 'application';\n attrs.onKeyDown = function (e) {\n _this2.accessibilityManager.keyboardEvent(e);\n // 'onKeyDown' is not currently a supported prop that can be passed through\n // if it's added, this should be added: this.props.onKeyDown(e);\n };\n attrs.onFocus = function () {\n _this2.accessibilityManager.focus();\n // 'onFocus' is not currently a supported prop that can be passed through\n // if it's added, the focus event should be forwarded to the prop\n };\n }\n var events = this.parseEventsOfWrapper();\n return /*#__PURE__*/React.createElement(ChartLayoutContextProvider, {\n state: this.state,\n width: this.props.width,\n height: this.props.height,\n clipPathId: this.clipPathId\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n className: clsx('recharts-wrapper', className),\n style: _objectSpread({\n position: 'relative',\n cursor: 'default',\n width: width,\n height: height\n }, style)\n }, events, {\n ref: function ref(node) {\n _this2.container = node;\n }\n }), /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height,\n title: title,\n desc: desc,\n style: FULL_WIDTH_AND_HEIGHT\n }), this.renderClipPath(), renderByOrder(children, this.renderMap)), this.renderLegend(), this.renderTooltip()));\n }\n }]);\n return CategoricalChartWrapper;\n }(Component), _defineProperty(_CategoricalChartWrapper, \"displayName\", chartName), _defineProperty(_CategoricalChartWrapper, \"defaultProps\", _objectSpread({\n layout: 'horizontal',\n stackOffset: 'none',\n barCategoryGap: '10%',\n barGap: 4,\n margin: {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n },\n reverseStackOrder: false,\n syncMethod: 'index'\n }, defaultProps)), _defineProperty(_CategoricalChartWrapper, \"getDerivedStateFromProps\", function (nextProps, prevState) {\n var dataKey = nextProps.dataKey,\n data = nextProps.data,\n children = nextProps.children,\n width = nextProps.width,\n height = nextProps.height,\n layout = nextProps.layout,\n stackOffset = nextProps.stackOffset,\n margin = nextProps.margin;\n var dataStartIndex = prevState.dataStartIndex,\n dataEndIndex = prevState.dataEndIndex;\n if (prevState.updateId === undefined) {\n var defaultState = createDefaultState(nextProps);\n return _objectSpread(_objectSpread(_objectSpread({}, defaultState), {}, {\n updateId: 0\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, defaultState), {}, {\n updateId: 0\n }), prevState)), {}, {\n prevDataKey: dataKey,\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n if (dataKey !== prevState.prevDataKey || data !== prevState.prevData || width !== prevState.prevWidth || height !== prevState.prevHeight || layout !== prevState.prevLayout || stackOffset !== prevState.prevStackOffset || !shallowEqual(margin, prevState.prevMargin)) {\n var _defaultState = createDefaultState(nextProps);\n\n // Fixes https://github.com/recharts/recharts/issues/2143\n var keepFromPrevState = {\n // (chartX, chartY) are (0,0) in default state, but we want to keep the last mouse position to avoid\n // any flickering\n chartX: prevState.chartX,\n chartY: prevState.chartY,\n // The tooltip should stay active when it was active in the previous render. If this is not\n // the case, the tooltip disappears and immediately re-appears, causing a flickering effect\n isTooltipActive: prevState.isTooltipActive\n };\n var updatesToState = _objectSpread(_objectSpread({}, getTooltipData(prevState, data, layout)), {}, {\n updateId: prevState.updateId + 1\n });\n var newState = _objectSpread(_objectSpread(_objectSpread({}, _defaultState), keepFromPrevState), updatesToState);\n return _objectSpread(_objectSpread(_objectSpread({}, newState), updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread({\n props: nextProps\n }, newState), prevState)), {}, {\n prevDataKey: dataKey,\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n if (!isChildrenEqual(children, prevState.prevChildren)) {\n var _brush$props$startInd, _brush$props, _brush$props$endIndex, _brush$props2;\n // specifically check for Brush - if it exists and the start and end indexes are different, re-render with the new ones\n var brush = findChildByType(children, Brush);\n var startIndex = brush ? (_brush$props$startInd = (_brush$props = brush.props) === null || _brush$props === void 0 ? void 0 : _brush$props.startIndex) !== null && _brush$props$startInd !== void 0 ? _brush$props$startInd : dataStartIndex : dataStartIndex;\n var endIndex = brush ? (_brush$props$endIndex = (_brush$props2 = brush.props) === null || _brush$props2 === void 0 ? void 0 : _brush$props2.endIndex) !== null && _brush$props$endIndex !== void 0 ? _brush$props$endIndex : dataEndIndex : dataEndIndex;\n var hasDifferentStartOrEndIndex = startIndex !== dataStartIndex || endIndex !== dataEndIndex;\n\n // update configuration in children\n var hasGlobalData = !isNil(data);\n var newUpdateId = hasGlobalData && !hasDifferentStartOrEndIndex ? prevState.updateId : prevState.updateId + 1;\n return _objectSpread(_objectSpread({\n updateId: newUpdateId\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, prevState), {}, {\n updateId: newUpdateId,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n }), prevState)), {}, {\n prevChildren: children,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n });\n }\n return null;\n }), _defineProperty(_CategoricalChartWrapper, \"renderActiveDot\", function (option, props) {\n var dot;\n if ( /*#__PURE__*/isValidElement(option)) {\n dot = /*#__PURE__*/cloneElement(option, props);\n } else if (isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, props);\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-active-dot\",\n key: props.key\n }, dot);\n }), _CategoricalChartWrapper;\n};","/**\n * @fileOverview Bar Chart\n */\nimport { generateCategoricalChart } from './generateCategoricalChart';\nimport { Bar } from '../cartesian/Bar';\nimport { XAxis } from '../cartesian/XAxis';\nimport { YAxis } from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport var BarChart = generateCategoricalChart({\n chartName: 'BarChart',\n GraphicalChild: Bar,\n defaultTooltipEventType: 'axis',\n validateTooltipEventTypes: ['axis', 'item'],\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});","/**\n * @fileOverview Pie Chart\n */\nimport { generateCategoricalChart } from './generateCategoricalChart';\nimport { PolarAngleAxis } from '../polar/PolarAngleAxis';\nimport { PolarRadiusAxis } from '../polar/PolarRadiusAxis';\nimport { formatAxisMap } from '../util/PolarUtils';\nimport { Pie } from '../polar/Pie';\nexport var PieChart = generateCategoricalChart({\n chartName: 'PieChart',\n GraphicalChild: Pie,\n validateTooltipEventTypes: ['item'],\n defaultTooltipEventType: 'item',\n legendContent: 'children',\n axisComponents: [{\n axisType: 'angleAxis',\n AxisComp: PolarAngleAxis\n }, {\n axisType: 'radiusAxis',\n AxisComp: PolarRadiusAxis\n }],\n formatAxisMap: formatAxisMap,\n defaultProps: {\n layout: 'centric',\n startAngle: 0,\n endAngle: 360,\n cx: '50%',\n cy: '50%',\n innerRadius: 0,\n outerRadius: '80%'\n }\n});","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee 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 `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\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 * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\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 assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\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 `_.keysIn` 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 baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\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 * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var root = require('./_root');\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 allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\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 and inherited 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 getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * 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 getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\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 * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var Symbol = require('./_Symbol');\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 * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\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 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/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\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 map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\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 set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\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 genTag = '[object GeneratorFunction]',\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 symbolTag = '[object Symbol]',\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 supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","var baseGet = require('./_baseGet'),\n baseSlice = require('./_baseSlice');\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nmodule.exports = parent;\n","var castPath = require('./_castPath'),\n last = require('./last'),\n parent = require('./_parent'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n}\n\nmodule.exports = baseUnset;\n","var isPlainObject = require('./isPlainObject');\n\n/**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\nfunction customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n}\n\nmodule.exports = customOmitClone;\n","var baseFlatten = require('./_baseFlatten');\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n","var flatten = require('./flatten'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nmodule.exports = flatRest;\n","var arrayMap = require('./_arrayMap'),\n baseClone = require('./_baseClone'),\n baseUnset = require('./_baseUnset'),\n castPath = require('./_castPath'),\n copyObject = require('./_copyObject'),\n customOmitClone = require('./_customOmitClone'),\n flatRest = require('./_flatRest'),\n getAllKeysIn = require('./_getAllKeysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\nvar omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n});\n\nmodule.exports = omit;\n","/**\n * @fileOverview Area Chart\n */\nimport { generateCategoricalChart } from './generateCategoricalChart';\nimport { Area } from '../cartesian/Area';\nimport { XAxis } from '../cartesian/XAxis';\nimport { YAxis } from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport var AreaChart = generateCategoricalChart({\n chartName: 'AreaChart',\n GraphicalChild: Area,\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});","/**\n * @fileOverview Composed Chart\n */\nimport { generateCategoricalChart } from './generateCategoricalChart';\nimport { Area } from '../cartesian/Area';\nimport { Bar } from '../cartesian/Bar';\nimport { Line } from '../cartesian/Line';\nimport { Scatter } from '../cartesian/Scatter';\nimport { XAxis } from '../cartesian/XAxis';\nimport { YAxis } from '../cartesian/YAxis';\nimport { ZAxis } from '../cartesian/ZAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport var ComposedChart = generateCategoricalChart({\n chartName: 'ComposedChart',\n GraphicalChild: [Line, Area, Bar, Scatter],\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }, {\n axisType: 'zAxis',\n AxisComp: ZAxis\n }],\n formatAxisMap: formatAxisMap\n});","function _interopRequireDefault(e) {\n return e && e.__esModule ? e : {\n \"default\": e\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/**\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","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n"],"names":["r","f","o","clsx","isArray","isArray_1","freeGlobal","global","_freeGlobal","require$$0","freeSelf","root","_root","Symbol","_Symbol","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag","getRawTag","value","isOwn","tag","unmasked","result","_getRawTag","objectToString","_objectToString","require$$1","require$$2","nullTag","undefinedTag","baseGetTag","_baseGetTag","isObjectLike","isObjectLike_1","symbolTag","isSymbol","isSymbol_1","reIsDeepProp","reIsPlainProp","isKey","object","type","_isKey","isObject","isObject_1","asyncTag","funcTag","genTag","proxyTag","isFunction","isFunction_1","coreJsData","_coreJsData","maskSrcKey","uid","isMasked","func","_isMasked","funcProto","funcToString","toSource","_toSource","require$$3","reRegExpChar","reIsHostCtor","reIsNative","baseIsNative","pattern","_baseIsNative","getValue","key","_getValue","getNative","_getNative","nativeCreate","_nativeCreate","hashClear","_hashClear","hashDelete","_hashDelete","HASH_UNDEFINED","hashGet","data","_hashGet","hashHas","_hashHas","hashSet","_hashSet","require$$4","Hash","entries","index","length","entry","_Hash","listCacheClear","_listCacheClear","eq","other","eq_1","assocIndexOf","array","_assocIndexOf","arrayProto","splice","listCacheDelete","lastIndex","_listCacheDelete","listCacheGet","_listCacheGet","listCacheHas","_listCacheHas","listCacheSet","_listCacheSet","ListCache","_ListCache","Map","_Map","mapCacheClear","_mapCacheClear","isKeyable","_isKeyable","getMapData","map","_getMapData","mapCacheDelete","_mapCacheDelete","mapCacheGet","_mapCacheGet","mapCacheHas","_mapCacheHas","mapCacheSet","size","_mapCacheSet","MapCache","_MapCache","FUNC_ERROR_TEXT","memoize","resolver","memoized","args","cache","memoize_1","MAX_MEMOIZE_SIZE","memoizeCapped","_memoizeCapped","rePropName","reEscapeChar","stringToPath","string","match","number","quote","subString","_stringToPath","arrayMap","iteratee","_arrayMap","INFINITY","symbolProto","symbolToString","baseToString","_baseToString","toString","toString_1","castPath","_castPath","toKey","_toKey","baseGet","path","_baseGet","get","defaultValue","get_1","isNil","isNil_1","stringTag","isString","isString_1","numberTag","isNumber","isNumber_1","isNaN","_isNaN","mathSign","isPercent","lodashIsNumber","isNan","isNumOrStr","idCounter","uniqueId","prefix","id","getPercentValue","percent","totalValue","validate","getAnyElementOfObject","obj","keys","hasDuplicate","ary","len","interpolateNumber","numberA","numberB","t","findEntryInArray","specifiedKey","specifiedValue","getLinearRegression","xsum","ysum","xysum","xxsum","xmin","xmax","xcurrent","ycurrent","i","a","shallowEqual","b","_key","_typeof","SVGContainerPropKeys","SVGElementPropKeys","PolyElementKeys","FilteredElementKeyMap","EventKeys","adaptEventHandlers","props","newHandler","inputProps","isValidElement","out","e","getEventHandlerOfChild","originalHandler","adaptEventsOfChild","item","_excluded","_excluded2","_objectWithoutProperties","source","excluded","target","_objectWithoutPropertiesLoose","sourceSymbolKeys","sourceKeys","REACT_BROWSER_EVENT_MAP","getDisplayName","Comp","lastChildren","lastResult","toArray","children","Children","child","isFragment","findAllByType","types","childType","findChildByType","validateWidthHeight","el","_el$props","width","height","SVG_TAGS","isSvgElement","isDotProps","dot","isValidSpreadableProp","property","includeEvents","svgElementType","_FilteredElementKeyMa","matchingElementTypeKeys","filterProps","_inputProps","isChildrenEqual","nextChildren","prevChildren","count","isSingleChildEqual","nextChild","prevChild","_ref","nextProps","_ref2","prevProps","renderByOrder","renderMap","elements","record","displayName","_ref3","handler","once","results","getReactEventByType","parseChildIndex","_extends","Surface","viewBox","className","style","title","desc","others","svgView","layerClass","React","Layer","ref","warn","condition","format","_len","baseSlice","start","end","_baseSlice","castSlice","_castSlice","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsVarRange","rsZWJ","reHasUnicode","hasUnicode","_hasUnicode","asciiToArray","_asciiToArray","rsAstral","rsCombo","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsOptJoin","rsSeq","rsSymbol","reUnicode","unicodeToArray","_unicodeToArray","stringToArray","_stringToArray","createCaseFirst","methodName","strSymbols","chr","trailing","_createCaseFirst","upperFirst","upperFirst_1","constant$3","x","cos","sin","sqrt","pi","tau","epsilon","tauEpsilon","append","strings","n","appendRound","digits","d","k","Path","y","x1","y1","x2","y2","x0","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","l","t01","t21","a0","a1","ccw","dx","dy","cw","da","w","h","withPath","shape","_","Linear","context","curveLinear","p","shapeLine","defined","constant","curve","output","line","pointX","pointY","defined0","buffer","shapeArea","area","j","x0z","y0z","arealine","Bump","bumpX","bumpY","symbolCircle","symbolCross","tan30","tan30_2","symbolDiamond","symbolSquare","ka","kr","kx","ky","symbolStar","c","sqrt3","symbolTriangle","s","symbolWye","symbol","circle","noop$2","point","that","Basis","curveBasis","BasisClosed","noop","curveBasisClosed","BasisOpen","curveBasisOpen","LinearClosed","curveLinearClosed","sign","slope3","h0","h1","s0","s1","slope2","t0","t1","MonotoneX","MonotoneY","ReflectContext","monotoneX","monotoneY","Natural","px","controlPoints","py","i0","i1","m","curveNatural","Step","curveStep","stepBefore","stepAfter","stackOffsetNone","series","order","stackOrderNone","stackValue","stackSeries","shapeStack","orderNone","offset","offsetNone","stack","sz","oz","stackOffsetExpand","none","stackOffsetSilhouette","stackOffsetWiggle","s2","si","sij0","sij1","s3","sk","skj0","skj1","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","_toPrimitive","symbolFactories","RADIAN","getSymbolFactory","name","calculateAreaSize","sizeType","angle","registerSymbol","factory","Symbols","_ref$type","_ref$size","_ref$sizeType","rest","getPath","symbolFactory","shapeSymbol","cx","cy","filteredProps","_classCallCheck","instance","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","self","call","_assertThisInitialized","_inherits","subClass","superClass","_setPrototypeOf","SIZE","DefaultLegendContent","_PureComponent","inactiveColor","halfSize","sixthSize","thirdSize","color","iconProps","_this","_this$props","payload","iconSize","layout","formatter","itemStyle","svgStyle","finalFormatter","entryValue","_this$props2","align","finalStyle","PureComponent","stackClear","_stackClear","stackDelete","_stackDelete","stackGet","_stackGet","stackHas","_stackHas","LARGE_ARRAY_SIZE","stackSet","pairs","_stackSet","require$$5","Stack","_Stack","setCacheAdd","_setCacheAdd","setCacheHas","_setCacheHas","SetCache","values","_SetCache","arraySome","predicate","_arraySome","cacheHas","_cacheHas","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","equalArrays","bitmask","customizer","equalFunc","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","_equalArrays","Uint8Array","_Uint8Array","mapToArray","_mapToArray","setToArray","set","_setToArray","boolTag","dateTag","errorTag","mapTag","regexpTag","setTag","arrayBufferTag","dataViewTag","symbolValueOf","equalByTag","convert","stacked","_equalByTag","arrayPush","_arrayPush","baseGetAllKeys","keysFunc","symbolsFunc","_baseGetAllKeys","arrayFilter","resIndex","_arrayFilter","stubArray","stubArray_1","propertyIsEnumerable","nativeGetSymbols","getSymbols","_getSymbols","baseTimes","_baseTimes","argsTag","baseIsArguments","_baseIsArguments","isArguments","isArguments_1","stubFalse","stubFalse_1","freeExports","exports","freeModule","module","moduleExports","Buffer","nativeIsBuffer","isBuffer","MAX_SAFE_INTEGER","reIsUint","isIndex","_isIndex","isLength","isLength_1","arrayTag","objectTag","weakMapTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","typedArrayTags","baseIsTypedArray","_baseIsTypedArray","baseUnary","_baseUnary","freeProcess","nodeUtil","nodeIsTypedArray","isTypedArray","isTypedArray_1","arrayLikeKeys","inherited","isArr","isArg","isBuff","isType","skipIndexes","_arrayLikeKeys","isPrototype","Ctor","proto","_isPrototype","overArg","transform","arg","_overArg","nativeKeys","_nativeKeys","baseKeys","_baseKeys","isArrayLike","isArrayLike_1","keys_1","getAllKeys","_getAllKeys","equalObjects","objProps","objLength","othProps","objStacked","skipCtor","objValue","objCtor","othCtor","_equalObjects","DataView","_DataView","Promise","_Promise","Set","_Set","WeakMap","_WeakMap","require$$6","promiseTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ctorString","_getTag","require$$7","baseIsEqualDeep","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","_baseIsEqualDeep","baseIsEqual","_baseIsEqual","baseIsMatch","matchData","noCustomizer","srcValue","_baseIsMatch","isStrictComparable","_isStrictComparable","getMatchData","_getMatchData","matchesStrictComparable","_matchesStrictComparable","baseMatches","_baseMatches","baseHasIn","_baseHasIn","hasPath","hasFunc","_hasPath","hasIn","hasIn_1","baseMatchesProperty","_baseMatchesProperty","identity","identity_1","baseProperty","_baseProperty","basePropertyDeep","_basePropertyDeep","property_1","baseIteratee","_baseIteratee","baseFindIndex","fromIndex","fromRight","_baseFindIndex","baseIsNaN","_baseIsNaN","strictIndexOf","_strictIndexOf","baseIndexOf","_baseIndexOf","arrayIncludes","_arrayIncludes","arrayIncludesWith","comparator","_arrayIncludesWith","noop_1","createSet","_createSet","baseUniq","includes","isCommon","outer","computed","seenIndex","_baseUniq","uniqBy","uniqBy_1","getUniqPayload","option","defaultUniqBy","renderContent","content","otherProps","EPS","Legend","_box","onBBoxUpdate","box","verticalAlign","margin","chartWidth","chartHeight","hPos","vPos","_box2","_box3","_this2","wrapperStyle","payloadUniqBy","outerStyle","node","spreadableSymbol","isFlattenable","_isFlattenable","baseFlatten","depth","isStrict","_baseFlatten","createBaseFor","iterable","_createBaseFor","baseFor","_baseFor","baseForOwn","_baseForOwn","createBaseEach","eachFunc","collection","_createBaseEach","baseEach","_baseEach","baseMap","_baseMap","baseSortBy","comparer","_baseSortBy","compareAscending","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","_compareAscending","compareMultiple","orders","objCriteria","othCriteria","ordersLength","_compareMultiple","require$$8","baseOrderBy","iteratees","criteria","_baseOrderBy","apply","thisArg","_apply","nativeMax","overRest","otherArgs","_overRest","constant_1","defineProperty","baseSetToString","_baseSetToString","HOT_COUNT","HOT_SPAN","nativeNow","shortOut","lastCalled","stamp","remaining","_shortOut","setToString","_setToString","baseRest","_baseRest","isIterateeCall","_isIterateeCall","sortBy","sortBy_1","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","minLen","_arrayLikeToArray","arr2","u","defaultFormatter","DefaultTooltipContent","_props$separator","separator","_props$contentStyle","contentStyle","_props$itemStyle","_props$labelStyle","labelStyle","itemSorter","wrapperClassName","labelClassName","label","labelFormatter","_props$accessibilityL","accessibilityLayer","listStyle","items","finalItemStyle","finalValue","finalName","formatted","_formatted","finalLabelStyle","hasLabel","finalLabel","wrapperCN","labelCN","accessibilityAttributes","CSS_CLASS_PREFIX","TOOLTIP_HIDDEN","getTooltipCSSClassName","coordinate","translateX","translateY","getTooltipTranslateXY","allowEscapeViewBox","offsetTopLeft","position","reverseDirection","tooltipDimension","viewBoxDimension","negative","positive","_tooltipBoundary","_viewBoxBoundary","tooltipBoundary","viewBoxBoundary","getTransformStyle","useTranslate3d","getTooltipTranslate","_ref4","tooltipBox","cssProperties","EPSILON","TooltipBoundingBox","event","_this$props$coordinat","_this$props$coordinat2","_this$props$coordinat3","_this$props$coordinat4","_this$props$coordinat5","_this$props$coordinat6","active","animationDuration","animationEasing","hasPayload","isAnimationActive","_getTooltipTranslate","cssClasses","parseIsSsrByDefault","Global","Tooltip","filterNull","finalPayload","now","now_1","reWhitespace","trimmedEndIndex","_trimmedEndIndex","reTrimStart","baseTrim","_baseTrim","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toNumber","isBinary","toNumber_1","nativeMin","debounce","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","invokeFunc","time","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","cancel","flush","debounced","isInvoking","debounce_1","throttle","throttle_1","ResponsiveContainer","forwardRef","aspect","_ref$initialDimension","initialDimension","_ref$width","_ref$height","_ref$minWidth","minWidth","minHeight","maxHeight","_ref$debounce","onResize","_ref$style","containerRef","useRef","onResizeRef","useImperativeHandle","_useState","useState","_useState2","sizes","setSizes","setContainerSize","useCallback","newWidth","newHeight","prevState","roundedWidth","roundedHeight","useEffect","callback","_onResizeRef$current","_entries$0$contentRec","containerWidth","containerHeight","observer","_containerRef$current","chartContent","useMemo","calculatedWidth","calculatedHeight","isCharts","isElement","cloneElement","Cell","_props","stringCache","MAX_CACHE_NUM","SPAN_STYLE","MEASUREMENT_SPAN_ID","removeInvalidKeys","copyObj","getStringSize","text","copyStyle","cacheKey","measurementSpan","measurementSpanStyle","rect","getOffset","MULTIPLY_OR_DIVIDE_REGEX","ADD_OR_SUBTRACT_REGEX","CSS_LENGTH_UNIT_REGEX","NUM_SPLIT_REGEX","CONVERSION_RATES","FIXED_CSS_LENGTH_UNITS","STR_NAN","convertToPx","unit","DecimalCSS","num","str","_NUM_SPLIT_REGEX$exec","numStr","calculateArithmetic","expr","newExpr","_MULTIPLY_OR_DIVIDE_R","leftOperand","operator","rightOperand","lTs","rTs","_ADD_OR_SUBTRACT_REGE","_ref5","_ref6","_leftOperand","_operator","_rightOperand","_lTs","_rTs","_result","PARENTHESES_REGEX","calculateParentheses","_PARENTHESES_REGEX$ex","_PARENTHESES_REGEX$ex2","parentheticalExpression","evaluateExpression","expression","safeEvaluateExpression","reduceCSSCalc","BREAKING_SPACES","calculateWordWidths","breakAll","words","wordsWithComputedWidth","word","spaceWidth","calculateWordsByLines","initialWordsWithComputedWith","lineWidth","scaleToFit","maxLines","shouldLimitLines","calculate","currentLine","newLine","originalResult","findLongestLine","suffix","checkOverflow","tempText","doesOverflow","iterations","trimmedResult","middle","prev","_checkOverflow","_checkOverflow2","doesPrevOverflow","_checkOverflow3","_checkOverflow4","doesMiddleOverflow","getWordsWithoutCalculate","getWordsByLines","wordWidths","wcw","sw","DEFAULT_FILL","Text","_ref5$x","propsX","_ref5$y","propsY","_ref5$lineHeight","lineHeight","_ref5$capHeight","capHeight","_ref5$scaleToFit","_ref5$textAnchor","textAnchor","_ref5$verticalAnchor","verticalAnchor","_ref5$fill","fill","wordsByLines","textProps","startDy","transforms","ascending","descending","bisector","compare1","compare2","delta","zero","left","lo","hi","mid","right","center","numbers","valueof","ascendingBisect","bisectRight","bisect","InternMap","keyof","intern_get","intern_set","intern_delete","_intern","compareDefined","compare","ascendingDefined","e10","e5","e2","tickSpec","stop","step","power","error","factor","i2","inc","ticks","reverse","tickIncrement","tickStep","max","min","quickselect","z","sd","newLeft","newRight","swap","quantile","value0","value1","quantileSorted","range","initRange","domain","initInterpolator","interpolator","implicit","ordinal","unknown","scale","band","ordinalRange","r0","r1","bandwidth","round","paddingInner","paddingOuter","rescale","sequence","pointish","copy","define","constructor","prototype","extend","parent","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","channels","color_formatHex","color_formatHex8","color_formatHsl","color_formatRgb","hslConvert","rgbn","Rgb","rgba","hsla","g","rgbConvert","rgb","opacity","clampi","clampa","rgb_formatHex","rgb_formatHex8","rgb_formatRgb","hex","Hsl","hsl","m2","m1","hsl2rgb","clamph","clampt","linear","exponential","gamma","nogamma","interpolateRgb","rgbGamma","colorRgb","numberArray","isNumberArray","genericArray","nb","na","date$1","interpolateNumber$1","reA","reB","one","interpolateString","bi","am","bm","bs","q","interpolate","date","interpolateRound","piecewise","v","I","constants","normalize","clamper","bimap","d0","d1","polymap","transformer","interpolateValue","untransform","clamp","input","continuous","formatDecimal","formatDecimalParts","coefficient","exponent","formatGroup","grouping","thousands","formatNumerals","numerals","re","formatSpecifier","specifier","FormatSpecifier","formatTrim","prefixExponent","formatPrefixAuto","formatRounded","formatTypes","identity$5","prefixes","formatLocale$1","locale","group","currencyPrefix","currencySuffix","decimal","minus","nan","newFormat","comma","precision","trim","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","padding","formatPrefix","defaultLocale","formatLocale","precisionFixed","precisionPrefix","precisionRound","tickFormat","linearish","prestep","maxIter","nice","interval","transformLog","transformExp","transformLogn","transformExpn","pow10","powp","base","logp","reflect","loggish","logs","pows","log","transformSymlog","transformSymexp","symlogish","symlog","transformPow","transformSqrt","transformSquare","powish","pow","square","unsquare","radial","squared","thresholds","threshold","quantize","timeInterval","floori","offseti","field","previous","test","millisecond","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","second","timeMinute","utcMinute","timeHour","utcHour","timeDay","utcDay","unixDay","timeWeekday","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","utcWeekday","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","timeMonth","utcMonth","timeYear","utcYear","ticker","year","month","week","day","hour","minute","tickIntervals","tickInterval","utcTicks","utcTickInterval","timeTicks","timeTickInterval","localDate","utcDate","newDate","locale_dateTime","locale_date","locale_time","locale_periods","locale_weekdays","locale_shortWeekdays","locale_months","locale_shortMonths","periodRe","formatRe","periodLookup","formatLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","formatShortWeekday","formatWeekday","formatShortMonth","formatMonth","formatDayOfMonth","formatMicroseconds","formatYearISO","formatFullYearISO","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMonthNumber","formatMinutes","formatPeriod","formatQuarter","formatUnixTimestamp","formatUnixTimestampSeconds","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatFullYear","formatZone","formatLiteralPercent","utcFormats","formatUTCShortWeekday","formatUTCWeekday","formatUTCShortMonth","formatUTCMonth","formatUTCDayOfMonth","formatUTCMicroseconds","formatUTCYearISO","formatUTCFullYearISO","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCPeriod","formatUTCQuarter","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","parses","parseShortWeekday","parseWeekday","parseShortMonth","parseMonth","parseLocaleDateTime","parseDayOfMonth","parseMicroseconds","parseYear","parseFullYear","parseHour24","parseDayOfYear","parseMilliseconds","parseMonthNumber","parseMinutes","parsePeriod","parseQuarter","parseUnixTimestamp","parseUnixTimestampSeconds","parseSeconds","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekdayNumberSunday","parseWeekNumberMonday","parseLocaleDate","parseLocaleTime","parseZone","parseLiteralPercent","pad","pads","newParse","Z","parseSpecifier","parse","numberRe","percentRe","requoteRe","requote","names","dISO","dow","UTCdISO","timeFormat","utcFormat","calendar","invert","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","timeWeek","timeSecond","utcTime","utcWeek","utcSecond","k10","sequential","sequentialLog","sequentialSymlog","sequentialPow","sequentialSqrt","sequentialQuantile","t2","k21","r2","diverging","divergingLog","divergingSymlog","divergingPow","divergingSqrt","baseExtremum","current","_baseExtremum","baseGt","_baseGt","max_1","baseLt","_baseLt","min_1","map_1","flatMap","flatMap_1","isEqual","isEqual_1","MAX_DIGITS","defaults","Decimal","external","decimalError","invalidArgument","exponentOutOfRange","mathfloor","mathpow","isDecimal","ONE","BASE","LOG_BASE","MAX_E","P","xdL","ydL","dp","divide","getBase10Exponent","pr","wpr","ln","subtract","add","exp","digitsToString","carry","rL","xd","yd","rm","checkInt32","yIsInt","guard","yn","truncate","ws","indexOfLastWord","getZeroString","multiplyInteger","temp","aL","bL","cmp","prod","prodL","qd","rem","remL","rem0","xi","xL","yd0","yL","yz","denominator","sum","getLn10","zs","c0","numerator","parseDecimal","rd","doRound","xdi","xe","xLTy","isExp","clone","ps","config","Decimal$1","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","iter","PLACE_HOLDER","isPlaceHolder","val","curry0","fn","_curried","curryN","argsLength","_len2","restArgs","_key2","newArgs","curry","begin","compose","_len3","_key3","fns","firstFn","tailsFn","res","_len4","_key4","getDigitCount","rangeStep","newA","newB","uninterpolateNumber","diff","uninterpolateTruncation","Arithmetic","_arr","_n","_d","_e","_i","_s","err","getValidInterval","validMin","validMax","getFormatStep","roughStep","allowDecimals","correctionFactor","digitCount","digitCountValue","stepRatio","stepRatioScale","amendStepRatio","formatStep","getTickOfSingleValue","tickCount","absVal","middleIndex","calculateStep","belowCount","upCount","scaleCount","getNiceTickValuesFn","_getValidInterval","_getValidInterval2","cormin","cormax","_values","_calculateStep","tickMin","tickMax","getTickValuesFixedDomainFn","_ref7","_ref8","_getValidInterval5","_getValidInterval6","getNiceTickValues","getTickValuesFixedDomain","isProduction","invariant","message","provided","ErrorBar","dataKey","dataPointFormatter","xAxis","yAxis","svgProps","errorBars","_dataPointFormatter","errorVal","lineCoordinates","lowBound","highBound","_errorVal","yMid","yMin","yMax","xMin","xMax","_scale","xMid","_xMin","_xMax","_yMin","_yMax","coordinates","getLegendProps","formattedGraphicalItems","legendWidth","legendContent","legendItem","legendData","_item$props","legendType","hide","getMainColorOfGraphicItem","getValueByDataKey","getDomainOfDataByKey","filterNil","flattenData","validateData","calculateActiveTickIndex","_ticks$length","unsortedTicks","axis","before","cur","after","sameDirectionCoord","diffInterval","curInRange","afterInRange","sameInterval","minValue","maxValue","stroke","getBarSizeList","globalSize","totalSize","_ref2$stackGroups","stackGroups","numericAxisIds","sgs","stackIds","sLen","_sgs$stackIds$j","cateAxisId","barItems","selfSize","cateId","barSize","getBarPosition","barGap","barCategoryGap","bandSize","_ref3$sizeList","sizeList","maxBarSize","realBarGap","initialValue","useFull","fullBarSize","newPosition","newRes","_offset","originalSize","appendOffsetOfLegend","_unused","legendBox","legendProps","boxWidth","boxHeight","isErrorBarRelevantForAxis","axisType","direction","getDomainOfErrorBars","errorBarChild","mainValue","errorDomain","prevErrorArr","errorValue","lowerValue","upperValue","parseErrorBarsOfAxis","domains","getDomainOfItemsWithSameAxis","isCategoricalAxis","getCoordinatesOfGrid","syncWithTicks","hasMin","hasMax","getTicksOfAxis","isGrid","isAll","duplicateDomain","offsetForBand","scaleContent","row","handlerWeakMap","combineEventHandlers","defaultHandler","childHandler","childWeakMap","combineHandler","parseScale","chartType","hasBar","d3Scales.scaleBand","d3Scales.scaleLinear","d3Scales.scalePoint","d3Scales","checkDomainOfScale","first","last","findPositionOfBar","barPosition","truncateByDomain","offsetSign","offsetPositive","STACK_OFFSET_MAP","getStackedData","stackItems","offsetType","dataKeys","offsetAccessor","getStackGroupsByAxisId","_items","numericAxisId","reverseStackOrder","parentStackGroupsInitialValue","_item$props2","stackId","axisId","parentGroup","childGroup","axisStackGroupsInitialValue","stackGroupsInitialValue","getTicksOfScale","opts","realScaleType","originalDomain","scaleType","tickValues","_domain","_tickValues","getCateCoordinateOfLine","matchedTick","getCateCoordinateOfBar","getBaseValueOfBar","numericAxis","getStackedDataOfItem","itemIndex","getDomainOfSingle","getDomainOfStackGroups","startIndex","endIndex","stackedData","MIN_VALUE_REG","MAX_VALUE_REG","parseSpecifiedDomain","specifiedDomain","dataDomain","allowDataOverflow","_value","getBandSizeOfAxis","isBar","bandWidth","orderedTicks","parseDomainOfCategoryAxis","calculatedDomain","axisChild","getTooltipItem","graphicalItem","_graphicalItem$props","tooltipType","radianToDegree","angleInRadian","polarToCartesian","radius","getMaxRadius","formatAxisMap","axisMap","chartName","startAngle","endAngle","maxRadius","innerRadius","outerRadius","ids","reversed","_range","_range2","_parseScale","finalAxis","distanceBetweenPoints","anotherPoint","getAngleOfPoint","formatAngleOfSector","startCnt","endCnt","reverseFormatAngleOfSetor","inRangeOfSector","sector","_getAngleOfPoint","_formatAngleOfSector","formatAngle","inRange","getTickClassName","tick","getLabel","getDeltaAngle","deltaAngle","renderRadialLabel","labelProps","attrs","clockWise","labelAngle","startPoint","endPoint","getAttrsOfPolarLabel","midAngle","_polarToCartesian","_x","_y","_polarToCartesian2","getAttrsOfCartesianLabel","parentViewBox","verticalSign","verticalOffset","verticalEnd","verticalStart","horizontalSign","horizontalOffset","horizontalEnd","horizontalStart","_attrs","_attrs2","_attrs3","sizeAttrs","isPolar","Label","_ref4$offset","restProps","_props$className","textBreakAll","createElement","isPolarLabel","positionAttrs","parseViewBox","top","labelViewBox","parseLabel","renderCallByParent","parentProps","checkPropsLabel","explicitChildren","implicitLabel","last_1","defaultAccessor","LabelList","_ref$valueAccessor","valueAccessor","idProps","parseLabelList","implicitLabelList","getTangentCircle","isExternal","cornerRadius","cornerIsExternal","centerRadius","theta","centerAngle","circleTangency","lineTangencyAngle","lineTangency","getSectorPath","tempEndAngle","outerStartPoint","outerEndPoint","innerStartPoint","innerEndPoint","getSectorWithCorner","forceCornerRadius","_getTangentCircle","soct","solt","sot","_getTangentCircle2","eoct","eolt","eot","outerArcAngle","_getTangentCircle3","sict","silt","sit","_getTangentCircle4","eict","eilt","eit","innerArcAngle","defaultProps","Sector","sectorProps","deltaRadius","cr","CURVE_FACTORIES","curveBumpX","curveBumpY","curveMonotoneX","curveMonotoneY","curveStepAfter","curveStepBefore","getX","getY","getCurveFactory","_ref$points","points","baseLine","_ref$connectNulls","connectNulls","curveFactory","formatPoints","lineFunction","formatBaseLine","areaPoints","Curve","pathRef","realPath","getOwnPropertyNames","getOwnPropertySymbols","combineComparators","comparatorA","comparatorB","state","createIsCircular","areItemsEqual","cachedA","cachedB","getStrictProperties","hasOwn","sameValueZeroEqual","OWNER","getOwnPropertyDescriptor","areArraysEqual","areDatesEqual","areMapsEqual","matchedIndices","aIterable","aResult","bResult","bIterable","hasMatch","matchIndex","_a","aKey","aValue","_b","bKey","bValue","areObjectsEqual","properties","areObjectsEqualStrict","descriptorA","descriptorB","arePrimitiveWrappersEqual","areRegExpsEqual","areSetsEqual","areTypedArraysEqual","ARGUMENTS_TAG","BOOLEAN_TAG","DATE_TAG","MAP_TAG","NUMBER_TAG","OBJECT_TAG","REG_EXP_TAG","SET_TAG","STRING_TAG","assign","createEqualityComparator","createEqualityComparatorConfig","circular","createCustomConfig","strict","areArraysEqual$1","areMapsEqual$1","areObjectsEqual$1","areSetsEqual$1","createInternalEqualityComparator","_indexOrKeyA","_indexOrKeyB","_parentA","_parentB","createIsEqual","createState","equals","meta","deepEqual","createCustomEqual","createCustomInternalComparator","safeRequestAnimationFrame","setRafTimeout","timeout","currTime","shouldUpdate","_toArray","createAnimateManager","currStyle","handleChange","shouldStop","setStyle","_style","styles","_styles","curr","restStyles","_handleChange","hint","prim","getIntersectionKeys","preObj","nextObj","param","getDashCase","mapObject","getTransitionVal","duration","easing","prop","ACCURACY","cubicBezierFactor","c1","c2","multyTime","params","pre","cubicBezier","derivativeCubicBezier","newParams","configBezier","_easing$1$split$0$spl","_easing$1$split$0$spl2","curveX","curveY","derCurveX","rangeValue","bezier","_t","evalT","derVal","configSpring","_config$stiff","stiff","_config$damping","damping","_config$dt","dt","stepper","currX","destX","currV","FSpring","FDamping","newV","newX","configEasing","alpha","needContinue","from","to","calStepperVals","preVals","steps","nextStepVals","_easing","_easing2","configUpdate","render","interKeys","timingStyle","stepperStyle","cafId","preTime","beginTime","update","getCurrStyle","shouldStopAnimation","stepperUpdate","deltaTime","timingUpdate","_createSuper","Derived","hasNativeReflectConstruct","Super","NewTarget","Animate","_super","isActive","attributeName","canBegin","_this$props3","shouldReAnimate","currentFrom","newState","isTriggered","_newState","onAnimationEnd","onAnimationStart","startAnimation","finalStartAnimation","_this3","_steps$","initialStyle","_steps$$duration","initialTime","addStyle","nextItem","_nextItem$easing","nextProperties","preItem","transition","newStyle","propsTo","manager","_this$props4","stateStyle","cloneContainer","container","_container$props","_container$props$styl","PropTypes","_inheritsLoose","setPrototypeOf","hasClass","element","addClass","replaceClassName","origClass","classToRemove","removeClass","getRectanglePath","ySign","xSign","newRadius","_newRadius","isInRectangle","minX","maxX","minY","maxY","Rectangle","rectangleProps","totalLength","setTotalLength","pathTotalLength","animationBegin","isUpdateAnimationActive","currWidth","currHeight","currY","isValidatePoint","getParsedPoints","segmentPoints","getSinglePolygonPath","segPoints","polygonPath","getRanglePath","baseLinePoints","outerPath","Polygon","hasStroke","rangePath","singlePath","Dot","Cross","_ref$x","_ref$y","_ref$top","_ref$left","maxBy","maxBy_1","minBy","minBy_1","PolarRadiusAxis","orientation","maxRadiusTick","minRadiusTick","axisLine","extent","point0","point1","tickFormatter","axisProps","customTickProps","coord","tickProps","_this$props5","tickItem","eps","PolarAngleAxis","tickSize","tickLineSize","p1","p2","axisLineType","tickLine","tickLineProps","lineCoord","getPrototype","_getPrototype","objectCtorString","isPlainObject","isPlainObject_1","isBoolean","isBoolean_1","getTrapezoidPath","upperWidth","lowerWidth","widthGap","Trapezoid","trapezoidProps","currUpperWidth","currLowerWidth","defaultPropTransformer","isSymbolsProps","shapeType","_elementProps","ShapeSelector","elementProps","getPropsFromShapeOption","Shape","_ref2$propTransformer","propTransformer","_ref2$activeClassName","activeClassName","isFunnel","_item","isPie","isScatter","compareFunnel","shapeData","activeTooltipItem","_activeTooltipItem$la","_activeTooltipItem$la2","xMatches","yMatches","comparePie","startAngleMatches","endAngleMatches","compareScatter","zMatches","getComparisonFn","activeItem","comparison","getShapeDataKey","shapeKey","getActiveShapeTooltipPayload","_activeItem$tooltipPa","_activeItem$tooltipPa2","getActiveShapeIndexForTooltip","itemData","tooltipPayload","activeItemMatches","datum","dataIndex","valuesMatch","mouseCoordinateMatches","indexOfMouseCoordinates","coordinatesMatch","activeIndex","_Pie","Pie","sectors","labelLine","valueKey","pieProps","customLabelProps","customLabelLineProps","offsetRadius","labels","lineProps","realDataKey","activeShape","blendStroke","inactiveShapeProp","inactiveShape","sectorOptions","animationId","_this$state","prevSectors","prevIsAnimationActive","stepData","curAngle","paddingAngle","angleIp","latest","interpolatorAngle","_latest","pieRef","_this4","next","_next","_this5","isAnimationFinished","presentationProps","cells","cell","maxPieRadius","pieData","nameKey","minAngle","absDeltaAngle","notZeroItemCount","totalPadingAngle","realTotalAngle","tempStartAngle","middleRadius","tooltipPosition","nativeCeil","baseRange","_baseRange","MAX_INTEGER","toFinite","toFinite_1","createRange","_createRange","range_1","PREFIX_LIST","generatePrefixStyle","camelName","createScale","travellerWidth","scalePoint","scaleValues","isTouch","Brush","onDragEnd","startX","endX","gap","minIndex","maxIndex","slideMoveStartX","onChange","newIndex","_this$state2","brushMoveStartX","movingTravellerId","prevValue","isFullGap","_this$state3","currentScaleValue","currentIndex","newScaleValue","_this$props6","_this$props7","chartElement","travellerX","_data$startIndex","_data$endIndex","_this$props8","traveller","ariaLabel","travellerProps","ariaLabelBrush","_this$props9","_this$props10","_this$state4","_this$props11","alwaysShowText","_this$state5","isTextActive","isSlideMoving","isTravellerMoving","isTravellerFocused","isPanoramic","lineY","rectangle","updateId","valueRange","baseSome","_baseSome","some","some_1","ifOverflowMatches","alwaysShow","ifOverflow","baseAssignValue","_baseAssignValue","mapValues","mapValues_1","arrayEvery","_arrayEvery","baseEvery","_baseEvery","every","every_1","typeguardBarRectangleProps","xProp","yProp","xValue","yValue","heightValue","widthValue","BarRectangle","minPointSizeCallback","minPointSize","isValueNumber","_Bar","Bar","activeBar","baseProps","prevData","interpolatorX","interpolatorY","interpolatorWidth","interpolatorHeight","_interpolatorHeight","backgroundProps","background","needClip","clipPathId","errorBarItems","dataPoint","errorBarProps","needClipX","needClipY","xAxisTicks","yAxisTicks","dataStartIndex","displayedData","pos","minPointSizeProp","stackedDomain","baseValue","rects","baseValueScale","currentValueScale","computedHeight","_baseValueScale","_currentValueScale","_delta","_axis$padding","mirror","offsetKey","calculatedPadding","needSpace","smallestDistanceBetweenValues","sortedValues","smallestDistanceInPercent","rangeWidth","halfBand","rectWithPoints","rectWithCoords","ScaleHelper","bandAware","_offset2","createLabeledScales","scales","normalizeAngle","getAngledRectangleWidth","normalizedAngle","angleRadians","angleThreshold","angledWidth","createFind","findIndexFunc","_createFind","toInteger","remainder","toInteger_1","findIndex","findIndex_1","find","find_1","calculateViewBox","XAxisContext","createContext","YAxisContext","ViewBoxContext","OffsetContext","ClipPathIdContext","ChartHeightContext","ChartWidthContext","ChartLayoutContextProvider","_props$state","xAxisMap","yAxisMap","useClipPathId","useContext","useXAxisOrThrow","xAxisId","useArbitraryXAxis","useYAxisWithFiniteDomainOrRandom","yAxisWithFiniteDomain","useYAxisOrThrow","yAxisId","useViewBox","useOffset","useChartWidth","useChartHeight","renderLine","getEndPoints","isFixedX","isFixedY","isSegment","xAxisOrientation","yAxisOrientation","yCoord","xCoord","_coord","_points","segment","_points2","ReferenceLine","fixedX","fixedY","isX","isY","endPoints","_endPoints","_endPoints$","_endPoints$2","clipPath","getCoordinate","ReferenceDot","dotProps","getRect","hasX1","hasX2","hasY1","hasY2","xValue1","xValue2","yValue1","yValue2","ReferenceArea","getEveryNthWithCondition","isValid","getAngledTickWidth","contentSize","unitSize","getTickBoundaries","sizeKey","isWidth","isVisible","tickPosition","getSize","getNumberIntervalTicks","getEquidistantTicks","boundaries","getTickSize","minTickGap","initialStart","stepsize","_loop","tickCoord","isShow","_ret","getTicksEnd","getTicksStart","preserveEnd","tail","tailSize","tailGap","isTailShow","_loop2","getTicks","fontSize","letterSpacing","candidates","_excluded3","CartesianAxis","_Component","nextState","viewBoxOld","restPropsOld","htmlLayer","tickMargin","tx","ty","finalTickSize","needHeight","needWidth","finalTicks","_this2$getTickLineCoo","ticksGenerator","noTicksProps","Component","Background","fillOpacity","renderLineItem","lineItem","_filterProps","restOfFilteredProps","HorizontalGridLines","_props$horizontal","horizontal","horizontalPoints","lineItemProps","VerticalGridLines","_props$vertical","vertical","verticalPoints","HorizontalStripes","horizontalFill","_props$horizontal2","roundedSortedHorizontalPoints","lastStripe","colorIndex","VerticalStripes","_props$vertical2","verticalFill","roundedSortedVerticalPoints","defaultVerticalCoordinatesGenerator","defaultHorizontalCoordinatesGenerator","CartesianGrid","_props$stroke","_props$fill","_props$horizontal3","_props$horizontalFill","_props$vertical3","_props$verticalFill","propsIncludingDefaults","horizontalValues","verticalValues","verticalCoordinatesGenerator","horizontalCoordinatesGenerator","isHorizontalValues","generatorResult","isVerticalValues","_generatorResult","Line","lines","lineLength","remainLength","restLength","remainLines","emptyLines","curveDom","clipDot","customDotProps","dots","dotsProps","curveProps","strokeDasharray","animateNewValues","prevPoints","prevPointsDiffFactor","prevPointIndex","_interpolatorX","_interpolatorY","curLength","currentStrokeDasharray","hasSinglePoint","_ref2$r","_ref2$strokeWidth","strokeWidth","_ref3$clipDot","dotSize","linesUnit","dotItem","_Area","Area","areaProps","startY","endY","isRange","prevBaseLine","stepPoints","stepBaseLine","_interpolator","chartBaseValue","itemBaseValue","domainMax","domainMin","hasStack","isHorizontalLayout","isBreakPoint","ZAxis","ScatterSymbol","Scatter","interpolatorCx","interpolatorCy","interpolatorSize","errorDataKey","lineType","lineJointType","scatterProps","customLineProps","linePoints","_getLinearRegression","linearExp","zAxis","xAxisDataKey","yAxisDataKey","zAxisDataKey","defaultRangeZ","defaultZ","xBandSize","yBandSize","XAxis","axisOptions","YAxis","detectReferenceElementsDomain","specifiedTicks","areas","idKey","finalDomain","key1","key2","value2","has","Events","EE","addListener","emitter","listener","evt","clearEvent","EventEmitter","events","handlers","ee","listeners","a2","a3","a4","a5","eventCenter","SYNC_EVENT","AccessibilityManager","_ref$coordinateList","coordinateList","_ref$container","_ref$layout","_ref$offset","_ref$mouseHandlerCall","mouseHandlerCallback","_window","_window2","_this$container$getBo","scrollOffsetX","scrollOffsetY","pageX","pageY","isDomainSpecifiedByUser","domainStart","domainEnd","getCursorRectangle","activeCoordinate","tooltipAxisBandSize","getRadialCursorPoints","getCursorPoints","innerPoint","outerPoint","Cursor","tooltipEventType","activePayload","activeTooltipIndex","cursorComp","_getRadialCursorPoint","cursorProps","ORIENT_MAP","FULL_WIDTH_AND_HEIGHT","originCoordinate","renderAsIs","calculateTooltipPos","rangeObj","getActiveCoordinate","tooltipTicks","_angle","_radius","getDisplayedData","graphicalItems","dataEndIndex","itemsData","getDefaultDomainByAxisType","getTooltipContent","chartData","activeLabel","tooltipAxis","_child$props$data","getTooltipData","rangeData","getAxisMapByAxes","axes","axisIdKey","stackOffset","isCategorical","_child$props$domain2","_child$props","allowDuplicatedCategory","includeHidden","categoricalDomain","defaultDomain","_child$props$domain","childDomain","duplicate","errorBarsDomain","axisDomain","isDomainValid","getAxisMapByItems","Axis","getAxisMap","_ref4$axisType","AxisComp","tooltipTicksGenerator","createDefaultState","defaultShowTooltip","brushItem","hasGraphicalBarItem","getAxisNameByLayout","calculateOffset","prevLegendBBox","_ref5$xAxisMap","_ref5$yAxisMap","offsetH","offsetV","brushBottom","offsetWidth","offsetHeight","getCartesianAxisSize","axisObj","axisName","generateCategoricalChart","_CategoricalChartWrapper","GraphicalChild","_ref6$defaultTooltipE","defaultTooltipEventType","_ref6$validateTooltip","validateTooltipEventTypes","axisComponents","getFormatItems","currentState","globalMaxBarSize","_getAxisNameByLayout","numericAxisName","cateAxisName","formattedItems","childMaxBarSize","axisObjInitialValue","cateAxis","cateTicks","itemIsBar","_getBandSizeOfAxis","barBandSize","composedFn","updateStateOfAxisMapsOffsetAndStackGroups","_getAxisNameByLayout2","cateAxisMap","ticksObj","CategoricalChartWrapper","_props$id","_props$throttleDelay","cId","_ref9","mouse","_nextState","onMouseEnter","onMouseMove","onMouseLeave","eventName","_mouse","_nextState2","onClick","onMouseDown","_nextState3","onMouseUp","_nextState4","syncMethod","chartX","chartY","validateChartX","validateChartY","_element$props$active","isTooltipActive","axisOption","_element$props","radialLines","polarAngles","polarRadius","radiusAxisMap","angleAxisMap","radiusAxis","angleAxis","_tooltipItem$props$ac","tooltipItem","_this$state6","_assertThisInitialize","_this$state7","_element$props2","_ref10","activePoint","basePoint","childIndex","_item$item$props","activeDot","_this$state8","_item$item$props2","hasActive","itemEvents","findWithPayload","_this$getItemByXY","_ref11","_ref11$graphicalItem","_ref11$graphicalItem$","xyItem","_this$props$margin$le","_this$props$margin$to","tooltipElem","defaultIndex","independentAxisCoord","dependentAxisCoord","isHorizontal","scatterPlotElement","_ref12","_this$props$margin$le2","_this$props$margin$to2","eventType","boundingRect","containerOffset","_this$state9","xScale","yScale","toolTipData","scaledX","scaledY","isInRange","_this$state10","tooltipEvents","outerEvents","_this$state$offset","_ref13","_ref14","_ref15","_ref16","_this$state$xAxisMap","_this$state$yAxisMap","chartXY","_this$state11","itemDisplayName","activeBarItem","_activeBarItem","compact","_this$props$tabIndex","_this$props$role","defaultState","_defaultState","keepFromPrevState","updatesToState","_brush$props$startInd","_brush$props","_brush$props$endIndex","_brush$props2","brush","hasDifferentStartOrEndIndex","hasGlobalData","newUpdateId","BarChart","PieChart","arrayEach","_arrayEach","assignValue","_assignValue","copyObject","isNew","newValue","_copyObject","baseAssign","_baseAssign","nativeKeysIn","_nativeKeysIn","baseKeysIn","isProto","_baseKeysIn","keysIn","keysIn_1","baseAssignIn","_baseAssignIn","allocUnsafe","cloneBuffer","isDeep","copyArray","_copyArray","copySymbols","_copySymbols","getSymbolsIn","_getSymbolsIn","copySymbolsIn","_copySymbolsIn","getAllKeysIn","_getAllKeysIn","initCloneArray","_initCloneArray","cloneArrayBuffer","arrayBuffer","_cloneArrayBuffer","cloneDataView","dataView","_cloneDataView","reFlags","cloneRegExp","regexp","_cloneRegExp","cloneSymbol","_cloneSymbol","cloneTypedArray","typedArray","_cloneTypedArray","initCloneByTag","_initCloneByTag","objectCreate","baseCreate","_baseCreate","initCloneObject","_initCloneObject","baseIsMap","_baseIsMap","nodeIsMap","isMap","isMap_1","baseIsSet","_baseIsSet","nodeIsSet","isSet","isSet_1","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","CLONE_DEEP_FLAG","CLONE_FLAT_FLAG","CLONE_SYMBOLS_FLAG","cloneableTags","baseClone","isFlat","isFull","isFunc","subValue","_baseClone","_parent","baseUnset","_baseUnset","customOmitClone","_customOmitClone","flatten","flatten_1","flatRest","_flatRest","omit","paths","omit_1","AreaChart","ComposedChart","_interopRequireDefault","componentWillMount","componentWillReceiveProps","updater","componentWillUpdate","polyfill","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","componentName","newApiName","componentDidUpdate","maybeSnapshot","snapshot","Transform","location"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435]}