UNPKG

1.49 MBSource Map (JSON)View Raw
1{"version":3,"sources":["webpack://Recharts/webpack/universalModuleDefinition","webpack://Recharts/webpack/bootstrap","webpack://Recharts/external {\"root\":\"PropTypes\",\"commonjs2\":\"prop-types\",\"commonjs\":\"prop-types\",\"amd\":\"prop-types\"}","webpack://Recharts/external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack://Recharts/./node_modules/lodash/isFunction.js","webpack://Recharts/./node_modules/lodash/isNil.js","webpack://Recharts/./node_modules/classnames/index.js","webpack://Recharts/./node_modules/lodash/isArray.js","webpack://Recharts/./node_modules/react-smooth/lib/index.js","webpack://Recharts/./node_modules/lodash/isEqual.js","webpack://Recharts/./node_modules/core-js/modules/_export.js","webpack://Recharts/./node_modules/lodash/isObject.js","webpack://Recharts/./node_modules/lodash/get.js","webpack://Recharts/./node_modules/lodash/isNaN.js","webpack://Recharts/./node_modules/lodash/_baseIteratee.js","webpack://Recharts/./node_modules/lodash/isString.js","webpack://Recharts/./node_modules/lodash/range.js","webpack://Recharts/./node_modules/lodash/isObjectLike.js","webpack://Recharts/(webpack)/buildin/global.js","webpack://Recharts/./node_modules/lodash/identity.js","webpack://Recharts/./node_modules/core-js/modules/_fails.js","webpack://Recharts/./node_modules/lodash/_baseGetTag.js","webpack://Recharts/./node_modules/lodash/_assocIndexOf.js","webpack://Recharts/./node_modules/react-smooth/lib/util.js","webpack://Recharts/./node_modules/lodash/_arrayMap.js","webpack://Recharts/./node_modules/lodash/_baseEach.js","webpack://Recharts/./node_modules/lodash/_isIterateeCall.js","webpack://Recharts/./node_modules/lodash/_baseExtremum.js","webpack://Recharts/./node_modules/lodash/isNumber.js","webpack://Recharts/./node_modules/lodash/sortBy.js","webpack://Recharts/./node_modules/lodash/min.js","webpack://Recharts/./node_modules/lodash/maxBy.js","webpack://Recharts/./node_modules/reduce-css-calc/index.js","webpack://Recharts/./node_modules/core-js/modules/_global.js","webpack://Recharts/./node_modules/core-js/modules/_core.js","webpack://Recharts/./node_modules/core-js/modules/_is-object.js","webpack://Recharts/./node_modules/core-js/modules/_descriptors.js","webpack://Recharts/./node_modules/core-js/modules/_math-sign.js","webpack://Recharts/./node_modules/core-js/modules/_math-expm1.js","webpack://Recharts/./node_modules/lodash/_baseIsEqual.js","webpack://Recharts/./node_modules/lodash/_overArg.js","webpack://Recharts/./node_modules/lodash/isArrayLike.js","webpack://Recharts/./node_modules/lodash/isPlainObject.js","webpack://Recharts/./node_modules/lodash/debounce.js","webpack://Recharts/./node_modules/recharts-scale/lib/index.js","webpack://Recharts/./node_modules/lodash/mapValues.js","webpack://Recharts/./node_modules/core-js/modules/_hide.js","webpack://Recharts/./node_modules/core-js/modules/_math-log1p.js","webpack://Recharts/./node_modules/react-smooth/lib/Animate.js","webpack://Recharts/./node_modules/lodash/_Stack.js","webpack://Recharts/./node_modules/lodash/_SetCache.js","webpack://Recharts/./node_modules/lodash/_arraySome.js","webpack://Recharts/./node_modules/lodash/_cacheHas.js","webpack://Recharts/./node_modules/lodash/_baseIndexOf.js","webpack://Recharts/./node_modules/raf/index.js","webpack://Recharts/./node_modules/react-smooth/lib/easing.js","webpack://Recharts/./node_modules/lodash/_baseUnary.js","webpack://Recharts/./node_modules/lodash/_baseRest.js","webpack://Recharts/./node_modules/lodash/_baseForOwn.js","webpack://Recharts/./node_modules/lodash/keys.js","webpack://Recharts/./node_modules/lodash/_isStrictComparable.js","webpack://Recharts/./node_modules/lodash/_matchesStrictComparable.js","webpack://Recharts/./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","webpack://Recharts/./node_modules/lodash/_root.js","webpack://Recharts/./node_modules/balanced-match/index.js","webpack://Recharts/./node_modules/lodash/_baseFlatten.js","webpack://Recharts/./node_modules/lodash/_baseMap.js","webpack://Recharts/./node_modules/lodash/isSymbol.js","webpack://Recharts/./node_modules/lodash/_baseGt.js","webpack://Recharts/./node_modules/lodash/_baseLt.js","webpack://Recharts/./node_modules/decimal.js-light/decimal.js","webpack://Recharts/./node_modules/recharts-scale/lib/util/utils.js","webpack://Recharts/./node_modules/react-resize-detector/lib/index.js","webpack://Recharts/./node_modules/lodash/max.js","webpack://Recharts/./node_modules/lodash/flatMap.js","webpack://Recharts/./node_modules/lodash/every.js","webpack://Recharts/./node_modules/lodash/some.js","webpack://Recharts/./node_modules/lodash/last.js","webpack://Recharts/./node_modules/lodash/minBy.js","webpack://Recharts/./node_modules/lodash/throttle.js","webpack://Recharts/./node_modules/events/events.js","webpack://Recharts/./node_modules/lodash/sumBy.js","webpack://Recharts/./node_modules/core-js/es6/math.js","webpack://Recharts/./node_modules/core-js/modules/es6.math.acosh.js","webpack://Recharts/./node_modules/core-js/modules/_object-dp.js","webpack://Recharts/./node_modules/core-js/modules/_an-object.js","webpack://Recharts/./node_modules/core-js/modules/_ie8-dom-define.js","webpack://Recharts/./node_modules/core-js/modules/_dom-create.js","webpack://Recharts/./node_modules/core-js/modules/_to-primitive.js","webpack://Recharts/./node_modules/core-js/modules/_property-desc.js","webpack://Recharts/./node_modules/core-js/modules/_redefine.js","webpack://Recharts/./node_modules/core-js/modules/_has.js","webpack://Recharts/./node_modules/core-js/modules/_uid.js","webpack://Recharts/./node_modules/core-js/modules/_ctx.js","webpack://Recharts/./node_modules/core-js/modules/_a-function.js","webpack://Recharts/./node_modules/core-js/modules/es6.math.asinh.js","webpack://Recharts/./node_modules/core-js/modules/es6.math.atanh.js","webpack://Recharts/./node_modules/core-js/modules/es6.math.cbrt.js","webpack://Recharts/./node_modules/core-js/modules/es6.math.clz32.js","webpack://Recharts/./node_modules/core-js/modules/es6.math.cosh.js","webpack://Recharts/./node_modules/core-js/modules/es6.math.expm1.js","webpack://Recharts/./node_modules/core-js/modules/es6.math.fround.js","webpack://Recharts/./node_modules/core-js/modules/_math-fround.js","webpack://Recharts/./node_modules/core-js/modules/es6.math.hypot.js","webpack://Recharts/./node_modules/core-js/modules/es6.math.imul.js","webpack://Recharts/./node_modules/core-js/modules/es6.math.log10.js","webpack://Recharts/./node_modules/core-js/modules/es6.math.log1p.js","webpack://Recharts/./node_modules/core-js/modules/es6.math.log2.js","webpack://Recharts/./node_modules/core-js/modules/es6.math.sign.js","webpack://Recharts/./node_modules/core-js/modules/es6.math.sinh.js","webpack://Recharts/./node_modules/core-js/modules/es6.math.tanh.js","webpack://Recharts/./node_modules/core-js/modules/es6.math.trunc.js","webpack://Recharts/./node_modules/lodash/_baseGet.js","webpack://Recharts/./node_modules/lodash/_baseIsEqualDeep.js","webpack://Recharts/./node_modules/lodash/_listCacheClear.js","webpack://Recharts/./node_modules/lodash/_listCacheDelete.js","webpack://Recharts/./node_modules/lodash/eq.js","webpack://Recharts/./node_modules/lodash/_listCacheGet.js","webpack://Recharts/./node_modules/lodash/_listCacheHas.js","webpack://Recharts/./node_modules/lodash/_listCacheSet.js","webpack://Recharts/./node_modules/lodash/_equalArrays.js","webpack://Recharts/./node_modules/lodash/_equalByTag.js","webpack://Recharts/./node_modules/lodash/_equalObjects.js","webpack://Recharts/./node_modules/lodash/_getAllKeys.js","webpack://Recharts/./node_modules/lodash/_getTag.js","webpack://Recharts/./node_modules/lodash/isBuffer.js","webpack://Recharts/./node_modules/lodash/isTypedArray.js","webpack://Recharts/./node_modules/react-smooth/lib/AnimateManager.js","webpack://Recharts/./node_modules/react-smooth/lib/setRafTimeout.js","webpack://Recharts/./node_modules/performance-now/lib/performance-now.js","webpack://Recharts/./node_modules/process/browser.js","webpack://Recharts/./node_modules/react-smooth/lib/PureRender.js","webpack://Recharts/./node_modules/lodash/_getPrototype.js","webpack://Recharts/./node_modules/lodash/intersection.js","webpack://Recharts/./node_modules/lodash/_baseIntersection.js","webpack://Recharts/./node_modules/lodash/_arrayIncludes.js","webpack://Recharts/./node_modules/lodash/_arrayIncludesWith.js","webpack://Recharts/./node_modules/lodash/_overRest.js","webpack://Recharts/./node_modules/lodash/_apply.js","webpack://Recharts/./node_modules/lodash/_setToString.js","webpack://Recharts/./node_modules/lodash/_castArrayLikeObject.js","webpack://Recharts/./node_modules/lodash/isArrayLikeObject.js","webpack://Recharts/./node_modules/lodash/isLength.js","webpack://Recharts/./node_modules/react-smooth/lib/configUpdate.js","webpack://Recharts/./node_modules/lodash/filter.js","webpack://Recharts/./node_modules/lodash/_arrayFilter.js","webpack://Recharts/./node_modules/lodash/_baseFilter.js","webpack://Recharts/./node_modules/lodash/_baseFor.js","webpack://Recharts/./node_modules/lodash/_createBaseFor.js","webpack://Recharts/./node_modules/lodash/_createBaseEach.js","webpack://Recharts/./node_modules/lodash/_baseMatches.js","webpack://Recharts/./node_modules/lodash/_baseIsMatch.js","webpack://Recharts/./node_modules/lodash/_getMatchData.js","webpack://Recharts/./node_modules/lodash/_baseMatchesProperty.js","webpack://Recharts/./node_modules/lodash/hasIn.js","webpack://Recharts/./node_modules/lodash/_isKey.js","webpack://Recharts/./node_modules/lodash/_toKey.js","webpack://Recharts/./node_modules/lodash/property.js","webpack://Recharts/./node_modules/react-smooth/lib/AnimateGroup.js","webpack://Recharts/./node_modules/react-transition-group/TransitionGroup.js","webpack://Recharts/./node_modules/react-transition-group/utils/ChildMapping.js","webpack://Recharts/./node_modules/react-smooth/lib/AnimateGroupChild.js","webpack://Recharts/./node_modules/react-transition-group/Transition.js","webpack://Recharts/external {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\"}","webpack://Recharts/./node_modules/react-transition-group/utils/PropTypes.js","webpack://Recharts/./node_modules/lodash/now.js","webpack://Recharts/./node_modules/lodash/_freeGlobal.js","webpack://Recharts/./node_modules/lodash/toNumber.js","webpack://Recharts/./node_modules/react-resize-detector/lib/components/ResizeDetector.js","webpack://Recharts/./node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","webpack://Recharts/./node_modules/lodash.debounce/index.js","webpack://Recharts/./node_modules/lodash.throttle/index.js","webpack://Recharts/./node_modules/reduce-function-call/index.js","webpack://Recharts/./node_modules/math-expression-evaluator/src/formula_evaluator.js","webpack://Recharts/./node_modules/math-expression-evaluator/src/postfix_evaluator.js","webpack://Recharts/./node_modules/math-expression-evaluator/src/postfix.js","webpack://Recharts/./node_modules/math-expression-evaluator/src/lexer.js","webpack://Recharts/./node_modules/math-expression-evaluator/src/math_function.js","webpack://Recharts/./node_modules/lodash/_arrayPush.js","webpack://Recharts/./node_modules/lodash/_isFlattenable.js","webpack://Recharts/./node_modules/lodash/_Symbol.js","webpack://Recharts/./node_modules/lodash/isArguments.js","webpack://Recharts/./node_modules/lodash/_baseOrderBy.js","webpack://Recharts/./node_modules/lodash/_baseSortBy.js","webpack://Recharts/./node_modules/lodash/_compareMultiple.js","webpack://Recharts/./node_modules/lodash/_compareAscending.js","webpack://Recharts/./node_modules/lodash/map.js","webpack://Recharts/./node_modules/recharts-scale/lib/getNiceTickValues.js","webpack://Recharts/./node_modules/recharts-scale/lib/util/arithmetic.js","webpack://Recharts/./node_modules/lodash/_arrayEvery.js","webpack://Recharts/./node_modules/lodash/_baseEvery.js","webpack://Recharts/./node_modules/lodash/_baseAssignValue.js","webpack://Recharts/./node_modules/lodash/_defineProperty.js","webpack://Recharts/./node_modules/lodash/_getNative.js","webpack://Recharts/./node_modules/lodash/_baseSome.js","webpack://Recharts/./node_modules/lodash/_createRange.js","webpack://Recharts/./node_modules/lodash/_baseRange.js","webpack://Recharts/./node_modules/lodash/toFinite.js","webpack://Recharts/./node_modules/lodash/_baseSum.js","webpack://Recharts/./src/polyfill.js","webpack://Recharts/./src/util/DataUtils.js","webpack://Recharts/./src/util/PureRender.js","webpack://Recharts/./src/util/ReactUtils.js","webpack://Recharts/./src/container/Surface.js","webpack://Recharts/./src/container/Layer.js","webpack://Recharts/./node_modules/d3-path/src/path.js","webpack://Recharts/./node_modules/d3-shape/src/constant.js","webpack://Recharts/./node_modules/d3-shape/src/math.js","webpack://Recharts/./node_modules/d3-shape/src/curve/linear.js","webpack://Recharts/./node_modules/d3-shape/src/point.js","webpack://Recharts/./node_modules/d3-shape/src/line.js","webpack://Recharts/./node_modules/d3-shape/src/area.js","webpack://Recharts/./node_modules/d3-shape/src/curve/radial.js","webpack://Recharts/./node_modules/d3-shape/src/lineRadial.js","webpack://Recharts/./node_modules/d3-shape/src/array.js","webpack://Recharts/./node_modules/d3-shape/src/symbol/circle.js","webpack://Recharts/./node_modules/d3-shape/src/symbol/cross.js","webpack://Recharts/./node_modules/d3-shape/src/symbol/diamond.js","webpack://Recharts/./node_modules/d3-shape/src/symbol/star.js","webpack://Recharts/./node_modules/d3-shape/src/symbol/square.js","webpack://Recharts/./node_modules/d3-shape/src/symbol/triangle.js","webpack://Recharts/./node_modules/d3-shape/src/symbol/wye.js","webpack://Recharts/./node_modules/d3-shape/src/noop.js","webpack://Recharts/./node_modules/d3-shape/src/curve/basis.js","webpack://Recharts/./node_modules/d3-shape/src/curve/basisClosed.js","webpack://Recharts/./node_modules/d3-shape/src/curve/basisOpen.js","webpack://Recharts/./node_modules/d3-shape/src/curve/bundle.js","webpack://Recharts/./node_modules/d3-shape/src/curve/cardinal.js","webpack://Recharts/./node_modules/d3-shape/src/curve/cardinalClosed.js","webpack://Recharts/./node_modules/d3-shape/src/curve/cardinalOpen.js","webpack://Recharts/./node_modules/d3-shape/src/curve/catmullRom.js","webpack://Recharts/./node_modules/d3-shape/src/curve/catmullRomClosed.js","webpack://Recharts/./node_modules/d3-shape/src/curve/catmullRomOpen.js","webpack://Recharts/./node_modules/d3-shape/src/curve/linearClosed.js","webpack://Recharts/./node_modules/d3-shape/src/curve/monotone.js","webpack://Recharts/./node_modules/d3-shape/src/curve/natural.js","webpack://Recharts/./node_modules/d3-shape/src/curve/step.js","webpack://Recharts/./node_modules/d3-shape/src/offset/none.js","webpack://Recharts/./node_modules/d3-shape/src/order/none.js","webpack://Recharts/./node_modules/d3-shape/src/stack.js","webpack://Recharts/./node_modules/d3-shape/src/order/descending.js","webpack://Recharts/./src/shape/Symbols.js","webpack://Recharts/./node_modules/d3-shape/src/symbol.js","webpack://Recharts/./src/component/DefaultLegendContent.js","webpack://Recharts/./src/component/Legend.js","webpack://Recharts/./src/component/DefaultTooltipContent.js","webpack://Recharts/./src/component/Tooltip.js","webpack://Recharts/./src/component/ResponsiveContainer.js","webpack://Recharts/./src/component/Cell.js","webpack://Recharts/./src/util/DOMUtils.js","webpack://Recharts/./src/component/Text.js","webpack://Recharts/./node_modules/d3-array/src/ascending.js","webpack://Recharts/./node_modules/d3-array/src/bisector.js","webpack://Recharts/./node_modules/d3-array/src/bisect.js","webpack://Recharts/./node_modules/d3-array/src/cross.js","webpack://Recharts/./node_modules/d3-array/src/number.js","webpack://Recharts/./node_modules/d3-array/src/array.js","webpack://Recharts/./node_modules/d3-array/src/range.js","webpack://Recharts/./node_modules/d3-array/src/ticks.js","webpack://Recharts/./node_modules/d3-array/src/threshold/sturges.js","webpack://Recharts/./node_modules/d3-array/src/quantile.js","webpack://Recharts/./node_modules/d3-collection/src/map.js","webpack://Recharts/./node_modules/d3-collection/src/set.js","webpack://Recharts/./node_modules/d3-scale/src/array.js","webpack://Recharts/./node_modules/d3-scale/src/ordinal.js","webpack://Recharts/./node_modules/d3-scale/src/band.js","webpack://Recharts/./node_modules/d3-color/src/define.js","webpack://Recharts/./node_modules/d3-color/src/color.js","webpack://Recharts/./node_modules/d3-color/src/math.js","webpack://Recharts/./node_modules/d3-color/src/lab.js","webpack://Recharts/./node_modules/d3-color/src/cubehelix.js","webpack://Recharts/./node_modules/d3-interpolate/src/basis.js","webpack://Recharts/./node_modules/d3-interpolate/src/constant.js","webpack://Recharts/./node_modules/d3-interpolate/src/color.js","webpack://Recharts/./node_modules/d3-interpolate/src/rgb.js","webpack://Recharts/./node_modules/d3-interpolate/src/basisClosed.js","webpack://Recharts/./node_modules/d3-interpolate/src/number.js","webpack://Recharts/./node_modules/d3-interpolate/src/string.js","webpack://Recharts/./node_modules/d3-interpolate/src/transform/parse.js","webpack://Recharts/./node_modules/d3-interpolate/src/value.js","webpack://Recharts/./node_modules/d3-interpolate/src/date.js","webpack://Recharts/./node_modules/d3-interpolate/src/array.js","webpack://Recharts/./node_modules/d3-interpolate/src/object.js","webpack://Recharts/./node_modules/d3-interpolate/src/round.js","webpack://Recharts/./node_modules/d3-interpolate/src/transform/decompose.js","webpack://Recharts/./node_modules/d3-interpolate/src/transform/index.js","webpack://Recharts/./node_modules/d3-interpolate/src/zoom.js","webpack://Recharts/./node_modules/d3-interpolate/src/hsl.js","webpack://Recharts/./node_modules/d3-interpolate/src/hcl.js","webpack://Recharts/./node_modules/d3-interpolate/src/cubehelix.js","webpack://Recharts/./node_modules/d3-interpolate/src/quantize.js","webpack://Recharts/./node_modules/d3-scale/src/constant.js","webpack://Recharts/./node_modules/d3-scale/src/number.js","webpack://Recharts/./node_modules/d3-scale/src/continuous.js","webpack://Recharts/./node_modules/d3-format/src/formatDecimal.js","webpack://Recharts/./node_modules/d3-format/src/exponent.js","webpack://Recharts/./node_modules/d3-format/src/formatSpecifier.js","webpack://Recharts/./node_modules/d3-format/src/formatTrim.js","webpack://Recharts/./node_modules/d3-format/src/formatPrefixAuto.js","webpack://Recharts/./node_modules/d3-format/src/defaultLocale.js","webpack://Recharts/./node_modules/d3-format/src/formatRounded.js","webpack://Recharts/./node_modules/d3-format/src/formatTypes.js","webpack://Recharts/./node_modules/d3-format/src/identity.js","webpack://Recharts/./node_modules/d3-format/src/locale.js","webpack://Recharts/./node_modules/d3-format/src/formatGroup.js","webpack://Recharts/./node_modules/d3-format/src/formatNumerals.js","webpack://Recharts/./node_modules/d3-format/src/precisionFixed.js","webpack://Recharts/./node_modules/d3-scale/src/tickFormat.js","webpack://Recharts/./node_modules/d3-format/src/precisionPrefix.js","webpack://Recharts/./node_modules/d3-format/src/precisionRound.js","webpack://Recharts/./node_modules/d3-scale/src/linear.js","webpack://Recharts/./node_modules/d3-scale/src/identity.js","webpack://Recharts/./node_modules/d3-scale/src/nice.js","webpack://Recharts/./node_modules/d3-scale/src/log.js","webpack://Recharts/./node_modules/d3-scale/src/pow.js","webpack://Recharts/./node_modules/d3-scale/src/quantile.js","webpack://Recharts/./node_modules/d3-scale/src/quantize.js","webpack://Recharts/./node_modules/d3-scale/src/threshold.js","webpack://Recharts/./node_modules/d3-time/src/interval.js","webpack://Recharts/./node_modules/d3-time/src/millisecond.js","webpack://Recharts/./node_modules/d3-time/src/duration.js","webpack://Recharts/./node_modules/d3-time/src/second.js","webpack://Recharts/./node_modules/d3-time/src/minute.js","webpack://Recharts/./node_modules/d3-time/src/hour.js","webpack://Recharts/./node_modules/d3-time/src/day.js","webpack://Recharts/./node_modules/d3-time/src/week.js","webpack://Recharts/./node_modules/d3-time/src/month.js","webpack://Recharts/./node_modules/d3-time/src/year.js","webpack://Recharts/./node_modules/d3-time/src/utcMinute.js","webpack://Recharts/./node_modules/d3-time/src/utcHour.js","webpack://Recharts/./node_modules/d3-time/src/utcDay.js","webpack://Recharts/./node_modules/d3-time/src/utcWeek.js","webpack://Recharts/./node_modules/d3-time/src/utcMonth.js","webpack://Recharts/./node_modules/d3-time/src/utcYear.js","webpack://Recharts/./node_modules/d3-time-format/src/locale.js","webpack://Recharts/./node_modules/d3-time-format/src/defaultLocale.js","webpack://Recharts/./node_modules/d3-time-format/src/isoFormat.js","webpack://Recharts/./node_modules/d3-time-format/src/isoParse.js","webpack://Recharts/./node_modules/d3-scale/src/time.js","webpack://Recharts/./node_modules/d3-scale/src/utcTime.js","webpack://Recharts/./node_modules/d3-scale/src/sequential.js","webpack://Recharts/./node_modules/d3-scale/src/diverging.js","webpack://Recharts/./src/shape/Dot.js","webpack://Recharts/./src/util/CartesianUtils.js","webpack://Recharts/./src/cartesian/ReferenceDot.js","webpack://Recharts/./src/cartesian/ReferenceLine.js","webpack://Recharts/./src/shape/Rectangle.js","webpack://Recharts/./src/cartesian/ReferenceArea.js","webpack://Recharts/./src/cartesian/ErrorBar.js","webpack://Recharts/./src/util/ChartUtils.js","webpack://Recharts/./node_modules/d3-shape/src/offset/expand.js","webpack://Recharts/./node_modules/d3-shape/src/offset/silhouette.js","webpack://Recharts/./node_modules/d3-shape/src/offset/wiggle.js","webpack://Recharts/./src/util/PolarUtils.js","webpack://Recharts/./src/component/Label.js","webpack://Recharts/./src/component/LabelList.js","webpack://Recharts/./src/shape/Sector.js","webpack://Recharts/./src/shape/Curve.js","webpack://Recharts/./src/shape/Polygon.js","webpack://Recharts/./src/shape/Cross.js","webpack://Recharts/./src/polar/PolarGrid.js","webpack://Recharts/./src/polar/PolarRadiusAxis.js","webpack://Recharts/./src/polar/PolarAngleAxis.js","webpack://Recharts/./src/polar/Pie.js","webpack://Recharts/./src/polar/Radar.js","webpack://Recharts/./src/polar/RadialBar.js","webpack://Recharts/./src/util/CssPrefixUtils.js","webpack://Recharts/./src/cartesian/Brush.js","webpack://Recharts/./src/cartesian/CartesianAxis.js","webpack://Recharts/./src/cartesian/CartesianGrid.js","webpack://Recharts/./src/cartesian/Line.js","webpack://Recharts/./src/cartesian/Area.js","webpack://Recharts/./src/cartesian/Bar.js","webpack://Recharts/./src/cartesian/ZAxis.js","webpack://Recharts/./src/cartesian/Scatter.js","webpack://Recharts/./src/cartesian/XAxis.js","webpack://Recharts/./src/cartesian/YAxis.js","webpack://Recharts/./src/util/Events.js","webpack://Recharts/./src/chart/generateCategoricalChart.js","webpack://Recharts/./src/chart/LineChart.js","webpack://Recharts/./src/chart/BarChart.js","webpack://Recharts/./src/chart/PieChart.js","webpack://Recharts/./src/chart/Treemap.js","webpack://Recharts/./src/chart/Sankey.js","webpack://Recharts/./src/chart/RadarChart.js","webpack://Recharts/./src/chart/ScatterChart.js","webpack://Recharts/./src/chart/AreaChart.js","webpack://Recharts/./src/chart/RadialBarChart.js","webpack://Recharts/./src/chart/ComposedChart.js","webpack://Recharts/./src/index.js"],"names":["root","factory","exports","module","require","define","amd","window","__WEBPACK_EXTERNAL_MODULE__0__","__WEBPACK_EXTERNAL_MODULE__1__","__WEBPACK_EXTERNAL_MODULE__161__","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","baseGetTag","isObject","asyncTag","funcTag","genTag","proxyTag","tag","__WEBPACK_AMD_DEFINE_RESULT__","hasOwn","classNames","classes","arguments","length","arg","argType","push","Array","isArray","inner","apply","join","default","undefined","translateStyle","AnimateGroup","configBezier","configSpring","_Animate2","_interopRequireDefault","_easing","_util","_AnimateGroup2","obj","baseIsEqual","other","global","core","hide","redefine","ctx","$export","type","source","own","out","exp","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","P","IS_BIND","B","target","expProto","Function","U","W","R","baseGet","path","defaultValue","result","isNumber","baseMatches","baseMatchesProperty","identity","isObjectLike","stringTag","range","createRange","g","this","eval","e","exec","nativeObjectToString","toString","eq","array","warn","getTransitionVal","compose","mapObject","debugf","debug","log","generatePrefixStyle","getDashCase","getIntersectionKeys","_intersection3","_extends","assign","_defineProperty","configurable","writable","PREFIX_LIST","IN_LINE_PREFIX_LIST","IN_COMPATIBLE_PROPERTY","preObj","nextObj","keys","param","replace","v","toLowerCase","indexOf","isTransition","camelName","toUpperCase","styleVal","reduce","_console","console","item","f","_len","args","_key","res","argNames","map","JSON","stringify","fn","style","_len2","_key2","fns","reverse","firstFn","tailsFn","slice","props","duration","easing","prop","condition","format","a","b","iteratee","index","baseForOwn","baseEach","createBaseEach","isSymbol","comparator","current","computed","numberTag","baseFlatten","baseOrderBy","baseRest","isIterateeCall","sortBy","collection","iteratees","baseExtremum","baseLt","baseGt","baseIteratee","stack","balanced","reduceFunctionCall","mexp","MAX_STACK","NESTED_CALC_RE","decimalPrecision","evaluateExpression","expression","functionIdentifier","Error","units","uniqueUnits","uniqueLowerCaseUnits","unitRegEx","matches","getUnitsInExpression","evaluatedPart","nonEvaluatedPart","substring","balancedExpr","body","evaluated","pre","post","evaluateNestedExpression","unit","percent","parseFloat","toEvaluate","RegExp","Math","round","pow","self","__g","version","__e","it","sign","x","$expm1","expm1","baseIsEqualDeep","bitmask","customizer","func","transform","isFunction","isLength","getPrototype","objectTag","funcProto","objectProto","funcToString","objectCtorString","proto","Ctor","constructor","now","toNumber","FUNC_ERROR_TEXT","nativeMax","max","nativeMin","min","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","thisArg","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","setTimeout","timeWaiting","remainingWait","debounced","isInvoking","leadingEdge","cancel","clearTimeout","flush","_getNiceTickValues","getTickValues","getNiceTickValues","getTickValuesFixedDomain","baseAssignValue","dP","createDesc","log1p","_class","_class2","_temp","_isEqual3","_createClass","defineProperties","descriptor","Constructor","protoProps","staticProps","_react","_react2","_propTypes2","_AnimateManager2","_PureRender2","_configUpdate2","_toConsumableArray","arr","arr2","from","_possibleConstructorReturn","ReferenceError","Animate","_Component","context","instance","_classCallCheck","_this","__proto__","getPrototypeOf","_this$props","isActive","attributeName","to","steps","children","handleStyleChange","changeStyle","state","subClass","superClass","setPrototypeOf","_inherits","Component","_props","canBegin","mounted","runAnimation","nextProps","shouldReAnimate","isTriggered","manager","stop","stopJSAnimation","setState","begin","unSubscribe","_this2","onAnimationEnd","onAnimationStart","startAnimation","configEasing","start","_this3","_steps$","initialStyle","_steps$$duration","initialTime","concat","sequence","nextItem","_nextItem$easing","nextProperties","properties","preItem","runJSAnimation","transition","newStyle","filter","propsTo","subscribe","runStepAnimation","_props2","others","onAnimationReStart","_objectWithoutProperties","count","Children","stateStyle","cloneContainer","container","_container$props","_container$props$styl","className","cloneElement","only","createElement","child","displayName","propTypes","oneOfType","string","number","arrayOf","shape","isRequired","oneOf","node","bool","defaultProps","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","entries","clear","entry","set","has","predicate","baseIndexOf","fromIndex","vendors","suffix","raf","caf","last","id","queue","callback","_now","next","cp","cancelled","handle","polyfill","requestAnimationFrame","cancelAnimationFrame","cubicBezierFactor","c1","c2","multyTime","params","curr","cubicBezier","derivativeCubicBezier","newParams","x1","y1","x2","y2","every","num","curveX","curveY","derCurveX","rangeValue","bezier","_t","evalT","derVal","abs","isStepper","config","_config$stiff","stiff","_config$damping","damping","_config$dt","dt","stepper","currX","destX","currV","newV","newX","overRest","setToString","baseFor","nativeKeys","overArg","srcValue","componentWillMount","getDerivedStateFromProps","componentWillReceiveProps","prevState","componentWillUpdate","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","isReactComponent","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","componentName","newApiName","componentDidUpdate","maybeSnapshot","snapshot","__webpack_exports__","__suppressDeprecationWarning","freeGlobal","freeSelf","str","maybeMatch","end","reg","match","begs","beg","left","right","ai","bi","pop","arrayPush","isFlattenable","depth","isStrict","isArrayLike","globalScope","ONE","MAX_DIGITS","Decimal","precision","rounding","toExpNeg","toExpPos","LN10","external","decimalError","invalidArgument","exponentOutOfRange","mathfloor","floor","mathpow","isDecimal","BASE","LOG_BASE","MAX_E","add","y","carry","k","len","xd","yd","pr","ceil","unshift","checkInt32","digitsToString","ws","indexOfLastWord","w","getZeroString","absoluteValue","comparedTo","cmp","j","xdL","ydL","decimalPlaces","dp","dividedBy","div","divide","dividedToIntegerBy","idiv","equals","exponent","getBase10Exponent","greaterThan","gt","greaterThanOrEqualTo","gte","isInteger","isint","isNegative","isneg","isPositive","ispos","isZero","lessThan","lt","lessThanOrEqualTo","lte","logarithm","base","wpr","ln","minus","sub","subtract","modulo","mod","q","times","naturalExponential","naturalLogarithm","negated","neg","plus","sd","z","squareRoot","sqrt","toExponential","mul","rL","shift","toDecimalPlaces","todp","rm","toFixed","toInteger","toint","toPower","yIsInt","yn","truncate","toPrecision","toSignificantDigits","tosd","valueOf","val","toJSON","multiplyInteger","temp","compare","aL","bL","prod","prodL","qd","rem","remL","rem0","xi","xL","yd0","yL","yz","denominator","sum","getLn10","zs","c0","numerator","charAt","parseDecimal","search","charCodeAt","rd","doRound","xdi","xe","xLTy","isExp","ps","clone","test","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","PLACE_HOLDER","@@functional/placeholder","isPlaceHolder","curry0","_curried","curryN","argsLength","restArgs","newArgs","curry","_len3","_key3","split","memoize","lastResult","_len4","_key4","_ResizeDetector2","arrayEvery","baseEvery","guard","arraySome","baseSome","debounce","EventEmitter","_events","_maxListeners","isUndefined","defaultMaxListeners","setMaxListeners","isNaN","emit","er","handler","listeners","error","err","addListener","listener","newListener","warned","trace","on","once","fired","removeListener","list","position","splice","removeAllListeners","listenerCount","evlistener","emitter","baseSum","$acosh","acosh","Number","MAX_VALUE","Infinity","NaN","LN2","anObject","IE8_DOM_DEFINE","toPrimitive","O","Attributes","document","is","bitmap","SRC","$toString","TPL","inspectSource","safe","String","px","random","aFunction","that","$asinh","asinh","isFinite","$atanh","atanh","cbrt","clz32","LOG2E","cosh","fround","EPSILON","EPSILON32","MAX32","MIN32","$abs","$sign","roundTiesToEven","hypot","value1","value2","aLen","larg","$imul","imul","xn","xl","yl","log10","LOG10E","log2","sinh","E","tanh","trunc","Stack","equalArrays","equalByTag","equalObjects","getTag","isBuffer","isTypedArray","COMPARE_PARTIAL_FLAG","argsTag","arrayTag","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","__data__","size","assocIndexOf","data","SetCache","cacheHas","COMPARE_UNORDERED_FLAG","isPartial","arrLength","othLength","stacked","seen","arrValue","othValue","compared","othIndex","getAllKeys","objProps","objLength","skipCtor","objValue","objCtor","othCtor","_typeof","iterator","handleChange","shouldStop","setStyle","_style","styles","_styles","_toArray","restStyles","_setRafTimeout2","_handleChange","timeout","currTime","_raf2","shouldUpdate","process","getNanoSeconds","hrtime","loadTime","moduleLoadTime","nodeLoadTime","upTime","performance","hr","uptime","Date","getTime","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","Item","noop","nextTick","title","browser","env","argv","versions","off","prependListener","prependOnceListener","binding","cwd","chdir","dir","umask","shallowEqual","_isPlainObject3","_isArray3","objA","objB","keysA","keysB","bHasOwnProperty","keyA","shouldComponentUpdate","shallowCompare","component","arrayMap","baseIntersection","castArrayLikeObject","intersection","arrays","mapped","arrayIncludes","arrayIncludesWith","baseUnary","includes","caches","maxLength","outer","cache","otherArgs","isArrayLikeObject","MAX_SAFE_INTEGER","_filter3","_slicedToArray","_arr","_n","_d","_e","_s","_i","done","sliceIterator","_raf","alpha","needContinue","_ref","render","interKeys","timingStyle","stepperStyle","velocity","cafId","preTime","beginTime","update","calStepperVals","preVals","nextStepVals","_easing2","currStyle","finalStyle","arrayFilter","baseFilter","resIndex","createBaseFor","fromRight","keysFunc","iterable","eachFunc","baseIsMatch","getMatchData","matchesStrictComparable","matchData","noCustomizer","isStrictComparable","hasIn","isKey","toKey","_TransitionGroup2","_AnimateGroupChild2","appear","enter","leave","appearOptions","enterOptions","leaveOptions","element","any","_propTypes","_reactLifecyclesCompat","_ChildMapping","_assertThisInitialized","values","TransitionGroup","_React$Component","handleExited","firstRender","_inheritsLoose","_proto","getChildContext","transitionGroup","isMounting","appeared","componentDidMount","prevChildMapping","getInitialChildMapping","getNextChildMapping","currentChildMapping","getChildMapping","onExited","childFactory","excluded","sourceKeys","_objectWithoutPropertiesLoose","exit","childContextTypes","_default","mergeChildMappings","in","getProp","nextChildMapping","forEach","isValidElement","hasPrev","hasNext","prevChild","isLeaving","mapFn","mapper","prev","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","_temp2","_isNumber3","_Transition2","parseDurationOfSingleTransition","AnimateGroupChild","handleEnter","isAppearing","handleStyleActive","handleExit","onEnter","onExit","parseTimeout","transitionState","EXITING","ENTERED","ENTERING","EXITED","UNMOUNTED","PropTypes","newObj","desc","getOwnPropertyDescriptor","_interopRequireWildcard","_reactDom","Transition","initialStatus","parentGroup","appearStatus","unmountOnExit","mountOnEnter","status","nextCallback","updateStatus","nextStatus","componentWillUnmount","cancelNextCallback","getTimeouts","mounting","findDOMNode","performEnter","performExit","appearing","timeouts","safeSetState","onEntering","onTransitionEnd","onEntered","onExiting","setNextCallback","_this4","active","event","addEndListener","childProps","contextTypes","transitionTimeout","transitionType","timeoutPropName","enabledPropName","classNamesShape","timeoutsShape","enterDone","enterActive","exitDone","exitActive","_resizeObserverPolyfill2","_lodash2","_lodash4","listMode","throttle","width","height","visibility","display","ResizeDetector","_PureComponent","createResizeObserver","handleWidth","handleHeight","onResize","_entry$contentRect","contentRect","notifyWidth","notifyHeight","skipOnMount","refreshMode","refreshRate","resizeObserver","ro","PureComponent","resizableElementId","resizableElement","getElementById","el","parentElement","observe","unobserve","ref","MapShim","Map","getIndex","some","anonymous","__entries__","prototypeAccessors","delete","isBrowser","global$1","requestAnimationFrame$1","trailingTimeout","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","delay","leadingCall","trailingCall","resolvePending","proxy","timeoutCallback","timeStamp","addObserver","observer","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","addEventListener","attributes","childList","characterData","subtree","removeEventListener","disconnect","propertyName","getInstance","instance_","defineConfigurable","getWindowOf","ownerDocument","defaultView","emptyRect","createRectInit","toFloat","getBordersSize","positions","getHTMLElementContentRect","clientWidth","clientHeight","getComputedStyle","paddings","getPaddings","horizPad","vertPad","top","bottom","boxSizing","documentElement","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","rect","broadcastRect","ResizeObserverEntry","rectInit","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","Element","observations","clearActive","this$1","observation","WeakMap","ResizeObserver","method","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","objectToString","isBinary","functionRE","expressions","fnRE","searchMatch","startIndex","SyntaxError","getFunctionCalls","evalFunctionCall","Mexp","formulaEval","pop1","pop2","pop3","disp","show","postfixEval","UserDefined","PI","exception","tokens","lex","toPostfix","elem","popped","prep","ele","flag","inc","token","eva","math","sin","cos","tan","C","asin","acos","atan","fact","sigma","Pi","preced","0","1","2","3","4","5","6","7","8","9","10","11","12","13","type0","type1","type_1","empty","type_3","type6","newAr","str1","str2","addToken","inp","ptc","inpStr","pcounter","allowed","bracToClose","asterick","sec","cToken","cType","cEv","cPre","cShow","hasDec","changeSign","parsed","isDegree","pro","choice","toRadian","inverse","low","high","ex","pow10x","sinha","cosha","message","offset","isArguments","spreadableSymbol","isConcatSpreadable","baseMap","baseSortBy","compareMultiple","orders","criteria","comparer","sort","compareAscending","objCriteria","othCriteria","ordersLength","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","_decimal2","_utils","_arithmetic2","getValidInterval","_ref2","validMin","validMax","getFormatStep","roughStep","allowDecimals","correctionFactor","digitCount","getDigitCount","digitCountValue","stepRatio","stepRatioScale","formatStep","getTickOfSingleValue","tickCount","step","middle","absVal","middleIndex","_ref3","_ref4","_getValidInterval","_getValidInterval2","cormin","cormax","_calculateStep","calculateStep","tickMin","tickMax","belowCount","upCount","scaleCount","rangeStep","_ref5","_ref6","_getValidInterval3","_getValidInterval4","_ref7","_ref8","_getValidInterval5","_getValidInterval6","interpolateNumber","newA","uninterpolateNumber","diff","uninterpolateTruncation","getNative","baseRange","toFinite","nativeCeil","nativeGetPrototypeOf","mathSign","isPercent","isString_default","isNumber_default","isNaN_default","isNumOrStr","idCounter","uniqueId","prefix","getPercentValue","totalValue","validate","getAnyElementOfObject","numberA","numberB","findEntryInArray","ary","specifiedKey","specifiedValue","find","get_default","pureRenderDecorator","PRESENTATION_ATTRIBUTES","alignmentBaseline","angle","baselineShift","clip","clipPath","clipRule","color","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","cursor","direction","dominantBaseline","enableBackground","fill","fillOpacity","fillRule","floodColor","floodOpacity","font","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","glyphOrientationHorizontal","glyphOrientationVertical","imageRendering","kerning","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","mask","opacity","overflow","pointerEvents","shapeRendering","stopColor","stopOpacity","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","textAnchor","textDecoration","textRendering","unicodeBidi","wordSpacing","writingMode","dx","dy","radius","EVENT_ATTRIBUTES","onClick","onMouseDown","onMouseUp","onMouseOver","onMouseMove","onMouseOut","onMouseEnter","onMouseLeave","onTouchEnd","onTouchMove","onTouchStart","onTouchCancel","REACT_BROWSER_EVENT_MAP","click","mousedown","mouseup","mouseover","mousemove","mouseout","mouseenter","mouseleave","touchcancel","touchend","touchmove","touchstart","SCALE_TYPES","LEGEND_TYPES","getDisplayName","Comp","findAllByType","types","isArray_default","React","childType","findChildByType","getPresentationAttributes","isFunction_default","isObject_default","getEventHandlerOfElement","originalHandler","filterEventAttributes","newHandler","wrapCallback","getEventHandlerOfChild","filterEventsOfChild","validateWidthHeight","_el$props","isSsr","SVG_TAGS","filterSvgElements","svgElements","isSingleChildEqual","nextChild","isNil_default","nextChildren","prevChildren","isChildrenEqual","renderByOrder","renderMap","elements","record","isSvgElement","_renderMap$displayNam","results","getReactEventByType","viewBox","Surface","Surface_objectWithoutProperties","svgView","layerClass","attrs","external_root_React_commonjs2_react_commonjs_react_amd_react_default","Layer","Layer_objectWithoutProperties","Layer_extends","pi","tau","tauEpsilon","Path","_x0","_y0","_x1","_y1","_","path_path","moveTo","closePath","lineTo","quadraticCurveTo","bezierCurveTo","arcTo","x0","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","t01","t21","arc","a0","a1","ccw","cw","da","h","src_path","constant","math_epsilon","atan2","math_pi","math_tau","Linear","_context","areaStart","_line","areaEnd","lineStart","_point","lineEnd","point","linear","point_x","point_y","src_line","defined","curve","output","line","buffer","defined0","src_area","area","x0z","y0z","arealine","lineX0","lineY0","lineY1","lineX1","curveRadial","Radial","_curve","radial","circle","draw","cross","tan30","tan30_2","diamond","kr","kx","ky","star","square","sqrt3","triangle","wye_s","wye_k","wye_a","wye","basis_point","Basis","BasisClosed","_x2","_x3","_x4","_y2","_y3","_y4","BasisOpen","Bundle","beta","_basis","_beta","_x","_y","custom","bundle","cardinal_point","_k","Cardinal","tension","cardinal","CardinalClosed","_x5","_y5","CardinalOpen","catmullRom_point","_l01_a","_l01_2a","_l12_a","_l12_2a","_l23_a","_l23_2a","CatmullRom","_alpha","x23","y23","catmullRom","CatmullRomClosed","CatmullRomOpen","LinearClosed","monotone_sign","slope3","h0","h1","s0","s1","slope2","monotone_point","t0","t1","MonotoneX","MonotoneY","ReflectContext","Natural","controlPoints","_t0","py","i0","i1","Step","none","series","order","order_none","stackValue","SYMBOL_FACTORIES","symbolCircle","symbolCross","symbolDiamond","symbolSquare","symbolStar","symbolTriangle","symbolWye","RADIAN","Symbols","pureRender","sizeType","symbolFactory","getSymbolFactory","symbol","shapeSymbol","calculateAreaSize","_this$props2","cx","cy","Symbols_extends","getPath","ICON_TYPES","DefaultLegendContent","inactiveColor","inactive","payload","SIZE","shape_Symbols","iconSize","layout","formatter","itemStyle","marginRight","svgStyle","verticalAlign","_classNames","finalFormatter","DefaultLegendContent_defineProperty","recharts-legend-item","DefaultLegendContent_extends","container_Surface","renderIcon","align","padding","margin","textAlign","renderItems","content","iconType","Legend","boxWidth","boxHeight","updateBBox","_this$state","hPos","vPos","chartWidth","chartHeight","box","Legend_objectSpread","_this$state2","onBBoxUpdate","wrapperNode","getBoundingClientRect","wrapperStyle","outerStyle","getDefaultPosition","renderContent","defaultFormatter","DefaultTooltipContent","separator","itemSorter","items","finalItemStyle","DefaultTooltipContent_objectSpread","paddingTop","paddingBottom","hasName","wrapperClassName","contentStyle","labelClassName","labelStyle","label","labelFormatter","backgroundColor","border","whiteSpace","finalLabelStyle","hasLabel","finalLabel","wrapperCN","labelCN","CLS_PREFIX","coordinate","isAnimationActive","animationDuration","animationEasing","filterNull","useTranslate3d","cursorStyle","Tooltip","translateX","translateY","finalPayload","hasPayload","Tooltip_objectSpread","cls","Tooltip_defineProperty","ResponsiveContainer","ResponsiveContainer_classCallCheck","ResponsiveContainer_possibleConstructorReturn","ResponsiveContainer_getPrototypeOf","updateDimensionsImmediate","newSize","getContainerSize","oldWidth","containerWidth","oldHeight","containerHeight","handleResize","debounce_default","aspect","maxHeight","minWidth","minHeight","calculatedWidth","calculatedHeight","renderChart","react_resize_detector_lib_default","Cell","Cell_objectSpread","stringCache","widthCache","cacheCount","SPAN_STYLE","STYLE_LIST","getStyleString","text","DOMUtils_toConsumableArray","camelToMiddleLine","autoCompleteStyle","getStringSize","styleString","cacheKey","measurementSpan","setAttribute","appendChild","measurementSpanStyle","DOMUtils_objectSpread","styleKey","textContent","BREAKING_SPACES","Text","wordsByLines","updateWordsByLines","needCalculate","scaleToFit","updateWordsWithoutCalculate","wordWidths","wordsWithComputedWidth","word","spaceWidth","calculateWordWidths","calculateWordsByLines","words","lineWidth","currentLine","newLine","verticalAnchor","lineHeight","capHeight","textProps","Text_objectWithoutProperties","startDy","reduceCSSCalc","transforms","Text_extends","src_ascending","bisector","ascendingComparator","lo","hi","mid","ascendingBisect","bisectRight","bisect","array_array","src_range","e10","e5","e2","src_ticks","ticks","tickIncrement","power","tickStep","step0","step1","quantile","valueof","value0","map_map","each","remove","src_map","Set","src_array_array","src_array_map","src_array_slice","implicit","ordinal","domain","unknown","scale","copy","band","bandwidth","ordinalRange","paddingInner","paddingOuter","rescale","rangeRound","band_point","pointish","extend","parent","definition","Color","reI","reN","reP","reHex3","reHex6","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_color","trim","Rgb","rgbn","rgba","hsla","rgbConvert","rgb","color_rgb","hex","Hsl","hsl","hslConvert","hsl2rgb","m1","m2","displayable","brighter","darker","deg2rad","rad2deg","Xn","Yn","Zn","lab_t0","lab_t1","t2","t3","labConvert","Lab","Hcl","rgb2lrgb","xyz2lab","lab","lab2xyz","lrgb2rgb","hclConvert","hcl","A","cubehelix_D","ED","EB","BC_DA","cubehelix_cubehelix","Cubehelix","bl","cubehelixConvert","basis_basis","v0","v1","v2","v3","d3_interpolate_src_constant","color_linear","color_hue","gamma","nogamma","exponential","src_rgb","rgbGamma","rgbSpline","spline","colors","src_number","reA","reB","cssNode","cssRoot","cssView","svgNode","src_value","am","bm","bs","lastIndex","one","string_zero","setTime","nb","na","src_round","degrees","decompose_identity","rotate","skewX","scaleX","scaleY","decompose","interpolateTransform","parse","pxComma","pxParen","degParen","xa","ya","xb","yb","translate","getPropertyValue","removeChild","createElementNS","baseVal","consolidate","matrix","SQRT2","hsl_hsl","hue","hcl_hcl","src_cubehelix_cubehelix","cubehelixGamma","cubehelix","d3_scale_src_constant","d3_scale_src_number","continuous_unit","deinterpolateLinear","bimap","deinterpolate","reinterpolate","d0","d1","r0","r1","polymap","interpolate","clamp","continuous","piecewise","input","deinterpolateClamp","invert","reinterpolateClamp","formatDecimal","coefficient","src_exponent","re","formatSpecifier","specifier","FormatSpecifier","zero","comma","prefixExponent","defaultLocale_locale","defaultLocale_format","defaultLocale_formatPrefix","formatTrim","formatRounded","formatTypes","%","X","d3_format_src_identity","prefixes","src_locale","locale","group","grouping","thousands","formatGroup","currency","decimal","numerals","formatNumerals","newFormat","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","formatPrefix","defaultLocale","src_tickFormat","precisionPrefix","precisionRound","precisionFixed","linearish","tickFormat","nice","linear_linear","identity_identity","interval","log_deinterpolate","log_reinterpolate","pow10","powp","logp","reflect","logs","pows","u","raise","pow_sqrt","quantile_quantile","thresholds","invertExtent","quantiles","quantize_quantize","threshold_threshold","interval_t0","interval_t1","newInterval","floori","offseti","field","date","previous","millisecond_millisecond","src_millisecond","durationMinute","durationWeek","second_second","getUTCSeconds","src_second","minute_minute","getMinutes","src_minute","hour_hour","getTimezoneOffset","getHours","src_hour","day_day","setHours","setDate","getDate","src_day","weekday","getDay","sunday","monday","tuesday","wednesday","thursday","friday","saturday","month_month","setMonth","getMonth","getFullYear","src_month","year_year","setFullYear","src_year","utcMinute","setUTCSeconds","getUTCMinutes","src_utcMinute","utcHour","setUTCMinutes","getUTCHours","src_utcHour","utcDay","setUTCHours","setUTCDate","getUTCDate","src_utcDay","utcWeekday","getUTCDay","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcMonth","setUTCMonth","getUTCMonth","getUTCFullYear","src_utcMonth","utcYear","setUTCFullYear","src_utcYear","localDate","H","M","L","utcDate","UTC","newYear","src_defaultLocale_locale","timeFormat","utcFormat","utcParse","pads","-","numberRe","percentRe","requoteRe","pad","requote","formatRe","names","formatLookup","parseWeekdayNumberSunday","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","V","parseWeekNumberMonday","parseFullYear","parseYear","parseZone","Z","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","Q","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","getMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","getSeconds","formatWeekdayNumberMonday","day","formatWeekNumberSunday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","locale_formatYear","formatFullYear","formatZone","formatUTCDayOfMonth","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","getUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","dow","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","I","Y","utcFormats","parses","parseSpecifier","newParse","newDate","week","formatLocale","defaultLocale_defaultLocale","toISOString","time_durationSecond","time_durationMinute","time_durationHour","time_durationDay","time_durationWeek","durationMonth","durationYear","time_date","time_number","calendar","year","month","hour","minute","second","millisecond","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","formatYear","tickIntervals","tickInterval","utcTime","sequential","interpolator","k10","diverging_diverging","k21","Dot","Dot_extends","formatAxisMap","axisMap","axisType","chartName","ids","leftMirror","rightMirror","topMirror","bottomMirror","needSpace","axis","orientation","_axis$padding","mirror","reversed","offsetKey","_parseScale","parseScale","realScaleType","checkDomainOfScale","getTicksOfScale","CartesianUtils_objectSpread","finalAxis","bandSize","getBandSizeOfAxis","CartesianUtils_defineProperty","rectWithPoints","ScaleHelper","CartesianUtils_classCallCheck","CartesianUtils_createClass","bandAware","first","EPS","LabeledScaleHelper","scales","mapValues_default","coords","every_default","isInRange","ReferenceDot","xAxis","yAxis","ifOverflowMatches","clipPathId","alwaysShow","isX","isY","getCoordinate","_this$props3","dotProps","ReferenceDot_objectSpread","container_Layer","renderDot","Label","renderCallByParent","option","shape_Dot","ReferenceDot_extends","isFront","ifOverflow","yAxisId","xAxisId","ReferenceLine","isFixedX","isFixedY","isSegment","_this$props$viewBox","yCoord","coord","points","xCoord","segment","some_default","fixedX","fixedY","endPoints","getEndPoints","_endPoints","_endPoints$","_endPoints$2","ReferenceLine_objectSpread","ReferenceLine_extends","renderLine","rectWithCoords","getRectangePath","maxRadius","clockWise","newRadius","Rectangle","totalLength","getTotalLength","animationBegin","isUpdateAnimationActive","lib_default","currWidth","currHeight","currY","Rectangle_extends","ReferenceArea","hasX1","hasX2","hasY1","hasY2","xValue1","xValue2","yValue1","yValue2","p1","rangeMin","p2","rangeMax","getRect","renderRect","ReferenceArea_objectSpread","shape_Rectangle","ReferenceArea_extends","ErrorBar","dataKey","dataPointFormatter","ErrorBar_objectWithoutProperties","xMid","yMid","xMin","yMin","xMax","yMax","coordsTop","coordsMid","coordsBot","lowBound","highBound","_dataPointFormatter","errorVal","_errorVal","ErrorBar_slicedToArray","ErrorBar_extends","renderErrorBars","getValueByDataKey","getDomainOfDataByKey","filterNil","flattenData","flatMap_default","getMainColorOfGraphicItem","getLegendProps","legendData","formatedGraphicalItems","legendWidth","legendContent","legendItem","sectors","legendType","_item$props","ChartUtils_objectSpread","getWithHeight","getDomainOfErrorBars","errorBars","errorBarChild","entryValue","mainValue","min_default","max_default","errorDomain","prevErrorArr","errorValue","lowerValue","upperValue","getDomainOfItemsWithSameAxis","domains","isCategorialAxis","getCoordinatesOfGrid","hasMin","hasMax","getTicksOfAxis","isGrid","isAll","duplicateDomain","niceTicks","scaleContent","isCategorial","categoricalDomain","combineEventHandlers","defaultHandler","parentHandler","childHandler","customizedHandler","arg1","arg2","arg3","arg4","chartType","d3Scales","findPositionOfBar","barPosition","truncateByDomain","STACK_OFFSET_MAP","positive","negative","expand","stackOffsetNone","silhouette","wiggle","s2","si","sij0","s3","sk","getStackedData","stackItems","offsetType","dataKeys","oz","kz","sz","sij","ki","shapeStack","stackOrderNone","opts","originalDomain","scaleType","tickValues","calculateDomainOfTicks","getCateCoordinateOfLine","allowDuplicatedCategory","matchedTick","getCateCoordinateOfBar","getBaseValueOfBar","numericAxis","detectReferenceElementsDomain","axisId","specifiedTicks","lines","dots","areas","idKey","valueKey","finalDomain","key1","key2","tick","getDomainOfStackGroups","stackGroups","endIndex","stackId","stackedData","getDomainOfSingle","MIN_VALUE_REG","MAX_VALUE_REG","parseSpecifiedDomain","specifiedDomain","dataDomain","allowDataOverflow","orderedTicks","sortBy_default","cur","parseDomainOfCategoryAxis","calculatedDomain","axisChild","isEqual_default","polarToCartesian","getMaxRadius","startAngle","endAngle","innerRadius","outerRadius","_range2","PolarUtils_slicedToArray","PolarUtils_objectSpread","PolarUtils_defineProperty","getAngleOfPoint","anotherPoint","distanceBetweenPoints","angleInRadian","radianToDegree","inRangeOfSector","sector","_getAngleOfPoint","inRange","_formatAngleOfSector","startCnt","endCnt","formatAngleOfSector","formatAngle","reverseFormatAngleOfSetor","cartesianViewBoxShape","polarViewBoxShape","Label_objectSpread","getLabel","renderRadialLabel","labelProps","labelAngle","deltaAngle","getDeltaAngle","startPoint","endPoint","Label_extends","xlinkHref","getAttrsOfPolarLabel","midAngle","_polarToCartesian","_polarToCartesian2","getAttrsOfCartesianLabel","isPolar","_props$className","isPolarLabel","positionAttrs","component_Text","parseViewBox","parentProps","ckeckPropsLabel","parentViewBox","explicitChilren","parseLabel","Label_toConsumableArray","valueAccessor","last_default","LabelList","LabelList_objectWithoutProperties","idProps","component_Label","LabelList_extends","LabelList_objectSpread","parseLabelList","LabelList_toConsumableArray","getTangentCircle","isExternal","cornerRadius","centerRadius","theta","centerAngle","center","circleTangency","lineTangency","getSectorPath","tempEndAngle","outerStartPoint","outerEndPoint","innerStartPoint","innerEndPoint","Sector","deltaRadius","cr","_getTangentCircle","soct","solt","sot","_getTangentCircle2","eoct","eolt","eot","outerArcAngle","_getTangentCircle3","sict","silt","sit","_getTangentCircle4","eict","eilt","eit","innerArcAngle","getSectorWithCorner","Sector_extends","CURVE_FACTORIES","curveBasisClosed","curveBasisOpen","curveBasis","curveLinearClosed","curveLinear","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","getX","getY","Curve","lineFunction","baseLine","connectNulls","curveFactory","getCurveFactory","formatPoints","formatBaseLine","areaPoints","Curve_objectSpread","shapeArea","shapeLine","pathRef","realPath","Curve_extends","Polygon","Polygon_extends","getPolygonPoints","Cross","Cross_extends","PolarGrid","polarAngles","PolarGrid_objectSpread","PolarGrid_extends","extraProps","getPolygonPath","_this$props4","polarRadius","gridType","renderConcentricCircle","renderConcentricPolygon","renderPolarAngles","renderConcentricPath","PolarRadiusAxis","maxRadiusTick","maxBy_default","minBy_default","axisLine","PolarRadiusAxis_objectWithoutProperties","extent","point0","point1","PolarRadiusAxis_objectSpread","PolarRadiusAxis_extends","tickFormatter","getTickTextAnchor","axisProps","customTickProps","getTickValueCoord","tickProps","renderTickItem","_this$props5","renderAxisLine","renderTicks","getViewBox","radiusAxisId","PolarAngleAxis","tickLine","tickLineSize","axisLineType","PolarAngleAxis_objectSpread","PolarAngleAxis_extends","shape_Polygon","tickLineProps","lineCoord","getTickLineCoord","angleAxisId","Pie","isAnimationFinished","cachePrevData","prevSectors","handleAnimationEnd","handleAnimationStart","animationId","activeIndex","labelLine","pieProps","customLabelProps","customLabelLineProps","offsetRadius","labels","Pie_objectSpread","getTextAnchor","lineProps","realDataKey","renderLabelLineItem","renderLabelItem","activeShape","blendStroke","sectorOptions","isActiveIndex","sectorProps","Pie_extends","renderSectorItem","stepData","curAngle","paddingAngle","angleIp","latest","interpolatorAngle","renderSectorsStatically","renderSectorsWithAnimation","_this$props6","renderSectors","renderLabels","shape_Curve","isPlainObject_default","shape_Sector","nameKey","minAngle","parseDeltaAngle","getRealPieData","presentationProps","cells","cell","parseCoordinateOfPie","maxPieRadius","getComposedData","onItemMouseLeave","onItemMouseEnter","pieData","_item$props2","absDeltaAngle","realTotalAngle","tempStartAngle","middleRadius","tooltipPayload","tooltipPosition","Radar","prevPoints","handleMouseEnter","handleMouseLeave","dot","baseProps","customDotProps","Radar_objectSpread","renderDotItem","radar","Radar_extends","renderDots","interpolatorX","interpolatorY","renderPolygonStatically","renderPolygonWithAnimation","renderPolygon","activeDot","radiusAxis","angleAxis","displayedData","RadialBar","prevData","RadialBar_objectWithoutProperties","RadialBar_objectSpread","renderSectorShape","interpolatorStartAngle","interpolatorEndAngle","backgroundProps","background","rest","renderBackground","minPointSize","maxBarSize","radiusAxisTicks","angleAxisTicks","dataStartIndex","pos","stackedDomain","baseValue","backgroundSector","CssPrefixUtils_objectSpread","CssPrefixUtils_defineProperty","Brush","Brush_classCallCheck","Brush_possibleConstructorReturn","Brush_getPrototypeOf","handleDrag","leaveTimer","isTravellerMoving","handleTravellerMove","isSlideMoving","handleSlideDrag","handleTouchMove","changedTouches","handleDragEnd","handleLeaveWrapper","handleEnterSlideOrTraveller","isTextActive","handleLeaveSlideOrTraveller","handleSlideDragStart","slideMoveStartX","pageX","travellerDragStartHandlers","startX","handleTravellerDragStart","Brush_assertThisInitialized","endX","updateScale","travellerWidth","updateId","scaleValues","gap","minIndex","getIndexInRange","maxIndex","onChange","delta","newIndex","movingTravellerId","brushMoveStartX","_this$setState","prevValue","Brush_defineProperty","isFullGap","scalePoint","range_default","_this$props7","chartElement","compact","travellerX","_this$props8","lineY","_this$props9","_this$props10","_this$state3","Brush_extends","getTextOfTick","_this$props11","_this$state4","isPanoramic","renderPanorama","renderSlide","renderTraveller","renderText","CartesianAxis","restProps","CartesianAxis_objectWithoutProperties","viewBoxOld","restPropsOld","tx","ty","tickSize","tickMargin","finalTickSize","tickCoord","CartesianAxis_objectSpread","needHeight","needWidth","CartesianAxis_extends","finalTicks","getTicks","getTickVerticalAnchor","_this$getTickLineCoor","visibleTicksCount","ticksGenerator","noTicksProps","minTickGap","getNumberIntervalTicks","getTicksStart","getTicksEnd","preserveEnd","sizeKey","unitSize","tail","tailContent","tailSize","tailGap","isShow","CartesianGrid","horizontalPoints","horizontal","CartesianGrid_objectSpread","renderLineItem","verticalPoints","vertical","verticalFill","verticalPointsUpdated","colorIndex","horizontalFill","horizontalPointsUpdated","horizontalCoordinatesGenerator","verticalCoordinatesGenerator","renderHorizontal","renderVertical","renderHorizontalStripes","renderVerticalStripes","lineItem","CartesianGrid_objectWithoutProperties","CartesianGrid_extends","Line","mainCurve","curveDom","lineLength","remainLength","restLength","remainLines","Line_toConsumableArray","emptyLines","repeat","errorBarItems","dataPoint","needClip","dotEvents","Line_objectSpread","dotsProps","Line_extends","curveProps","renderCurveStatically","currentStrokeDasharray","curLength","getStrokeDasharray","renderCurveWithAnimation","hasSinglePoint","renderCurve","renderErrorBar","linesUnit","dotItem","xAxisTicks","yAxisTicks","Area","prevBaseLine","areaProps","Area_objectSpread","maxY","startY","endY","maxX","renderVerticalRect","renderHorizontalRect","isRange","Area_extends","stepBaseLine","stepPoints","renderAreaStatically","renderClipRect","renderAreaWithAnimation","renderArea","getBaseValue","hasStack","Bar","Bar_objectSpread","Bar_extends","renderRectangle","interpolatorWidth","interpolatorHeight","renderRectanglesStatically","renderRectanglesWithAnimation","Bar_objectWithoutProperties","renderRectangles","barSize","ZAxis","zAxisId","Scatter","cachePrevPoints","Scatter_objectSpread","Scatter_extends","renderSymbolItem","interpolatorCx","interpolatorCy","interpolatorSize","renderSymbolsStatically","renderSymbolsWithAnimation","dataPointFormatterY","dataPointFormatterX","linePoints","lineType","lineJointType","scatterProps","customLineProps","_getLinearRegression","xsum","ysum","xysum","xxsum","xmin","xmax","getLinearRegression","linearExp","renderSymbols","zAxis","xAxisDataKey","yAxisDataKey","zAxisDataKey","defaultRangeZ","defaultZ","xBandSize","yBandSize","XAxis","YAxis","eventCenter","SYNC_EVENT","ORIENT_MAP","originCoordinate","generateCategoricalChart","GraphicalChild","_ref$eventType","eventType","axisComponents","CategoricalChartWrapper","generateCategoricalChart_classCallCheck","generateCategoricalChart_possibleConstructorReturn","generateCategoricalChart_getPrototypeOf","handleLegendBBoxUpdate","legendInstance","dataEndIndex","updateStateOfAxisMapsOffsetAndStackGroups","handleReceiveSyncEvent","cId","chartId","syncId","uniqueChartId","activeTooltipIndex","chartX","chartY","tooltipTicks","generateCategoricalChart_objectSpread","validateChartX","validateChartY","activeLabel","activePayload","getTooltipContent","activeCoordinate","handleBrushChange","triggerSyncEvent","mouse","getMouseInfo","isTooltipActive","triggeredAfterMouseMove","handleItemMouseEnter","activeItem","handleItemMouseLeave","handleMouseMove","persist","handleOuterEvent","eventName","handleClick","handleMouseDown","handleMouseUp","handleTouchStart","handleTouchEnd","axesTicksGenerator","tooltipTicksGenerator","orderedTooltipTicks","tooltipAxis","tooltipAxisBandSize","renderCursor","cursorComp","getCursorRectangle","_this$getCursorPoints","getCursorPoints","cursorProps","renderPolarAxis","axisOption","renderXAxis","axisObj","xAxisMap","renderAxis","renderYAxis","yAxisMap","renderGrid","renderPolarGrid","_this$state5","radiusAxisMap","angleAxisMap","renderBrush","_this$state6","brushBottom","renderReferenceElement","generateCategoricalChart_assertThisInitialized","_this$state7","_element$props","renderGraphicChild","filterFormatItem","activePoint","basePoint","graphicalItem","_this$state8","tooltipItem","_item$item$props","generateCategoricalChart_toConsumableArray","renderActivePoints","childIndex","defaultState","createDefaultState","throttleDelay","throttle_default","generateCategoricalChart_inherits","generateCategoricalChart_createClass","stackOffset","newUpdateId","_ref5$axisType","AxisComp","graphicalItems","axisIdKey","axes","getAxisMapByAxes","getAxisMapByItems","Axis","_child$props","getDisplayedData","duplicate","hasDuplicate","errorBarsDomain","parseErrorBarsOfAxis","generateCategoricalChart_defineProperty","rangeObj","pageY","calculateChartCoordinate","html","pageYOffset","clientTop","pageXOffset","clientLeft","getOffset","_this$state9","xScale","yScale","xValue","yValue","_this$state10","unsortedTicks","before","after","sameDirectionCoord","diffInterval","curInRange","afterInRange","sameInterval","calculateActiveTickIndex","calculateTooltipPos","getActiveCoordinate","_this$state11","_child$props2","currentState","barGap","barCategoryGap","globalMaxBarSize","_this$constructor$get","getAxisNameByLayout","numericAxisName","cateAxisName","hasBar","sizeList","globalSize","_ref4$stackGroups","numericAxisIds","sgs","stackIds","sLen","_sgs$stackIds$j","cateAxisId","barItems","selfSize","cateId","stackList","getBarSizeList","formatedItems","_objectSpread5","childMaxBarSize","numericAxisId","_objectSpread4","cateAxis","cateTicks","itemIndex","getStackedDataOfItem","_ref5$sizeList","realBarGap","useFull","fullBarSize","newRes","ChartUtils_toConsumableArray","originalSize","getBarPosition","componsedFn","parseChildIndex","_this$state12","halfSize","_this$state13","innerPoint","outerPoint","_this$state14","tooltipEvents","_this5","reverseStackOrder","_this$constructor$get2","_items","childGroup","ChartUtils_defineProperty","getStackGroupsByAxisId","getAxisMap","calculateOffset","cateAxisMap","ticksObj","getFormatItems","_ref9","_ref9$xAxisMap","_ref9$yAxisMap","brushItem","offsetH","legendBox","legendHeight","legendProps","newOffset","appendOffsetOfLegend","axisOptions","cartesian_CartesianAxis","generateCategoricalChart_extends","_this6","otherProps","generateCategoricalChart_objectWithoutProperties","legend","_this$state15","_ref10","_item$item$props2","renderActiveDot","_this$state$offset","_this7","renderClipPath","events","parseEventsOfWrapper","renderLegend","renderTooltip","defaultShowTooltip","_ref11","itemsData","itemData","getWorstScore","row","parentSize","aspectRatio","parentArea","rowArea","_row$reduce","parentRect","isFlush","rowHeight","curX","Treemap_objectSpread","horizontalPosition","rowWidth","curY","verticalPosition","squarify","score","filterRect","best","scaleChildren","areaValueRatio","ratio","getAreaOfChildren","tempChildren","Treemap","activeNode","nodeProps","isLeaf","renderContentItem","renderAnimatedItem","renderNode","computeNode","childDepth","computedChildren","formatRoot","Treemap_objectWithoutProperties","Treemap_extends","renderAllNodes","defaultCoordinateOfTooltip","centerY","getValue","getSumOfIds","links","getSumWithWeightedSource","tree","link","sourceNode","getSumWithWeightedTarget","targetNode","ascendingY","updateDepthOfTargets","curNode","targetNodes","resolveCollisions","depthTree","nodePadding","nodes","relaxLeftToRight","maxDepth","sourceLinks","sourceSum","relaxRightToLeft","targetLinks","targetSum","computeData","iterations","nodeWidth","sourceNodes","searchTargetsAndSources","Sankey_objectSpread","childWidth","getNodesTree","getDepthTree","newLinks","yRatio","sumBy_default","updateYOfTree","sy","tLen","updateYOfLinks","Sankey","Sankey_classCallCheck","Sankey_possibleConstructorReturn","Sankey_getPrototypeOf","activeElement","activeElementType","linkCurvature","linkContent","sourceRelativeY","targetRelativeY","linkWidth","sourceX","targetX","interpolationFunc","ka","kb","interpolationGenerator","sourceControlX","targetControlX","linkProps","sourceY","targetY","Sankey_extends","renderLinkItem","nodeContent","renderNodeItem","getCoordinateOfTooltip","sourceName","targetName","getPayloadOfTooltip","Sankey_objectWithoutProperties","renderLinks","renderNodes","contentWidth","contentHeight","_computeData","component_Legend","component_Tooltip","component_ResponsiveContainer","component_Cell","component_LabelList","shape_Cross","polar_PolarGrid","polar_PolarRadiusAxis","polar_PolarAngleAxis","polar_Pie","polar_Radar","polar_RadialBar","cartesian_Brush","cartesian_ReferenceLine","cartesian_ReferenceDot","cartesian_ReferenceArea","cartesian_CartesianGrid","cartesian_Line","cartesian_Area","cartesian_Bar","cartesian_Scatter","cartesian_XAxis","cartesian_YAxis","cartesian_ZAxis","cartesian_ErrorBar","LineChart","BarChart","PieChart","chart_Treemap","chart_Sankey","RadarChart","ScatterChart","AreaChart","RadialBarChart","ComposedChart"],"mappings":"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","file":"Recharts.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"prop-types\"), require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"prop-types\", \"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Recharts\"] = factory(require(\"prop-types\"), require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"Recharts\"] = factory(root[\"PropTypes\"], root[\"React\"], root[\"ReactDOM\"]);\n})(window, function(__WEBPACK_EXTERNAL_MODULE__0__, __WEBPACK_EXTERNAL_MODULE__1__, __WEBPACK_EXTERNAL_MODULE__161__) {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 197);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__0__;","module.exports = __WEBPACK_EXTERNAL_MODULE__1__;","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","/**\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","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.translateStyle = exports.AnimateGroup = exports.configBezier = exports.configSpring = undefined;\n\nvar _Animate = require('./Animate');\n\nvar _Animate2 = _interopRequireDefault(_Animate);\n\nvar _easing = require('./easing');\n\nvar _util = require('./util');\n\nvar _AnimateGroup = require('./AnimateGroup');\n\nvar _AnimateGroup2 = _interopRequireDefault(_AnimateGroup);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.configSpring = _easing.configSpring;\nexports.configBezier = _easing.configBezier;\nexports.AnimateGroup = _AnimateGroup2.default;\nexports.translateStyle = _util.translateStyle;\nexports.default = _Animate2.default;","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\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 baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var 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","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var 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 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","/**\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 g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\r\n} catch (e) {\r\n\t// This works if the window reference is available\r\n\tif (typeof window === \"object\") g = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\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","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\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 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","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.warn = exports.getTransitionVal = exports.compose = exports.translateStyle = exports.mapObject = exports.debugf = exports.debug = exports.log = exports.generatePrefixStyle = exports.getDashCase = exports.identity = exports.getIntersectionKeys = undefined;\n\nvar _intersection2 = require('lodash/intersection');\n\nvar _intersection3 = _interopRequireDefault(_intersection2);\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/* eslint no-console: 0 */\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nvar IN_LINE_PREFIX_LIST = ['-webkit-', '-moz-', '-o-', '-ms-'];\nvar IN_COMPATIBLE_PROPERTY = ['transform', 'transformOrigin', 'transition'];\n\nvar getIntersectionKeys = exports.getIntersectionKeys = function getIntersectionKeys(preObj, nextObj) {\n return (0, _intersection3.default)(Object.keys(preObj), Object.keys(nextObj));\n};\n\nvar identity = exports.identity = function identity(param) {\n return param;\n};\n\n/*\n * @description: convert camel case to dash case\n * string => string\n */\nvar getDashCase = exports.getDashCase = function getDashCase(name) {\n return name.replace(/([A-Z])/g, function (v) {\n return '-' + v.toLowerCase();\n });\n};\n\n/*\n * @description: add compatible style prefix\n * (string, string) => object\n */\nvar generatePrefixStyle = exports.generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (IN_COMPATIBLE_PROPERTY.indexOf(name) === -1) {\n return _defineProperty({}, name, value);\n }\n\n var isTransition = name === 'transition';\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var styleVal = value;\n\n return PREFIX_LIST.reduce(function (result, property, i) {\n if (isTransition) {\n styleVal = value.replace(/(transform|transform-origin)/gim, IN_LINE_PREFIX_LIST[i] + '$1');\n }\n\n return _extends({}, result, _defineProperty({}, property + camelName, styleVal));\n }, {});\n};\n\nvar log = exports.log = function log() {\n var _console;\n\n (_console = console).log.apply(_console, arguments);\n};\n\n/*\n * @description: log the value of a varible\n * string => any => any\n */\nvar debug = exports.debug = function debug(name) {\n return function (item) {\n log(name, item);\n\n return item;\n };\n};\n\n/*\n * @description: log name, args, return value of a function\n * function => function\n */\nvar debugf = exports.debugf = function debugf(tag, f) {\n return function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var res = f.apply(undefined, args);\n var name = tag || f.name || 'anonymous function';\n var argNames = '(' + args.map(JSON.stringify).join(', ') + ')';\n\n log(name + ': ' + argNames + ' => ' + JSON.stringify(res));\n\n return res;\n };\n};\n\n/*\n * @description: map object on every element in this object.\n * (function, object) => object\n */\nvar mapObject = exports.mapObject = function mapObject(fn, obj) {\n return Object.keys(obj).reduce(function (res, key) {\n return _extends({}, res, _defineProperty({}, key, fn(key, obj[key])));\n }, {});\n};\n\n/*\n * @description: add compatible prefix to style\n * object => object\n */\nvar translateStyle = exports.translateStyle = function translateStyle(style) {\n return Object.keys(style).reduce(function (res, key) {\n return _extends({}, res, generatePrefixStyle(key, res[key]));\n }, style);\n};\n\nvar compose = exports.compose = function compose() {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (!args.length) {\n return identity;\n }\n\n var fns = args.reverse();\n // first function can receive multiply arguments\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(undefined, arguments));\n };\n};\n\nvar getTransitionVal = exports.getTransitionVal = function getTransitionVal(props, duration, easing) {\n return props.map(function (prop) {\n return getDashCase(prop) + ' ' + duration + 'ms ' + easing;\n }).join(',');\n};\n\nvar isDev = process.env.NODE_ENV !== 'production';\n\nvar warn = exports.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\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\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\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 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","/**\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 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","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 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': 40 },\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', 40]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 40], ['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","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 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","/**\n * Module dependencies\n */\nvar balanced = require(\"balanced-match\")\nvar reduceFunctionCall = require(\"reduce-function-call\")\nvar mexp = require(\"math-expression-evaluator\")\n\n/**\n * Constantes\n */\nvar MAX_STACK = 100 // should be enough for a single calc()...\nvar NESTED_CALC_RE = /(\\+|\\-|\\*|\\\\|[^a-z]|)(\\s*)(\\()/g\n\n/**\n * Global variables\n */\nvar stack\n\n/**\n * Expose reduceCSSCalc plugin\n *\n * @type {Function}\n */\nmodule.exports = reduceCSSCalc\n\n/**\n * Reduce CSS calc() in a string, whenever it's possible\n *\n * @param {String} value css input\n */\nfunction reduceCSSCalc(value, decimalPrecision) {\n stack = 0\n decimalPrecision = Math.pow(10, decimalPrecision === undefined ? 5 : decimalPrecision)\n\n // Allow calc() on multiple lines\n value = value.replace(/\\n+/g, \" \")\n\n /**\n * Evaluates an expression\n *\n * @param {String} expression\n * @returns {String}\n */\n function evaluateExpression (expression, functionIdentifier, call) {\n if (stack++ > MAX_STACK) {\n stack = 0\n throw new Error(\"Call stack overflow for \" + call)\n }\n\n if (expression === \"\") {\n throw new Error(functionIdentifier + \"(): '\" + call + \"' must contain a non-whitespace string\")\n }\n\n expression = evaluateNestedExpression(expression, call)\n\n var units = getUnitsInExpression(expression)\n\n // If the expression contains multiple units or CSS variables,\n // then let the expression be (i.e. browser calc())\n if (units.length > 1 || expression.indexOf(\"var(\") > -1) {\n return functionIdentifier + \"(\" + expression + \")\"\n }\n\n var unit = units[0] || \"\"\n\n if (unit === \"%\") {\n // Convert percentages to numbers, to handle expressions like: 50% * 50% (will become: 25%):\n // console.log(expression)\n expression = expression.replace(/\\b[0-9\\.]+%/g, function(percent) {\n return parseFloat(percent.slice(0, -1)) * 0.01\n })\n }\n\n // Remove units in expression:\n var toEvaluate = expression.replace(new RegExp(unit, \"gi\"), \"\")\n var result\n\n try {\n result = mexp.eval(toEvaluate)\n }\n catch (e) {\n return functionIdentifier + \"(\" + expression + \")\"\n }\n\n // Transform back to a percentage result:\n if (unit === \"%\") {\n result *= 100\n }\n\n // adjust rounding shit\n // (0.1 * 0.2 === 0.020000000000000004)\n if (functionIdentifier.length || unit === \"%\") {\n result = Math.round(result * decimalPrecision) / decimalPrecision\n }\n\n // Add unit\n result += unit\n\n return result\n }\n\n /**\n * Evaluates nested expressions\n *\n * @param {String} expression\n * @returns {String}\n */\n function evaluateNestedExpression(expression, call) {\n // Remove the calc part from nested expressions to ensure\n // better browser compatibility\n expression = expression.replace(/((?:\\-[a-z]+\\-)?calc)/g, \"\")\n var evaluatedPart = \"\"\n var nonEvaluatedPart = expression\n var matches\n while ((matches = NESTED_CALC_RE.exec(nonEvaluatedPart))) {\n if (matches[0].index > 0) {\n evaluatedPart += nonEvaluatedPart.substring(0, matches[0].index)\n }\n\n var balancedExpr = balanced(\"(\", \")\", nonEvaluatedPart.substring([0].index))\n if (balancedExpr.body === \"\") {\n throw new Error(\"'\" + expression + \"' must contain a non-whitespace string\")\n }\n\n var evaluated = evaluateExpression(balancedExpr.body, \"\", call)\n\n evaluatedPart += balancedExpr.pre + evaluated\n nonEvaluatedPart = balancedExpr.post\n }\n\n return evaluatedPart + nonEvaluatedPart\n }\n\n return reduceFunctionCall(value, /((?:\\-[a-z]+\\-)?calc)\\(/, evaluateExpression)\n}\n\n/**\n * Checks what units are used in an expression\n *\n * @param {String} expression\n * @returns {Array}\n */\n\nfunction getUnitsInExpression(expression) {\n var uniqueUnits = []\n var uniqueLowerCaseUnits = []\n var unitRegEx = /[\\.0-9]([%a-z]+)/gi\n var matches = unitRegEx.exec(expression)\n\n while (matches) {\n if (!matches || !matches[1]) {\n continue\n }\n\n if (uniqueLowerCaseUnits.indexOf(matches[1].toLowerCase()) === -1) {\n uniqueUnits.push(matches[1])\n uniqueLowerCaseUnits.push(matches[1].toLowerCase())\n }\n\n matches = unitRegEx.exec(expression)\n }\n\n return uniqueUnits\n}\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var core = module.exports = { version: '2.5.7' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","// 20.2.2.28 Math.sign(x)\nmodule.exports = Math.sign || function sign(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n","// 20.2.2.14 Math.expm1(x)\nvar $expm1 = Math.expm1;\nmodule.exports = (!$expm1\n // Old FF bug\n || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || $expm1(-2e-17) != -2e-17\n) ? function expm1(x) {\n return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;\n} : $expm1;\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","/**\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 isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var baseGetTag = require('./_baseGetTag'),\n 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 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 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","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _getNiceTickValues = require('./getNiceTickValues');\n\nObject.defineProperty(exports, 'getTickValues', {\n enumerable: true,\n get: function get() {\n return _getNiceTickValues.getTickValues;\n }\n});\nObject.defineProperty(exports, 'getNiceTickValues', {\n enumerable: true,\n get: function get() {\n return _getNiceTickValues.getNiceTickValues;\n }\n});\nObject.defineProperty(exports, 'getTickValuesFixedDomain', {\n enumerable: true,\n get: function get() {\n return _getNiceTickValues.getTickValuesFixedDomain;\n }\n});","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","// 20.2.2.20 Math.log1p(x)\nmodule.exports = Math.log1p || function log1p(x) {\n return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);\n};\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _isEqual2 = require('lodash/isEqual');\n\nvar _isEqual3 = _interopRequireDefault(_isEqual2);\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _class, _class2, _temp;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _AnimateManager = require('./AnimateManager');\n\nvar _AnimateManager2 = _interopRequireDefault(_AnimateManager);\n\nvar _PureRender = require('./PureRender');\n\nvar _PureRender2 = _interopRequireDefault(_PureRender);\n\nvar _easing = require('./easing');\n\nvar _configUpdate = require('./configUpdate');\n\nvar _configUpdate2 = _interopRequireDefault(_configUpdate);\n\nvar _util = require('./util');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Animate = (0, _PureRender2.default)(_class = (_temp = _class2 = function (_Component) {\n _inherits(Animate, _Component);\n\n function Animate(props, context) {\n _classCallCheck(this, Animate);\n\n var _this = _possibleConstructorReturn(this, (Animate.__proto__ || Object.getPrototypeOf(Animate)).call(this, props, context));\n\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\n\n _this.handleStyleChange = _this.handleStyleChange.bind(_this);\n _this.changeStyle = _this.changeStyle.bind(_this);\n\n if (!isActive) {\n _this.state = { style: {} };\n\n // if children is a function and animation is not active, set style to 'to'\n if (typeof children === 'function') {\n _this.state = { style: to };\n }\n\n return _possibleConstructorReturn(_this);\n }\n\n if (steps && steps.length) {\n _this.state = { style: steps[0].style };\n } else if (from) {\n if (typeof children === 'function') {\n _this.state = {\n style: from\n };\n\n return _possibleConstructorReturn(_this);\n }\n _this.state = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n } else {\n _this.state = { style: {} };\n }\n return _this;\n }\n\n _createClass(Animate, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _props = this.props,\n isActive = _props.isActive,\n canBegin = _props.canBegin;\n\n\n this.mounted = true;\n\n if (!isActive || !canBegin) {\n return;\n }\n\n this.runAnimation(this.props);\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n var isActive = nextProps.isActive,\n canBegin = nextProps.canBegin,\n attributeName = nextProps.attributeName,\n shouldReAnimate = nextProps.shouldReAnimate;\n\n\n if (!canBegin) {\n return;\n }\n\n if (!isActive) {\n this.setState({\n style: attributeName ? _defineProperty({}, attributeName, nextProps.to) : nextProps.to\n });\n\n return;\n }\n\n var animateProps = ['to', 'canBegin', 'isActive'];\n\n if ((0, _isEqual3.default)(this.props.to, nextProps.to) && this.props.canBegin && this.props.isActive) {\n return;\n }\n\n var isTriggered = !this.props.canBegin || !this.props.isActive;\n\n if (this.manager) {\n this.manager.stop();\n }\n\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n\n var from = isTriggered || shouldReAnimate ? nextProps.from : this.props.to;\n\n this.setState({\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n });\n\n this.runAnimation(_extends({}, nextProps, {\n from: from,\n begin: 0\n }));\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.mounted = false;\n\n if (this.unSubscribe) {\n this.unSubscribe();\n }\n\n if (this.manager) {\n this.manager.stop();\n this.manager = null;\n }\n\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n }\n }, {\n key: 'runJSAnimation',\n value: function runJSAnimation(props) {\n var _this2 = this;\n\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\n var startAnimation = (0, _configUpdate2.default)(from, to, (0, _easing.configEasing)(easing), duration, this.changeStyle);\n\n var finalStartAnimation = function finalStartAnimation() {\n _this2.stopJSAnimation = startAnimation();\n };\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\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 === undefined ? 0 : _steps$$duration;\n\n\n var addStyle = function addStyle(sequence, nextItem, index) {\n if (index === 0) {\n return sequence;\n }\n\n var duration = nextItem.duration,\n _nextItem$easing = nextItem.easing,\n easing = _nextItem$easing === undefined ? 'ease' : _nextItem$easing,\n style = nextItem.style,\n nextProperties = nextItem.properties,\n onAnimationEnd = nextItem.onAnimationEnd;\n\n\n var preItem = index > 0 ? steps[index - 1] : nextItem;\n var properties = nextProperties || Object.keys(style);\n\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\n var transition = (0, _util.getTransitionVal)(properties, duration, easing);\n var newStyle = _extends({}, preItem.style, style, {\n transition: transition\n });\n\n return [].concat(_toConsumableArray(sequence), [newStyle, duration, onAnimationEnd]).filter(_util.identity);\n };\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 = (0, _AnimateManager2.default)();\n }\n var begin = props.begin,\n duration = props.duration,\n attributeName = props.attributeName,\n propsFrom = props.from,\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\n\n var manager = this.manager;\n\n this.unSubscribe = manager.subscribe(this.handleStyleChange);\n\n if (typeof easing === 'function' || typeof children === 'function' || easing === 'spring') {\n this.runJSAnimation(props);\n return;\n }\n\n if (steps.length > 1) {\n this.runStepAnimation(props);\n return;\n }\n\n var to = attributeName ? _defineProperty({}, attributeName, propsTo) : propsTo;\n var transition = (0, _util.getTransitionVal)(Object.keys(to), duration, easing);\n\n manager.start([onAnimationStart, begin, _extends({}, to, { transition: transition }), duration, onAnimationEnd]);\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: 'render',\n value: function render() {\n var _props2 = this.props,\n children = _props2.children,\n begin = _props2.begin,\n duration = _props2.duration,\n attributeName = _props2.attributeName,\n easing = _props2.easing,\n isActive = _props2.isActive,\n steps = _props2.steps,\n from = _props2.from,\n to = _props2.to,\n canBegin = _props2.canBegin,\n onAnimationEnd = _props2.onAnimationEnd,\n shouldReAnimate = _props2.shouldReAnimate,\n onAnimationReStart = _props2.onAnimationReStart,\n others = _objectWithoutProperties(_props2, ['children', 'begin', 'duration', 'attributeName', 'easing', 'isActive', 'steps', 'from', 'to', 'canBegin', 'onAnimationEnd', 'shouldReAnimate', 'onAnimationReStart']);\n\n var count = _react.Children.count(children);\n var stateStyle = (0, _util.translateStyle)(this.state.style);\n\n if (typeof children === 'function') {\n return children(stateStyle);\n }\n\n if (!isActive || count === 0) {\n return children;\n }\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 === undefined ? {} : _container$props$styl,\n className = _container$props.className;\n\n\n var res = (0, _react.cloneElement)(container, _extends({}, others, {\n style: _extends({}, style, stateStyle),\n className: className\n }));\n return res;\n };\n\n if (count === 1) {\n var onlyChild = _react.Children.only(children);\n\n return cloneContainer(_react.Children.only(children));\n }\n\n return _react2.default.createElement(\n 'div',\n null,\n _react.Children.map(children, function (child) {\n return cloneContainer(child);\n })\n );\n }\n }]);\n\n return Animate;\n}(_react.Component), _class2.displayName = 'Animate', _class2.propTypes = {\n from: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.string]),\n to: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.string]),\n attributeName: _propTypes2.default.string,\n // animation duration\n duration: _propTypes2.default.number,\n begin: _propTypes2.default.number,\n easing: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]),\n steps: _propTypes2.default.arrayOf(_propTypes2.default.shape({\n duration: _propTypes2.default.number.isRequired,\n style: _propTypes2.default.object.isRequired,\n easing: _propTypes2.default.oneOfType([_propTypes2.default.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']), _propTypes2.default.func]),\n // transition css properties(dash case), optional\n properties: _propTypes2.default.arrayOf('string'),\n onAnimationEnd: _propTypes2.default.func\n })),\n children: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.func]),\n isActive: _propTypes2.default.bool,\n canBegin: _propTypes2.default.bool,\n onAnimationEnd: _propTypes2.default.func,\n // decide if it should reanimate with initial from style when props change\n shouldReAnimate: _propTypes2.default.bool,\n onAnimationStart: _propTypes2.default.func,\n onAnimationReStart: _propTypes2.default.func\n}, _class2.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}, _temp)) || _class;\n\nexports.default = Animate;","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 isArray = require('./isArray');\n\n/**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\nfunction castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n}\n\nmodule.exports = castArray;\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","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 * 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 now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.configEasing = exports.configSpring = exports.configBezier = undefined;\n\nvar _util = require('./util');\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar ACCURACY = 1e-4;\n\nvar cubicBezierFactor = function cubicBezierFactor(c1, c2) {\n return [0, 3 * c1, 3 * c2 - 6 * c1, 3 * c1 - 3 * c2 + 1];\n};\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};\n\nvar cubicBezier = function cubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n\n return multyTime(params, t);\n };\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\n return multyTime(newParams, t);\n };\n};\n\n// calculate cubic-bezier using Newton's method\nvar configBezier = exports.configBezier = function configBezier() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var x1 = args[0],\n y1 = args[1],\n x2 = args[2],\n y2 = args[3];\n\n\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\n break;\n case 'ease':\n x1 = 0.25;\n y1 = 0.1;\n x2 = 0.25;\n y2 = 1.0;\n\n break;\n case 'ease-in':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n\n break;\n case 'ease-out':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n\n break;\n case 'ease-in-out':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n\n break;\n default:\n (0, _util.warn)(false, '[configBezier]: arguments should be one of ' + 'oneOf \\'linear\\', \\'ease\\', \\'ease-in\\', \\'ease-out\\', ' + '\\'ease-in-out\\', instead received %s', args);\n }\n }\n\n (0, _util.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\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 } else if (value < 0) {\n return 0;\n }\n\n return value;\n };\n\n var bezier = function bezier(_t) {\n var t = _t > 1 ? 1 : _t;\n var x = t;\n\n for (var i = 0; i < 8; ++i) {\n var evalT = curveX(x) - t;\n var derVal = derCurveX(x);\n\n if (Math.abs(evalT - t) < ACCURACY || derVal < ACCURACY) {\n return curveY(x);\n }\n\n x = rangeValue(x - evalT / derVal);\n }\n\n return curveY(x);\n };\n\n bezier.isStepper = false;\n\n return bezier;\n};\n\nvar configSpring = exports.configSpring = function configSpring() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _config$stiff = config.stiff,\n stiff = _config$stiff === undefined ? 100 : _config$stiff,\n _config$damping = config.damping,\n damping = _config$damping === undefined ? 8 : _config$damping,\n _config$dt = config.dt,\n dt = _config$dt === undefined ? 17 : _config$dt;\n\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\n if (Math.abs(newX - destX) < ACCURACY && Math.abs(newV) < ACCURACY) {\n return [destX, 0];\n }\n return [newX, newV];\n };\n\n stepper.isStepper = true;\n stepper.dt = dt;\n\n return stepper;\n};\n\nvar configEasing = exports.configEasing = function configEasing() {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var easing = args[0];\n\n\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 (0, _util.warn)(false, '[configEasing]: first argument should be one of \\'ease\\', \\'ease-in\\', ' + '\\'ease-out\\', \\'ease-in-out\\', \\'linear\\' and \\'spring\\', instead received %s', args);\n }\n }\n\n if (typeof easing === 'function') {\n return easing;\n }\n\n (0, _util.warn)(false, '[configEasing]: first argument type should be function or ' + 'string, instead received %s', args);\n\n return null;\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 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 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 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 isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * 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","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","var 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","module.exports = balanced;\nfunction balanced(a, b, str) {\n if (a instanceof RegExp) a = maybeMatch(a, str);\n if (b instanceof RegExp) b = maybeMatch(b, str);\n\n var r = range(a, b, str);\n\n return r && {\n start: r[0],\n end: r[1],\n pre: str.slice(0, r[0]),\n body: str.slice(r[0] + a.length, r[1]),\n post: str.slice(r[1] + b.length)\n };\n}\n\nfunction maybeMatch(reg, str) {\n var m = str.match(reg);\n return m ? m[0] : null;\n}\n\nbalanced.range = range;\nfunction range(a, b, str) {\n var begs, beg, left, right, result;\n var ai = str.indexOf(a);\n var bi = str.indexOf(b, ai + 1);\n var i = ai;\n\n if (ai >= 0 && bi > 0) {\n begs = [];\n left = str.length;\n\n while (i >= 0 && !result) {\n if (i == ai) {\n begs.push(i);\n ai = str.indexOf(a, i + 1);\n } else if (begs.length == 1) {\n result = [ begs.pop(), bi ];\n } else {\n beg = begs.pop();\n if (beg < left) {\n left = beg;\n right = bi;\n }\n\n bi = str.indexOf(b, i + 1);\n }\n\n i = ai < bi && ai >= 0 ? ai : bi;\n }\n\n if (begs.length) {\n result = [ left, right ];\n }\n }\n\n return result;\n}\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var 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 * 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","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nmodule.exports = baseGt;\n","/**\n * The base implementation of `_.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","/*! decimal.js-light v2.4.1 https://github.com/MikeMcl/decimal.js-light/LICENCE */\r\n;(function (globalScope) {\r\n 'use strict';\r\n\r\n\r\n /*\r\n * decimal.js-light v2.4.1\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js-light\r\n * Copyright (c) 2017 Michael Mclaughlin <M8ch88l@gmail.com>\r\n * MIT Expat Licence\r\n */\r\n\r\n\r\n // ----------------------------------- EDITABLE DEFAULTS ------------------------------------ //\r\n\r\n\r\n // The limit on the value of `precision`, and on the value of the first argument to\r\n // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n var MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n Decimal = {\r\n\r\n // These values must be integers within the stated ranges (inclusive).\r\n // Most of these values can be changed during run-time using `Decimal.config`.\r\n\r\n // The maximum number of significant digits of the result of a calculation or base conversion.\r\n // E.g. `Decimal.config({ precision: 20 });`\r\n precision: 20, // 1 to MAX_DIGITS\r\n\r\n // The rounding mode used by default by `toInteger`, `toDecimalPlaces`, `toExponential`,\r\n // `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n //\r\n // ROUND_UP 0 Away from zero.\r\n // ROUND_DOWN 1 Towards zero.\r\n // ROUND_CEIL 2 Towards +Infinity.\r\n // ROUND_FLOOR 3 Towards -Infinity.\r\n // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n //\r\n // E.g.\r\n // `Decimal.rounding = 4;`\r\n // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\r\n rounding: 4, // 0 to 8\r\n\r\n // The exponent value at and beneath which `toString` returns exponential notation.\r\n // JavaScript numbers: -7\r\n toExpNeg: -7, // 0 to -MAX_E\r\n\r\n // The exponent value at and above which `toString` returns exponential notation.\r\n // JavaScript numbers: 21\r\n toExpPos: 21, // 0 to MAX_E\r\n\r\n // The natural logarithm of 10.\r\n // 115 digits\r\n LN10: '2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286'\r\n },\r\n\r\n\r\n // ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\r\n\r\n\r\n external = true,\r\n\r\n decimalError = '[DecimalError] ',\r\n invalidArgument = decimalError + 'Invalid argument: ',\r\n exponentOutOfRange = decimalError + 'Exponent out of range: ',\r\n\r\n mathfloor = Math.floor,\r\n mathpow = Math.pow,\r\n\r\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n ONE,\r\n BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_SAFE_INTEGER = 9007199254740991,\r\n MAX_E = mathfloor(MAX_SAFE_INTEGER / LOG_BASE), // 1286742750677284\r\n\r\n // Decimal.prototype object\r\n P = {};\r\n\r\n\r\n // Decimal prototype methods\r\n\r\n\r\n /*\r\n * absoluteValue abs\r\n * comparedTo cmp\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy idiv\r\n * equals eq\r\n * exponent\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * isInteger isint\r\n * isNegative isneg\r\n * isPositive ispos\r\n * isZero\r\n * lessThan lt\r\n * lessThanOrEqualTo lte\r\n * logarithm log\r\n * minus sub\r\n * modulo mod\r\n * naturalExponential exp\r\n * naturalLogarithm ln\r\n * negated neg\r\n * plus add\r\n * precision sd\r\n * squareRoot sqrt\r\n * times mul\r\n * toDecimalPlaces todp\r\n * toExponential\r\n * toFixed\r\n * toInteger toint\r\n * toNumber\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits tosd\r\n * toString\r\n * valueOf val\r\n */\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new this.constructor(this);\r\n if (x.s) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this Decimal is greater than the value of `y`,\r\n * -1 if the value of this Decimal is less than the value of `y`,\r\n * 0 if they have the same value\r\n *\r\n */\r\n P.comparedTo = P.cmp = function (y) {\r\n var i, j, xdL, ydL,\r\n x = this;\r\n\r\n y = new x.constructor(y);\r\n\r\n // Signs differ?\r\n if (x.s !== y.s) return x.s || -y.s;\r\n\r\n // Compare exponents.\r\n if (x.e !== y.e) return x.e > y.e ^ x.s < 0 ? 1 : -1;\r\n\r\n xdL = x.d.length;\r\n ydL = y.d.length;\r\n\r\n // Compare digit by digit.\r\n for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\r\n if (x.d[i] !== y.d[i]) return x.d[i] > y.d[i] ^ x.s < 0 ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return xdL === ydL ? 0 : xdL > ydL ^ x.s < 0 ? 1 : -1;\r\n };\r\n\r\n\r\n /*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\r\n P.decimalPlaces = P.dp = function () {\r\n var x = this,\r\n w = x.d.length - 1,\r\n dp = (w - x.e) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n w = x.d[w];\r\n if (w) for (; w % 10 == 0; w /= 10) dp--;\r\n\r\n return dp < 0 ? 0 : dp;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.dividedBy = P.div = function (y) {\r\n return divide(this, new this.constructor(y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n * by the value of `y`, truncated to `precision` significant digits.\r\n *\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(divide(x, new Ctor(y), 0, 1), Ctor.precision);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n *\r\n */\r\n P.equals = P.eq = function (y) {\r\n return !this.cmp(y);\r\n };\r\n\r\n\r\n /*\r\n * Return the (base 10) exponent value of this Decimal (this.e is the base 10000000 exponent).\r\n *\r\n */\r\n P.exponent = function () {\r\n return getBase10Exponent(this);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n * false.\r\n *\r\n */\r\n P.greaterThan = P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n * otherwise return false.\r\n *\r\n */\r\n P.greaterThanOrEqualTo = P.gte = function (y) {\r\n return this.cmp(y) >= 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\r\n P.isInteger = P.isint = function () {\r\n return this.e > this.d.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\r\n P.isNegative = P.isneg = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\r\n P.isPositive = P.ispos = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is 0, otherwise return false.\r\n *\r\n */\r\n P.isZero = function () {\r\n return this.s === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThan = P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThanOrEqualTo = P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n };\r\n\r\n\r\n /*\r\n * Return the logarithm of the value of this Decimal to the specified base, truncated to\r\n * `precision` significant digits.\r\n *\r\n * If no base is specified, return log[10](x).\r\n *\r\n * log[base](x) = ln(x) / ln(base)\r\n *\r\n * The maximum error of the result is 1 ulp (unit in the last place).\r\n *\r\n * [base] {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\n P.logarithm = P.log = function (base) {\r\n var r,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision,\r\n wpr = pr + 5;\r\n\r\n // Default base is 10.\r\n if (base === void 0) {\r\n base = new Ctor(10);\r\n } else {\r\n base = new Ctor(base);\r\n\r\n // log[-b](x) = NaN\r\n // log[0](x) = NaN\r\n // log[1](x) = NaN\r\n if (base.s < 1 || base.eq(ONE)) throw Error(decimalError + 'NaN');\r\n }\r\n\r\n // log[b](-x) = NaN\r\n // log[b](0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // log[b](1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n external = false;\r\n r = divide(ln(x, wpr), ln(base, wpr), wpr);\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.minus = P.sub = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? subtract(x, y) : add(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.modulo = P.mod = function (y) {\r\n var q,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n y = new Ctor(y);\r\n\r\n // x % 0 = NaN\r\n if (!y.s) throw Error(decimalError + 'NaN');\r\n\r\n // Return x if x is 0.\r\n if (!x.s) return round(new Ctor(x), pr);\r\n\r\n // Prevent rounding of intermediate calculations.\r\n external = false;\r\n q = divide(x, y, 0, 1).times(y);\r\n external = true;\r\n\r\n return x.minus(q);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n * i.e. the base e raised to the power the value of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.naturalExponential = P.exp = function () {\r\n return exp(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * truncated to `precision` significant digits.\r\n *\r\n */\r\n P.naturalLogarithm = P.ln = function () {\r\n return ln(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n * -1.\r\n *\r\n */\r\n P.negated = P.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s || 0;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.plus = P.add = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? add(x, y) : subtract(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return the number of significant digits of the value of this Decimal.\r\n *\r\n * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n *\r\n */\r\n P.precision = P.sd = function (z) {\r\n var e, sd, w,\r\n x = this;\r\n\r\n if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\r\n\r\n e = getBase10Exponent(x) + 1;\r\n w = x.d.length - 1;\r\n sd = w * LOG_BASE + 1;\r\n w = x.d[w];\r\n\r\n // If non-zero...\r\n if (w) {\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n for (; w % 10 == 0; w /= 10) sd--;\r\n\r\n // Add the number of digits of the first word.\r\n for (w = x.d[0]; w >= 10; w /= 10) sd++;\r\n }\r\n\r\n return z && e > sd ? e : sd;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the square root of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var e, n, pr, r, s, t, wpr,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n // Negative or zero?\r\n if (x.s < 1) {\r\n if (!x.s) return new Ctor(0);\r\n\r\n // sqrt(-x) = NaN\r\n throw Error(decimalError + 'NaN');\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+x);\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = digitsToString(x.d);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(n);\r\n e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '1e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n pr = Ctor.precision;\r\n s = wpr = pr + 3;\r\n\r\n // Newton-Raphson iteration.\r\n for (;;) {\r\n t = r;\r\n r = t.plus(divide(x, t, wpr + 2)).times(0.5);\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === (n = digitsToString(r.d)).slice(0, wpr)) {\r\n n = n.slice(wpr - 3, wpr + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\r\n // 4999, i.e. approaching a rounding boundary, continue the iteration.\r\n if (s == wpr && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n round(t, pr + 1, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n } else if (n != '9999') {\r\n break;\r\n }\r\n\r\n wpr += 4;\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal times `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.times = P.mul = function (y) {\r\n var carry, e, i, k, r, rL, t, xdL, ydL,\r\n x = this,\r\n Ctor = x.constructor,\r\n xd = x.d,\r\n yd = (y = new Ctor(y)).d;\r\n\r\n // Return 0 if either is 0.\r\n if (!x.s || !y.s) return new Ctor(0);\r\n\r\n y.s *= x.s;\r\n e = x.e + y.e;\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Ensure xd points to the longer array.\r\n if (xdL < ydL) {\r\n r = xd;\r\n xd = yd;\r\n yd = r;\r\n rL = xdL;\r\n xdL = ydL;\r\n ydL = rL;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n r = [];\r\n rL = xdL + ydL;\r\n for (i = rL; i--;) r.push(0);\r\n\r\n // Multiply!\r\n for (i = ydL; --i >= 0;) {\r\n carry = 0;\r\n for (k = xdL + i; k > i;) {\r\n t = r[k] + yd[i] * xd[k - i - 1] + carry;\r\n r[k--] = t % BASE | 0;\r\n carry = t / BASE | 0;\r\n }\r\n\r\n r[k] = (r[k] + carry) % BASE | 0;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; !r[--rL];) r.pop();\r\n\r\n if (carry) ++e;\r\n else r.shift();\r\n\r\n y.d = r;\r\n y.e = e;\r\n\r\n return external ? round(y, Ctor.precision) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n *\r\n * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toDecimalPlaces = P.todp = function (dp, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n if (dp === void 0) return x;\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n return round(x, dp + getBase10Exponent(x) + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in exponential notation rounded to\r\n * `dp` fixed decimal places using rounding mode `rounding`.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toExponential = function (dp, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = toString(x, true);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), dp + 1, rm);\r\n str = toString(x, true, dp + 1);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n * omitted.\r\n *\r\n * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n * (-0).toFixed(3) is '0.000'.\r\n * (-0.5).toFixed(0) is '-0'.\r\n *\r\n */\r\n P.toFixed = function (dp, rm) {\r\n var str, y,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) return toString(x);\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n y = round(new Ctor(x), dp + getBase10Exponent(x) + 1, rm);\r\n str = toString(y.abs(), false, dp + getBase10Exponent(y) + 1);\r\n\r\n // To determine whether to add the minus sign look at the value before it was rounded,\r\n // i.e. look at `x` rather than `y`.\r\n return x.isneg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n * rounding mode `rounding`.\r\n *\r\n */\r\n P.toInteger = P.toint = function () {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(new Ctor(x), getBase10Exponent(x) + 1, Ctor.rounding);\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this Decimal converted to a number primitive.\r\n *\r\n */\r\n P.toNumber = function () {\r\n return +this;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`,\r\n * truncated to `precision` significant digits.\r\n *\r\n * For non-integer or very large exponents pow(x, y) is calculated using\r\n *\r\n * x^y = exp(y*ln(x))\r\n *\r\n * The maximum error is 1 ulp (unit in last place).\r\n *\r\n * y {number|string|Decimal} The power to which to raise this Decimal.\r\n *\r\n */\r\n P.toPower = P.pow = function (y) {\r\n var e, k, pr, r, sign, yIsInt,\r\n x = this,\r\n Ctor = x.constructor,\r\n guard = 12,\r\n yn = +(y = new Ctor(y));\r\n\r\n // pow(x, 0) = 1\r\n if (!y.s) return new Ctor(ONE);\r\n\r\n x = new Ctor(x);\r\n\r\n // pow(0, y > 0) = 0\r\n // pow(0, y < 0) = Infinity\r\n if (!x.s) {\r\n if (y.s < 1) throw Error(decimalError + 'Infinity');\r\n return x;\r\n }\r\n\r\n // pow(1, y) = 1\r\n if (x.eq(ONE)) return x;\r\n\r\n pr = Ctor.precision;\r\n\r\n // pow(x, 1) = x\r\n if (y.eq(ONE)) return round(x, pr);\r\n\r\n e = y.e;\r\n k = y.d.length - 1;\r\n yIsInt = e >= k;\r\n sign = x.s;\r\n\r\n if (!yIsInt) {\r\n\r\n // pow(x < 0, y non-integer) = NaN\r\n if (sign < 0) throw Error(decimalError + 'NaN');\r\n\r\n // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n } else if ((k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n r = new Ctor(ONE);\r\n\r\n // Max k of 9007199254740991 takes 53 loop iterations.\r\n // Maximum digits array length; leaves [28, 34] guard digits.\r\n e = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n external = false;\r\n\r\n for (;;) {\r\n if (k % 2) {\r\n r = r.times(x);\r\n truncate(r.d, e);\r\n }\r\n\r\n k = mathfloor(k / 2);\r\n if (k === 0) break;\r\n\r\n x = x.times(x);\r\n truncate(x.d, e);\r\n }\r\n\r\n external = true;\r\n\r\n return y.s < 0 ? new Ctor(ONE).div(r) : round(r, pr);\r\n }\r\n\r\n // Result is negative if x is negative and the last digit of integer y is odd.\r\n sign = sign < 0 && y.d[Math.max(e, k)] & 1 ? -1 : 1;\r\n\r\n x.s = 1;\r\n external = false;\r\n r = y.times(ln(x, pr + guard));\r\n external = true;\r\n r = exp(r);\r\n r.s = sign;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n var e, str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n e = getBase10Exponent(x);\r\n str = toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), sd, rm);\r\n e = getBase10Exponent(x);\r\n str = toString(x, sd <= e || e <= Ctor.toExpNeg, sd);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n * omitted.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toSignificantDigits = P.tosd = function (sd, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n }\r\n\r\n return round(new Ctor(x), sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal.\r\n *\r\n * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n *\r\n */\r\n P.toString = P.valueOf = P.val = P.toJSON = function () {\r\n var x = this,\r\n e = getBase10Exponent(x),\r\n Ctor = x.constructor;\r\n\r\n return toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n };\r\n\r\n\r\n // Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\r\n\r\n\r\n /*\r\n * add P.minus, P.plus\r\n * checkInt32 P.todp, P.toExponential, P.toFixed, P.toPrecision, P.tosd\r\n * digitsToString P.log, P.sqrt, P.pow, toString, exp, ln\r\n * divide P.div, P.idiv, P.log, P.mod, P.sqrt, exp, ln\r\n * exp P.exp, P.pow\r\n * getBase10Exponent P.exponent, P.sd, P.toint, P.sqrt, P.todp, P.toFixed, P.toPrecision,\r\n * P.toString, divide, round, toString, exp, ln\r\n * getLn10 P.log, ln\r\n * getZeroString digitsToString, toString\r\n * ln P.log, P.ln, P.pow, exp\r\n * parseDecimal Decimal\r\n * round P.abs, P.idiv, P.log, P.minus, P.mod, P.neg, P.plus, P.toint, P.sqrt,\r\n * P.times, P.todp, P.toExponential, P.toFixed, P.pow, P.toPrecision, P.tosd,\r\n * divide, getLn10, exp, ln\r\n * subtract P.minus, P.plus\r\n * toString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf\r\n * truncate P.pow\r\n *\r\n * Throws: P.log, P.mod, P.sd, P.sqrt, P.pow, checkInt32, divide, round,\r\n * getLn10, exp, ln, parseDecimal, Decimal, config\r\n */\r\n\r\n\r\n function add(x, y) {\r\n var carry, d, e, i, k, len, xd, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // If either is zero...\r\n if (!x.s || !y.s) {\r\n\r\n // Return x if y is zero.\r\n // Return y if y is non-zero.\r\n if (!y.s) y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n k = x.e;\r\n e = y.e;\r\n xd = xd.slice();\r\n i = k - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (i) {\r\n if (i < 0) {\r\n d = xd;\r\n i = -i;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = k;\r\n len = xd.length;\r\n }\r\n\r\n // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\r\n k = Math.ceil(pr / LOG_BASE);\r\n len = k > len ? k + 1 : len + 1;\r\n\r\n if (i > len) {\r\n i = len;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\r\n d.reverse();\r\n for (; i--;) d.push(0);\r\n d.reverse();\r\n }\r\n\r\n len = xd.length;\r\n i = yd.length;\r\n\r\n // If yd is longer than xd, swap xd and yd so xd points to the longer array.\r\n if (len - i < 0) {\r\n i = len;\r\n d = yd;\r\n yd = xd;\r\n xd = d;\r\n }\r\n\r\n // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\r\n for (carry = 0; i;) {\r\n carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\r\n xd[i] %= BASE;\r\n }\r\n\r\n if (carry) {\r\n xd.unshift(carry);\r\n ++e;\r\n }\r\n\r\n // Remove trailing zeros.\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n for (len = xd.length; xd[--len] == 0;) xd.pop();\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function checkInt32(i, min, max) {\r\n if (i !== ~~i || i < min || i > max) {\r\n throw Error(invalidArgument + i);\r\n }\r\n }\r\n\r\n\r\n function digitsToString(d) {\r\n var i, k, ws,\r\n indexOfLastWord = d.length - 1,\r\n str = '',\r\n w = d[0];\r\n\r\n if (indexOfLastWord > 0) {\r\n str += w;\r\n for (i = 1; i < indexOfLastWord; i++) {\r\n ws = d[i] + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n str += ws;\r\n }\r\n\r\n w = d[i];\r\n ws = w + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n } else if (w === 0) {\r\n return '0';\r\n }\r\n\r\n // Remove trailing zeros of last w.\r\n for (; w % 10 === 0;) w /= 10;\r\n\r\n return str + w;\r\n }\r\n\r\n\r\n var divide = (function () {\r\n\r\n // Assumes non-zero x and k, and hence non-zero result.\r\n function multiplyInteger(x, k) {\r\n var temp,\r\n carry = 0,\r\n i = x.length;\r\n\r\n for (x = x.slice(); i--;) {\r\n temp = x[i] * k + carry;\r\n x[i] = temp % BASE | 0;\r\n carry = temp / BASE | 0;\r\n }\r\n\r\n if (carry) x.unshift(carry);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, r;\r\n\r\n if (aL != bL) {\r\n r = aL > bL ? 1 : -1;\r\n } else {\r\n for (i = r = 0; i < aL; i++) {\r\n if (a[i] != b[i]) {\r\n r = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n function subtract(a, b, aL) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * BASE + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1;) a.shift();\r\n }\r\n\r\n return function (x, y, pr, dp) {\r\n var cmp, e, i, k, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0, yL, yz,\r\n Ctor = x.constructor,\r\n sign = x.s == y.s ? 1 : -1,\r\n xd = x.d,\r\n yd = y.d;\r\n\r\n // Either 0?\r\n if (!x.s) return new Ctor(x);\r\n if (!y.s) throw Error(decimalError + 'Division by zero');\r\n\r\n e = x.e - y.e;\r\n yL = yd.length;\r\n xL = xd.length;\r\n q = new Ctor(sign);\r\n qd = q.d = [];\r\n\r\n // Result exponent may be one less than e.\r\n for (i = 0; yd[i] == (xd[i] || 0); ) ++i;\r\n if (yd[i] > (xd[i] || 0)) --e;\r\n\r\n if (pr == null) {\r\n sd = pr = Ctor.precision;\r\n } else if (dp) {\r\n sd = pr + (getBase10Exponent(x) - getBase10Exponent(y)) + 1;\r\n } else {\r\n sd = pr;\r\n }\r\n\r\n if (sd < 0) return new Ctor(0);\r\n\r\n // Convert precision in number of base 10 digits to base 1e7 digits.\r\n sd = sd / LOG_BASE + 2 | 0;\r\n i = 0;\r\n\r\n // divisor < 1e7\r\n if (yL == 1) {\r\n k = 0;\r\n yd = yd[0];\r\n sd++;\r\n\r\n // k is the carry.\r\n for (; (i < xL || k) && sd--; i++) {\r\n t = k * BASE + (xd[i] || 0);\r\n qd[i] = t / yd | 0;\r\n k = t % yd | 0;\r\n }\r\n\r\n // divisor >= 1e7\r\n } else {\r\n\r\n // Normalise xd and yd so highest order digit of yd is >= BASE/2\r\n k = BASE / (yd[0] + 1) | 0;\r\n\r\n if (k > 1) {\r\n yd = multiplyInteger(yd, k);\r\n xd = multiplyInteger(xd, k);\r\n yL = yd.length;\r\n xL = xd.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xd.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL;) rem[remL++] = 0;\r\n\r\n yz = yd.slice();\r\n yz.unshift(0);\r\n yd0 = yd[0];\r\n\r\n if (yd[1] >= BASE / 2) ++yd0;\r\n\r\n do {\r\n k = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, k.\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * BASE + (rem[1] || 0);\r\n\r\n // k will be how many times the divisor goes into the current remainder.\r\n k = rem0 / yd0 | 0;\r\n\r\n // Algorithm:\r\n // 1. product = divisor * trial digit (k)\r\n // 2. if product > remainder: product -= divisor, k--\r\n // 3. remainder -= product\r\n // 4. if product was < remainder at 2:\r\n // 5. compare new remainder and divisor\r\n // 6. If remainder > divisor: remainder -= divisor, k++\r\n\r\n if (k > 1) {\r\n if (k >= BASE) k = BASE - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiplyInteger(yd, k);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n cmp = compare(prod, rem, prodL, remL);\r\n\r\n // product > remainder.\r\n if (cmp == 1) {\r\n k--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yd, prodL);\r\n }\r\n } else {\r\n\r\n // cmp is -1.\r\n // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\r\n // to avoid it. If k is 1 there is a need to compare yd and rem again below.\r\n if (k == 0) cmp = k = 1;\r\n prod = yd.slice();\r\n }\r\n\r\n prodL = prod.length;\r\n if (prodL < remL) prod.unshift(0);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL);\r\n\r\n // If product was < previous remainder.\r\n if (cmp == -1) {\r\n remL = rem.length;\r\n\r\n // Compare divisor and new remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n if (cmp < 1) {\r\n k++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yd, remL);\r\n }\r\n }\r\n\r\n remL = rem.length;\r\n } else if (cmp === 0) {\r\n k++;\r\n rem = [0];\r\n } // if cmp === 1, k will be 0\r\n\r\n // Add the next digit, k, to the result array.\r\n qd[i++] = k;\r\n\r\n // Update the remainder.\r\n if (cmp && rem[0]) {\r\n rem[remL++] = xd[xi] || 0;\r\n } else {\r\n rem = [xd[xi]];\r\n remL = 1;\r\n }\r\n\r\n } while ((xi++ < xL || rem[0] !== void 0) && sd--);\r\n }\r\n\r\n // Leading zero?\r\n if (!qd[0]) qd.shift();\r\n\r\n q.e = e;\r\n\r\n return round(q, dp ? pr + getBase10Exponent(q) + 1 : pr);\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of `x` truncated to `sd`\r\n * significant digits.\r\n *\r\n * Taylor/Maclaurin series.\r\n *\r\n * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n *\r\n * Argument reduction:\r\n * Repeat x = x / 32, k += 5, until |x| < 0.1\r\n * exp(x) = exp(x / 2^k)^(2^k)\r\n *\r\n * Previously, the argument was initially reduced by\r\n * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10)\r\n * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n * found to be slower than just dividing repeatedly by 32 as above.\r\n *\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n */\r\n function exp(x, sd) {\r\n var denominator, guard, pow, sum, t, wpr,\r\n i = 0,\r\n k = 0,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n if (getBase10Exponent(x) > 16) throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n\r\n // exp(0) = 1\r\n if (!x.s) return new Ctor(ONE);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n t = new Ctor(0.03125);\r\n\r\n while (x.abs().gte(0.1)) {\r\n x = x.times(t); // x = x / 2^5\r\n k += 5;\r\n }\r\n\r\n // Estimate the precision increase necessary to ensure the first 4 rounding digits are correct.\r\n guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\r\n wpr += guard;\r\n denominator = pow = sum = new Ctor(ONE);\r\n Ctor.precision = wpr;\r\n\r\n for (;;) {\r\n pow = round(pow.times(x), wpr);\r\n denominator = denominator.times(++i);\r\n t = sum.plus(divide(pow, denominator, wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n while (k--) sum = round(sum.times(sum), wpr);\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n }\r\n }\r\n\r\n\r\n // Calculate the base 10 exponent from the base 1e7 exponent.\r\n function getBase10Exponent(x) {\r\n var e = x.e * LOG_BASE,\r\n w = x.d[0];\r\n\r\n // Add the number of digits of the first word of the digits array.\r\n for (; w >= 10; w /= 10) e++;\r\n return e;\r\n }\r\n\r\n\r\n function getLn10(Ctor, sd, pr) {\r\n\r\n if (sd > Ctor.LN10.sd()) {\r\n\r\n\r\n // Reset global state in case the exception is caught.\r\n external = true;\r\n if (pr) Ctor.precision = pr;\r\n throw Error(decimalError + 'LN10 precision limit exceeded');\r\n }\r\n\r\n return round(new Ctor(Ctor.LN10), sd);\r\n }\r\n\r\n\r\n function getZeroString(k) {\r\n var zs = '';\r\n for (; k--;) zs += '0';\r\n return zs;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of `x` truncated to `sd` significant\r\n * digits.\r\n *\r\n * ln(n) is non-terminating (n != 1)\r\n *\r\n */\r\n function ln(y, sd) {\r\n var c, c0, denominator, e, numerator, sum, t, wpr, x2,\r\n n = 1,\r\n guard = 10,\r\n x = y,\r\n xd = x.d,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // ln(-x) = NaN\r\n // ln(0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // ln(1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n if (x.eq(10)) {\r\n if (sd == null) external = true;\r\n return getLn10(Ctor, wpr);\r\n }\r\n\r\n wpr += guard;\r\n Ctor.precision = wpr;\r\n c = digitsToString(xd);\r\n c0 = c.charAt(0);\r\n e = getBase10Exponent(x);\r\n\r\n if (Math.abs(e) < 1.5e15) {\r\n\r\n // Argument reduction.\r\n // The series converges faster the closer the argument is to 1, so using\r\n // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b\r\n // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\r\n // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\r\n // later be divided by this number, then separate out the power of 10 using\r\n // ln(a*10^b) = ln(a) + b*ln(10).\r\n\r\n // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\r\n //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\r\n // max n is 6 (gives 0.7 - 1.3)\r\n while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\r\n x = x.times(y);\r\n c = digitsToString(x.d);\r\n c0 = c.charAt(0);\r\n n++;\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n\r\n if (c0 > 1) {\r\n x = new Ctor('0.' + c);\r\n e++;\r\n } else {\r\n x = new Ctor(c0 + '.' + c.slice(1));\r\n }\r\n } else {\r\n\r\n // The argument reduction method above may result in overflow if the argument y is a massive\r\n // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\r\n // function using ln(x*10^e) = ln(x) + e*ln(10).\r\n t = getLn10(Ctor, wpr + 2, pr).times(e + '');\r\n x = ln(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(x, pr)) : x;\r\n }\r\n\r\n // x is reduced to a value near 1.\r\n\r\n // Taylor series.\r\n // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\r\n // where x = (y - 1)/(y + 1) (|x| < 1)\r\n sum = numerator = x = divide(x.minus(ONE), x.plus(ONE), wpr);\r\n x2 = round(x.times(x), wpr);\r\n denominator = 3;\r\n\r\n for (;;) {\r\n numerator = round(numerator.times(x2), wpr);\r\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n sum = sum.times(2);\r\n\r\n // Reverse the argument reduction.\r\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n sum = divide(sum, new Ctor(n), wpr);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n denominator += 2;\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\r\n function parseDecimal(x, str) {\r\n var e, i, len;\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48;) ++i;\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(len - 1) === 48;) --len;\r\n str = str.slice(i, len);\r\n\r\n if (str) {\r\n len -= i;\r\n e = e - i - 1;\r\n x.e = mathfloor(e / LOG_BASE);\r\n x.d = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first word of the digits array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE;\r\n\r\n if (i < len) {\r\n if (i) x.d.push(+str.slice(0, i));\r\n for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));\r\n str = str.slice(i);\r\n i = LOG_BASE - str.length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--;) str += '0';\r\n x.d.push(+str);\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) throw Error(exponentOutOfRange + e);\r\n } else {\r\n\r\n // Zero.\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Round `x` to `sd` significant digits, using rounding mode `rm` if present (truncate otherwise).\r\n */\r\n function round(x, sd, rm) {\r\n var i, j, k, n, rd, doRound, w, xdi,\r\n xd = x.d;\r\n\r\n // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // w: the word of xd which contains the rounding digit, a base 1e7 number.\r\n // xdi: the index of w within xd.\r\n // n: the number of digits of w.\r\n // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\r\n // they had leading zeros)\r\n // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\r\n\r\n // Get the length of the first word of the digits array xd.\r\n for (n = 1, k = xd[0]; k >= 10; k /= 10) n++;\r\n i = sd - n;\r\n\r\n // Is the rounding digit in the first word of xd?\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n w = xd[xdi = 0];\r\n } else {\r\n xdi = Math.ceil((i + 1) / LOG_BASE);\r\n k = xd.length;\r\n if (xdi >= k) return x;\r\n w = k = xd[xdi];\r\n\r\n // Get the number of digits of w.\r\n for (n = 1; k >= 10; k /= 10) n++;\r\n\r\n // Get the index of rd within w.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within w, adjusted for leading zeros.\r\n // The number of leading zeros of w is given by LOG_BASE - n.\r\n j = i - LOG_BASE + n;\r\n }\r\n\r\n if (rm !== void 0) {\r\n k = mathpow(10, n - j - 1);\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = w / k % 10 | 0;\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n doRound = sd < 0 || xd[xdi + 1] !== void 0 || w % k;\r\n\r\n // The expression `w % mathpow(10, n - j - 1)` returns all the digits of w to the right of the\r\n // digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression will give\r\n // 714.\r\n\r\n doRound = rm < 4\r\n ? (rd || doRound) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || doRound || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? w / mathpow(10, n - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n }\r\n\r\n if (sd < 1 || !xd[0]) {\r\n if (doRound) {\r\n k = getBase10Exponent(x);\r\n xd.length = 1;\r\n\r\n // Convert sd to decimal places.\r\n sd = sd - k - 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\r\n x.e = mathfloor(-sd / LOG_BASE) || 0;\r\n } else {\r\n xd.length = 1;\r\n\r\n // Zero.\r\n xd[0] = x.e = x.s = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xd.length = xdi;\r\n k = 1;\r\n xdi--;\r\n } else {\r\n xd.length = xdi + 1;\r\n k = mathpow(10, LOG_BASE - i);\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of w.\r\n xd[xdi] = j > 0 ? (w / mathpow(10, n - j) % mathpow(10, j) | 0) * k : 0;\r\n }\r\n\r\n if (doRound) {\r\n for (;;) {\r\n\r\n // Is the digit to be rounded up in the first word of xd?\r\n if (xdi == 0) {\r\n if ((xd[0] += k) == BASE) {\r\n xd[0] = 1;\r\n ++x.e;\r\n }\r\n\r\n break;\r\n } else {\r\n xd[xdi] += k;\r\n if (xd[xdi] != BASE) break;\r\n xd[xdi--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xd.length; xd[--i] === 0;) xd.pop();\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) {\r\n throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function subtract(x, y) {\r\n var d, e, i, j, k, len, xd, xe, xLTy, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // Return y negated if x is zero.\r\n // Return x if y is zero and x is non-zero.\r\n if (!x.s || !y.s) {\r\n if (y.s) y.s = -y.s;\r\n else y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are non-zero numbers with the same sign.\r\n\r\n e = y.e;\r\n xe = x.e;\r\n xd = xd.slice();\r\n k = xe - e;\r\n\r\n // If exponents differ...\r\n if (k) {\r\n xLTy = k < 0;\r\n\r\n if (xLTy) {\r\n d = xd;\r\n k = -k;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = xe;\r\n len = xd.length;\r\n }\r\n\r\n // Numbers with massively different exponents would result in a very high number of zeros\r\n // needing to be prepended, but this can be avoided while still ensuring correct rounding by\r\n // limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\r\n i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\r\n\r\n if (k > i) {\r\n k = i;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents.\r\n d.reverse();\r\n for (i = k; i--;) d.push(0);\r\n d.reverse();\r\n\r\n // Base 1e7 exponents equal.\r\n } else {\r\n\r\n // Check digits to determine which is the bigger number.\r\n\r\n i = xd.length;\r\n len = yd.length;\r\n xLTy = i < len;\r\n if (xLTy) len = i;\r\n\r\n for (i = 0; i < len; i++) {\r\n if (xd[i] != yd[i]) {\r\n xLTy = xd[i] < yd[i];\r\n break;\r\n }\r\n }\r\n\r\n k = 0;\r\n }\r\n\r\n if (xLTy) {\r\n d = xd;\r\n xd = yd;\r\n yd = d;\r\n y.s = -y.s;\r\n }\r\n\r\n len = xd.length;\r\n\r\n // Append zeros to xd if shorter.\r\n // Don't add zeros to yd if shorter as subtraction only needs to start at yd length.\r\n for (i = yd.length - len; i > 0; --i) xd[len++] = 0;\r\n\r\n // Subtract yd from xd.\r\n for (i = yd.length; i > k;) {\r\n if (xd[--i] < yd[i]) {\r\n for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;\r\n --xd[j];\r\n xd[i] += BASE;\r\n }\r\n\r\n xd[i] -= yd[i];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] === 0;) xd.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xd[0] === 0; xd.shift()) --e;\r\n\r\n // Zero?\r\n if (!xd[0]) return new Ctor(0);\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n //return external && xd.length >= pr / LOG_BASE ? round(y, pr) : y;\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function toString(x, isExp, sd) {\r\n var k,\r\n e = getBase10Exponent(x),\r\n str = digitsToString(x.d),\r\n len = str.length;\r\n\r\n if (isExp) {\r\n if (sd && (k = sd - len) > 0) {\r\n str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\r\n } else if (len > 1) {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n\r\n str = str + (e < 0 ? 'e' : 'e+') + e;\r\n } else if (e < 0) {\r\n str = '0.' + getZeroString(-e - 1) + str;\r\n if (sd && (k = sd - len) > 0) str += getZeroString(k);\r\n } else if (e >= len) {\r\n str += getZeroString(e + 1 - len);\r\n if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\r\n } else {\r\n if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\r\n if (sd && (k = sd - len) > 0) {\r\n if (e + 1 === len) str += '.';\r\n str += getZeroString(k);\r\n }\r\n }\r\n\r\n return x.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Does not strip trailing zeros.\r\n function truncate(arr, len) {\r\n if (arr.length > len) {\r\n arr.length = len;\r\n return true;\r\n }\r\n }\r\n\r\n\r\n // Decimal methods\r\n\r\n\r\n /*\r\n * clone\r\n * config/set\r\n */\r\n\r\n\r\n /*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\r\n function clone(obj) {\r\n var i, p, ps;\r\n\r\n /*\r\n * The Decimal constructor and exported function.\r\n * Return a new Decimal instance.\r\n *\r\n * value {number|string|Decimal} A numeric value.\r\n *\r\n */\r\n function Decimal(value) {\r\n var x = this;\r\n\r\n // Decimal called without new.\r\n if (!(x instanceof Decimal)) return new Decimal(value);\r\n\r\n // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\r\n // which points to Object.\r\n x.constructor = Decimal;\r\n\r\n // Duplicate.\r\n if (value instanceof Decimal) {\r\n x.s = value.s;\r\n x.e = value.e;\r\n x.d = (value = value.d) ? value.slice() : value;\r\n return;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n\r\n // Reject Infinity/NaN.\r\n if (value * 0 !== 0) {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n if (value > 0) {\r\n x.s = 1;\r\n } else if (value < 0) {\r\n value = -value;\r\n x.s = -1;\r\n } else {\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n return;\r\n }\r\n\r\n // Fast path for small integers.\r\n if (value === ~~value && value < 1e7) {\r\n x.e = 0;\r\n x.d = [value];\r\n return;\r\n }\r\n\r\n return parseDecimal(x, value.toString());\r\n } else if (typeof value !== 'string') {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n // Minus sign?\r\n if (value.charCodeAt(0) === 45) {\r\n value = value.slice(1);\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n if (isDecimal.test(value)) parseDecimal(x, value);\r\n else throw Error(invalidArgument + value);\r\n }\r\n\r\n Decimal.prototype = P;\r\n\r\n Decimal.ROUND_UP = 0;\r\n Decimal.ROUND_DOWN = 1;\r\n Decimal.ROUND_CEIL = 2;\r\n Decimal.ROUND_FLOOR = 3;\r\n Decimal.ROUND_HALF_UP = 4;\r\n Decimal.ROUND_HALF_DOWN = 5;\r\n Decimal.ROUND_HALF_EVEN = 6;\r\n Decimal.ROUND_HALF_CEIL = 7;\r\n Decimal.ROUND_HALF_FLOOR = 8;\r\n\r\n Decimal.clone = clone;\r\n Decimal.config = Decimal.set = config;\r\n\r\n if (obj === void 0) obj = {};\r\n if (obj) {\r\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'LN10'];\r\n for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\r\n }\r\n\r\n Decimal.config(obj);\r\n\r\n return Decimal;\r\n }\r\n\r\n\r\n /*\r\n * Configure global settings for a Decimal constructor.\r\n *\r\n * `obj` is an object with one or more of the following properties,\r\n *\r\n * precision {number}\r\n * rounding {number}\r\n * toExpNeg {number}\r\n * toExpPos {number}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\r\n function config(obj) {\r\n if (!obj || typeof obj !== 'object') {\r\n throw Error(decimalError + 'Object expected');\r\n }\r\n var i, p, v,\r\n ps = [\r\n 'precision', 1, MAX_DIGITS,\r\n 'rounding', 0, 8,\r\n 'toExpNeg', -1 / 0, 0,\r\n 'toExpPos', 0, 1 / 0\r\n ];\r\n\r\n for (i = 0; i < ps.length; i += 3) {\r\n if ((v = obj[p = ps[i]]) !== void 0) {\r\n if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n if ((v = obj[p = 'LN10']) !== void 0) {\r\n if (v == Math.LN10) this[p] = new this(v);\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n\r\n // Create and configure initial Decimal constructor.\r\n Decimal = clone(Decimal);\r\n\r\n Decimal['default'] = Decimal.Decimal = Decimal;\r\n\r\n // Internal constant.\r\n ONE = new Decimal(1);\r\n\r\n\r\n // Export.\r\n\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () {\r\n return Decimal;\r\n });\r\n\r\n // Node and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n module.exports = Decimal;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalScope) {\r\n globalScope = typeof self != 'undefined' && self && self.self == self\r\n ? self : Function('return this')();\r\n }\r\n\r\n globalScope.Decimal = Decimal;\r\n }\r\n})(this);\r\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar identity = function identity(i) {\n return i;\n};\n\nvar PLACE_HOLDER = exports.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(undefined, 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 = 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(undefined, args);\n }\n\n return curryN(n - argsLength, curry0(function () {\n for (var _len2 = arguments.length, restArgs = 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\n return fn.apply(undefined, _toConsumableArray(newArgs).concat(restArgs));\n }));\n });\n};\n\nvar curry = exports.curry = function curry(fn) {\n return curryN(fn.length, fn);\n};\n\nvar range = exports.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};\n\nvar map = exports.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});\n\nvar compose = exports.compose = function compose() {\n for (var _len3 = arguments.length, args = 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();\n // first function can receive multiply arguments\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(undefined, arguments));\n };\n};\n\nvar reverse = exports.reverse = function reverse(arr) {\n if (Array.isArray(arr)) {\n return arr.reverse();\n }\n\n // can be string\n return arr.split('').reverse.join('');\n};\n\nvar memoize = exports.memoize = function memoize(fn) {\n var lastArgs = null;\n var lastResult = null;\n\n return function () {\n for (var _len4 = arguments.length, args = 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(undefined, args);\n\n return lastResult;\n };\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _ResizeDetector = require('./components/ResizeDetector');\n\nvar _ResizeDetector2 = _interopRequireDefault(_ResizeDetector);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _ResizeDetector2.default;","var baseExtremum = require('./_baseExtremum'),\n baseGt = require('./_baseGt'),\n identity = require('./identity');\n\n/**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\nfunction max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n}\n\nmodule.exports = max;\n","var 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 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 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","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","var 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 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","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nfunction EventEmitter() {\n this._events = this._events || {};\n this._maxListeners = this._maxListeners || undefined;\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function(n) {\n if (!isNumber(n) || n < 0 || isNaN(n))\n throw TypeError('n must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nEventEmitter.prototype.emit = function(type) {\n var er, handler, len, args, i, listeners;\n\n if (!this._events)\n this._events = {};\n\n // If there is no 'error' event listener then throw.\n if (type === 'error') {\n if (!this._events.error ||\n (isObject(this._events.error) && !this._events.error.length)) {\n er = arguments[1];\n if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n }\n }\n\n handler = this._events[type];\n\n if (isUndefined(handler))\n return false;\n\n if (isFunction(handler)) {\n switch (arguments.length) {\n // fast cases\n case 1:\n handler.call(this);\n break;\n case 2:\n handler.call(this, arguments[1]);\n break;\n case 3:\n handler.call(this, arguments[1], arguments[2]);\n break;\n // slower\n default:\n args = Array.prototype.slice.call(arguments, 1);\n handler.apply(this, args);\n }\n } else if (isObject(handler)) {\n args = Array.prototype.slice.call(arguments, 1);\n listeners = handler.slice();\n len = listeners.length;\n for (i = 0; i < len; i++)\n listeners[i].apply(this, args);\n }\n\n return true;\n};\n\nEventEmitter.prototype.addListener = function(type, listener) {\n var m;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events)\n this._events = {};\n\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (this._events.newListener)\n this.emit('newListener', type,\n isFunction(listener.listener) ?\n listener.listener : listener);\n\n if (!this._events[type])\n // Optimize the case of one listener. Don't need the extra array object.\n this._events[type] = listener;\n else if (isObject(this._events[type]))\n // If we've already got an array, just append.\n this._events[type].push(listener);\n else\n // Adding the second element, need to change to array.\n this._events[type] = [this._events[type], listener];\n\n // Check for listener leak\n if (isObject(this._events[type]) && !this._events[type].warned) {\n if (!isUndefined(this._maxListeners)) {\n m = this._maxListeners;\n } else {\n m = EventEmitter.defaultMaxListeners;\n }\n\n if (m && m > 0 && this._events[type].length > m) {\n this._events[type].warned = true;\n console.error('(node) warning: possible EventEmitter memory ' +\n 'leak detected. %d listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit.',\n this._events[type].length);\n if (typeof console.trace === 'function') {\n // not supported in IE 10\n console.trace();\n }\n }\n }\n\n return this;\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.once = function(type, listener) {\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n var fired = false;\n\n function g() {\n this.removeListener(type, g);\n\n if (!fired) {\n fired = true;\n listener.apply(this, arguments);\n }\n }\n\n g.listener = listener;\n this.on(type, g);\n\n return this;\n};\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener = function(type, listener) {\n var list, position, length, i;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events || !this._events[type])\n return this;\n\n list = this._events[type];\n length = list.length;\n position = -1;\n\n if (list === listener ||\n (isFunction(list.listener) && list.listener === listener)) {\n delete this._events[type];\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n\n } else if (isObject(list)) {\n for (i = length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list.length = 0;\n delete this._events[type];\n } else {\n list.splice(position, 1);\n }\n\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.removeAllListeners = function(type) {\n var key, listeners;\n\n if (!this._events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!this._events.removeListener) {\n if (arguments.length === 0)\n this._events = {};\n else if (this._events[type])\n delete this._events[type];\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n for (key in this._events) {\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = {};\n return this;\n }\n\n listeners = this._events[type];\n\n if (isFunction(listeners)) {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n while (listeners.length)\n this.removeListener(type, listeners[listeners.length - 1]);\n }\n delete this._events[type];\n\n return this;\n};\n\nEventEmitter.prototype.listeners = function(type) {\n var ret;\n if (!this._events || !this._events[type])\n ret = [];\n else if (isFunction(this._events[type]))\n ret = [this._events[type]];\n else\n ret = this._events[type].slice();\n return ret;\n};\n\nEventEmitter.prototype.listenerCount = function(type) {\n if (this._events) {\n var evlistener = this._events[type];\n\n if (isFunction(evlistener))\n return 1;\n else if (evlistener)\n return evlistener.length;\n }\n return 0;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n return emitter.listenerCount(type);\n};\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n","var baseIteratee = require('./_baseIteratee'),\n baseSum = require('./_baseSum');\n\n/**\n * This method is like `_.sum` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the value to be summed.\n * 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 {number} Returns the sum.\n * @example\n *\n * var objects = [{ 'n': 4 }, { 'n': 2 }, { 'n': 8 }, { 'n': 6 }];\n *\n * _.sumBy(objects, function(o) { return o.n; });\n * // => 20\n *\n * // The `_.property` iteratee shorthand.\n * _.sumBy(objects, 'n');\n * // => 20\n */\nfunction sumBy(array, iteratee) {\n return (array && array.length)\n ? baseSum(array, baseIteratee(iteratee, 2))\n : 0;\n}\n\nmodule.exports = sumBy;\n","require('../modules/es6.math.acosh');\nrequire('../modules/es6.math.asinh');\nrequire('../modules/es6.math.atanh');\nrequire('../modules/es6.math.cbrt');\nrequire('../modules/es6.math.clz32');\nrequire('../modules/es6.math.cosh');\nrequire('../modules/es6.math.expm1');\nrequire('../modules/es6.math.fround');\nrequire('../modules/es6.math.hypot');\nrequire('../modules/es6.math.imul');\nrequire('../modules/es6.math.log10');\nrequire('../modules/es6.math.log1p');\nrequire('../modules/es6.math.log2');\nrequire('../modules/es6.math.sign');\nrequire('../modules/es6.math.sinh');\nrequire('../modules/es6.math.tanh');\nrequire('../modules/es6.math.trunc');\nmodule.exports = require('../modules/_core').Math;\n","// 20.2.2.3 Math.acosh(x)\nvar $export = require('./_export');\nvar log1p = require('./_math-log1p');\nvar sqrt = Math.sqrt;\nvar $acosh = Math.acosh;\n\n$export($export.S + $export.F * !($acosh\n // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n && Math.floor($acosh(Number.MAX_VALUE)) == 710\n // Tor Browser bug: Math.acosh(Infinity) -> NaN\n && $acosh(Infinity) == Infinity\n), 'Math', {\n acosh: function acosh(x) {\n return (x = +x) < 1 ? NaN : x > 94906265.62425156\n ? Math.log(x) + Math.LN2\n : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n }\n});\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","// 20.2.2.5 Math.asinh(x)\nvar $export = require('./_export');\nvar $asinh = Math.asinh;\n\nfunction asinh(x) {\n return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));\n}\n\n// Tor Browser bug: Math.asinh(0) -> -0\n$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh });\n","// 20.2.2.7 Math.atanh(x)\nvar $export = require('./_export');\nvar $atanh = Math.atanh;\n\n// Tor Browser bug: Math.atanh(-0) -> 0\n$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {\n atanh: function atanh(x) {\n return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;\n }\n});\n","// 20.2.2.9 Math.cbrt(x)\nvar $export = require('./_export');\nvar sign = require('./_math-sign');\n\n$export($export.S, 'Math', {\n cbrt: function cbrt(x) {\n return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);\n }\n});\n","// 20.2.2.11 Math.clz32(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n clz32: function clz32(x) {\n return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;\n }\n});\n","// 20.2.2.12 Math.cosh(x)\nvar $export = require('./_export');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n cosh: function cosh(x) {\n return (exp(x = +x) + exp(-x)) / 2;\n }\n});\n","// 20.2.2.14 Math.expm1(x)\nvar $export = require('./_export');\nvar $expm1 = require('./_math-expm1');\n\n$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 });\n","// 20.2.2.16 Math.fround(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { fround: require('./_math-fround') });\n","// 20.2.2.16 Math.fround(x)\nvar sign = require('./_math-sign');\nvar pow = Math.pow;\nvar EPSILON = pow(2, -52);\nvar EPSILON32 = pow(2, -23);\nvar MAX32 = pow(2, 127) * (2 - EPSILON32);\nvar MIN32 = pow(2, -126);\n\nvar roundTiesToEven = function (n) {\n return n + 1 / EPSILON - 1 / EPSILON;\n};\n\nmodule.exports = Math.fround || function fround(x) {\n var $abs = Math.abs(x);\n var $sign = sign(x);\n var a, result;\n if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n a = (1 + EPSILON32 / EPSILON) * $abs;\n result = a - (a - $abs);\n // eslint-disable-next-line no-self-compare\n if (result > MAX32 || result != result) return $sign * Infinity;\n return $sign * result;\n};\n","// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])\nvar $export = require('./_export');\nvar abs = Math.abs;\n\n$export($export.S, 'Math', {\n hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * Math.sqrt(sum);\n }\n});\n","// 20.2.2.18 Math.imul(x, y)\nvar $export = require('./_export');\nvar $imul = Math.imul;\n\n// some WebKit versions fails with big numbers, some has wrong arity\n$export($export.S + $export.F * require('./_fails')(function () {\n return $imul(0xffffffff, 5) != -5 || $imul.length != 2;\n}), 'Math', {\n imul: function imul(x, y) {\n var UINT16 = 0xffff;\n var xn = +x;\n var yn = +y;\n var xl = UINT16 & xn;\n var yl = UINT16 & yn;\n return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n }\n});\n","// 20.2.2.21 Math.log10(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log10: function log10(x) {\n return Math.log(x) * Math.LOG10E;\n }\n});\n","// 20.2.2.20 Math.log1p(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { log1p: require('./_math-log1p') });\n","// 20.2.2.22 Math.log2(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log2: function log2(x) {\n return Math.log(x) / Math.LN2;\n }\n});\n","// 20.2.2.28 Math.sign(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { sign: require('./_math-sign') });\n","// 20.2.2.30 Math.sinh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n// V8 near Chromium 38 has a problem with very small numbers\n$export($export.S + $export.F * require('./_fails')(function () {\n return !Math.sinh(-2e-17) != -2e-17;\n}), 'Math', {\n sinh: function sinh(x) {\n return Math.abs(x = +x) < 1\n ? (expm1(x) - expm1(-x)) / 2\n : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);\n }\n});\n","// 20.2.2.33 Math.tanh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n tanh: function tanh(x) {\n var a = expm1(x = +x);\n var b = expm1(-x);\n return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n }\n});\n","// 20.2.2.34 Math.trunc(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n trunc: function trunc(it) {\n return (it > 0 ? Math.floor : Math.ceil)(it);\n }\n});\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 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","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","/**\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 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 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 // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\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","/**\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 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 // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\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 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","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * 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","/**\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","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexports.default = createAnimateManager;\n\nvar _setRafTimeout = require('./setRafTimeout');\n\nvar _setRafTimeout2 = _interopRequireDefault(_setRafTimeout);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }\n\nfunction createAnimateManager() {\n var currStyle = {};\n var handleChange = function handleChange() {\n return null;\n };\n var shouldStop = false;\n\n var setStyle = function setStyle(_style) {\n if (shouldStop) {\n return;\n }\n\n if (Array.isArray(_style)) {\n if (!_style.length) {\n return;\n }\n\n var styles = _style;\n\n var _styles = _toArray(styles),\n curr = _styles[0],\n restStyles = _styles.slice(1);\n\n if (typeof curr === 'number') {\n (0, _setRafTimeout2.default)(setStyle.bind(null, restStyles), curr);\n\n return;\n }\n\n setStyle(curr);\n (0, _setRafTimeout2.default)(setStyle.bind(null, restStyles));\n return;\n }\n\n if ((typeof _style === 'undefined' ? 'undefined' : _typeof(_style)) === 'object') {\n currStyle = _style;\n handleChange(currStyle);\n }\n\n if (typeof _style === 'function') {\n _style();\n }\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\n return function () {\n handleChange = function handleChange() {\n return null;\n };\n };\n }\n };\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = setRafTimeout;\n\nvar _raf = require('raf');\n\nvar _raf2 = _interopRequireDefault(_raf);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction setRafTimeout(callback) {\n var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n var currTime = -1;\n\n var shouldUpdate = function shouldUpdate(now) {\n if (currTime < 0) {\n currTime = now;\n }\n\n if (now - currTime > timeout) {\n callback(now);\n currTime = -1;\n } else {\n (0, _raf2.default)(shouldUpdate);\n }\n };\n\n (0, _raf2.default)(shouldUpdate);\n}","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.shallowEqual = undefined;\n\nvar _isPlainObject2 = require('lodash/isPlainObject');\n\nvar _isPlainObject3 = _interopRequireDefault(_isPlainObject2);\n\nvar _isEqual2 = require('lodash/isEqual');\n\nvar _isEqual3 = _interopRequireDefault(_isEqual2);\n\nvar _isArray2 = require('lodash/isArray');\n\nvar _isArray3 = _interopRequireDefault(_isArray2);\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if ((typeof objA === 'undefined' ? 'undefined' : _typeof(objA)) !== 'object' || objA === null || (typeof objB === 'undefined' ? 'undefined' : _typeof(objB)) !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = hasOwnProperty.bind(objB);\n for (var i = 0; i < keysA.length; i++) {\n var keyA = keysA[i];\n\n if (objA[keyA] === objB[keyA]) {\n continue;\n }\n\n // special diff with Array or Object\n if ((0, _isArray3.default)(objA[keyA])) {\n if (!(0, _isArray3.default)(objB[keyA]) || objA[keyA].length !== objB[keyA].length) {\n return false;\n } else if (!(0, _isEqual3.default)(objA[keyA], objB[keyA])) {\n return false;\n }\n } else if ((0, _isPlainObject3.default)(objA[keyA])) {\n if (!(0, _isPlainObject3.default)(objB[keyA]) || !(0, _isEqual3.default)(objA[keyA], objB[keyA])) {\n return false;\n }\n } else if (!bHasOwnProperty(keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction shallowCompare(instance, nextProps, nextState) {\n return !shallowEqual(instance.props, nextProps) || !shallowEqual(instance.state, nextState);\n}\n\nfunction shouldComponentUpdate(nextProps, nextState) {\n return shallowCompare(this, nextProps, nextState);\n}\n/* eslint-disable no-param-reassign */\nfunction pureRenderDecorator(component) {\n component.prototype.shouldComponentUpdate = shouldComponentUpdate;\n}\nexports.shallowEqual = shallowEqual;\nexports.default = pureRenderDecorator;","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var arrayMap = require('./_arrayMap'),\n baseIntersection = require('./_baseIntersection'),\n baseRest = require('./_baseRest'),\n castArrayLikeObject = require('./_castArrayLikeObject');\n\n/**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\nvar intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n});\n\nmodule.exports = intersection;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays 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 array of shared values.\n */\nfunction baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseIntersection;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","var 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 * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\nfunction castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n}\n\nmodule.exports = castArrayLikeObject;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an 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 an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\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","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _filter2 = require('lodash/filter');\n\nvar _filter3 = _interopRequireDefault(_filter2);\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { 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\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _raf = require('raf');\n\nvar _raf2 = _interopRequireDefault(_raf);\n\nvar _util = require('./util');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar 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 = (0, _util.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\n return _extends({}, val, {\n from: newX,\n velocity: newV\n });\n }\n\n return val;\n }, preVals);\n\n if (steps < 1) {\n return (0, _util.mapObject)(function (key, val) {\n if (needContinue(val)) {\n return _extends({}, val, {\n velocity: alpha(val.velocity, nextStepVals[key].velocity, steps),\n from: alpha(val.from, nextStepVals[key].from, steps)\n });\n }\n\n return val;\n }, preVals);\n }\n\n return calStepperVals(easing, nextStepVals, steps - 1);\n};\n\n// configure update function\n\nexports.default = function (from, to, easing, duration, render) {\n var interKeys = (0, _util.getIntersectionKeys)(from, to);\n var timingStyle = interKeys.reduce(function (res, key) {\n return _extends({}, res, _defineProperty({}, key, [from[key], to[key]]));\n }, {});\n\n var stepperStyle = interKeys.reduce(function (res, key) {\n return _extends({}, res, _defineProperty({}, key, {\n from: from[key],\n velocity: 0,\n to: to[key]\n }));\n }, {});\n var cafId = -1;\n var preTime = void 0;\n var beginTime = void 0;\n var update = function update() {\n return null;\n };\n\n var getCurrStyle = function getCurrStyle() {\n return (0, _util.mapObject)(function (key, val) {\n return val.from;\n }, stepperStyle);\n };\n var shouldStopAnimation = function shouldStopAnimation() {\n return !(0, _filter3.default)(stepperStyle, 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\n stepperStyle = calStepperVals(easing, stepperStyle, steps);\n // get union set and add compatible prefix\n render(_extends({}, from, to, getCurrStyle(stepperStyle)));\n\n preTime = now;\n\n if (!shouldStopAnimation()) {\n cafId = (0, _raf2.default)(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\n var t = (now - beginTime) / duration;\n var currStyle = (0, _util.mapObject)(function (key, val) {\n return alpha.apply(undefined, _toConsumableArray(val).concat([easing(t)]));\n }, timingStyle);\n\n // get union set and add compatible prefix\n render(_extends({}, from, to, currStyle));\n\n if (t < 1) {\n cafId = (0, _raf2.default)(update);\n } else {\n var finalStyle = (0, _util.mapObject)(function (key, val) {\n return alpha.apply(undefined, _toConsumableArray(val).concat([easing(1)]));\n }, timingStyle);\n\n render(_extends({}, from, to, finalStyle));\n }\n };\n\n update = easing.isStepper ? stepperUpdate : timingUpdate;\n\n // return start animation method\n return function () {\n (0, _raf2.default)(update);\n\n // return stop animation method\n return function () {\n (0, _raf.cancel)(cafId);\n };\n };\n};","var arrayFilter = require('./_arrayFilter'),\n baseFilter = require('./_baseFilter'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray');\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\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 * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = filter;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.filter` 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 {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nmodule.exports = baseFilter;\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","/**\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 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 baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var 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 isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var 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 * 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","/**\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 * 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","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _class, _temp;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _TransitionGroup = require('react-transition-group/TransitionGroup');\n\nvar _TransitionGroup2 = _interopRequireDefault(_TransitionGroup);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _AnimateGroupChild = require('./AnimateGroupChild');\n\nvar _AnimateGroupChild2 = _interopRequireDefault(_AnimateGroupChild);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar AnimateGroup = (_temp = _class = function (_Component) {\n _inherits(AnimateGroup, _Component);\n\n function AnimateGroup() {\n _classCallCheck(this, AnimateGroup);\n\n return _possibleConstructorReturn(this, (AnimateGroup.__proto__ || Object.getPrototypeOf(AnimateGroup)).apply(this, arguments));\n }\n\n _createClass(AnimateGroup, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n component = _props.component,\n children = _props.children,\n appear = _props.appear,\n enter = _props.enter,\n leave = _props.leave;\n\n\n return _react2.default.createElement(\n _TransitionGroup2.default,\n { component: component },\n _react.Children.map(children, function (child, index) {\n return _react2.default.createElement(\n _AnimateGroupChild2.default,\n {\n appearOptions: appear,\n enterOptions: enter,\n leaveOptions: leave,\n key: 'child-' + index\n },\n child\n );\n })\n );\n }\n }]);\n\n return AnimateGroup;\n}(_react.Component), _class.propTypes = {\n appear: _propTypes2.default.object,\n enter: _propTypes2.default.object,\n leave: _propTypes2.default.object,\n\n children: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.element]),\n component: _propTypes2.default.any\n}, _class.defaultProps = {\n component: 'span'\n}, _temp);\nexports.default = AnimateGroup;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _ChildMapping = require(\"./utils/ChildMapping\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `<TransitionGroup>` renders a `<div>` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `<div>` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: _propTypes.default.any,\n\n /**\n * A set of `<Transition>` components, that are toggled `in` and out as they\n * leave. the `<TransitionGroup>` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `<Transition>` as\n * with our `<Fade>` example.\n */\n children: _propTypes.default.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: _propTypes.default.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: _propTypes.default.func\n} : {};;\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n /**\n * The `<TransitionGroup>` component manages a set of transition components\n * (`<Transition>` and `<CSSTransition>`) in a list. Like with the transition\n * components, `<TransitionGroup>` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the `<TransitionGroup>`.\n *\n * Note that `<TransitionGroup>` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\n};\n\nvar TransitionGroup =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: {\n isMounting: !this.appeared\n }\n };\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n };\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return children;\n }\n\n return _react.default.createElement(Component, props, children);\n };\n\n return TransitionGroup;\n}(_react.default.Component);\n\nTransitionGroup.childContextTypes = {\n transitionGroup: _propTypes.default.object.isRequired\n};\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? propTypes : {};\nTransitionGroup.defaultProps = defaultProps;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.getChildMapping = getChildMapping;\nexports.mergeChildMappings = mergeChildMappings;\nexports.getInitialChildMapping = getInitialChildMapping;\nexports.getNextChildMapping = getNextChildMapping;\n\nvar _react = require(\"react\");\n\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\nfunction getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) _react.Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\n\nfunction mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nfunction getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\n\nfunction getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!(0, _react.isValidElement)(child)) return;\n var hasPrev = key in prevChildMapping;\n var hasNext = key in nextChildMapping;\n var prevChild = prevChildMapping[key];\n var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = (0, _react.cloneElement)(child, {\n in: false\n });\n } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _isNumber2 = require('lodash/isNumber');\n\nvar _isNumber3 = _interopRequireDefault(_isNumber2);\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _class, _temp2;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _Transition = require('react-transition-group/Transition');\n\nvar _Transition2 = _interopRequireDefault(_Transition);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _Animate = require('./Animate');\n\nvar _Animate2 = _interopRequireDefault(_Animate);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar parseDurationOfSingleTransition = function parseDurationOfSingleTransition() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var steps = options.steps,\n duration = options.duration;\n\n\n if (steps && steps.length) {\n return steps.reduce(function (result, entry) {\n return result + ((0, _isNumber3.default)(entry.duration) && entry.duration > 0 ? entry.duration : 0);\n }, 0);\n }\n\n if ((0, _isNumber3.default)(duration)) {\n return duration;\n }\n\n return 0;\n};\n\nvar AnimateGroupChild = (_temp2 = _class = function (_Component) {\n _inherits(AnimateGroupChild, _Component);\n\n function AnimateGroupChild() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, AnimateGroupChild);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = AnimateGroupChild.__proto__ || Object.getPrototypeOf(AnimateGroupChild)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n isActive: false\n }, _this.handleEnter = function (node, isAppearing) {\n var _this$props = _this.props,\n appearOptions = _this$props.appearOptions,\n enterOptions = _this$props.enterOptions;\n\n\n _this.handleStyleActive(isAppearing ? appearOptions : enterOptions);\n }, _this.handleExit = function () {\n _this.handleStyleActive(_this.props.leaveOptions);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\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\n this.setState(_extends({}, style, {\n onAnimationEnd: onAnimationEnd,\n isActive: true\n }));\n }\n }\n }, {\n key: 'parseTimeout',\n value: function parseTimeout() {\n var _props = this.props,\n appearOptions = _props.appearOptions,\n enterOptions = _props.enterOptions,\n leaveOptions = _props.leaveOptions;\n\n\n return parseDurationOfSingleTransition(appearOptions) + parseDurationOfSingleTransition(enterOptions) + parseDurationOfSingleTransition(leaveOptions);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props2 = this.props,\n children = _props2.children,\n appearOptions = _props2.appearOptions,\n enterOptions = _props2.enterOptions,\n leaveOptions = _props2.leaveOptions,\n props = _objectWithoutProperties(_props2, ['children', 'appearOptions', 'enterOptions', 'leaveOptions']);\n\n return _react2.default.createElement(\n _Transition2.default,\n _extends({}, props, {\n onEnter: this.handleEnter,\n onExit: this.handleExit,\n timeout: this.parseTimeout()\n }),\n function (transitionState) {\n return _react2.default.createElement(\n _Animate2.default,\n _this2.state,\n _react.Children.only(children)\n );\n }\n );\n }\n }]);\n\n return AnimateGroupChild;\n}(_react.Component), _class.propTypes = {\n appearOptions: _propTypes2.default.object,\n enterOptions: _propTypes2.default.object,\n leaveOptions: _propTypes2.default.object,\n children: _propTypes2.default.element\n}, _temp2);\nexports.default = AnimateGroupChild;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the components.\n * It's up to you to give meaning and effect to those states. For example we can\n * add styles to a component when it enters or exits:\n *\n * ```jsx\n * import Transition from 'react-transition-group/Transition';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 0 },\n * entered: { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * <Transition in={inProp} timeout={duration}>\n * {(state) => (\n * <div style={{\n * ...defaultStyle,\n * ...transitionStyles[state]\n * }}>\n * I'm a fade Transition!\n * </div>\n * )}\n * </Transition>\n * );\n * ```\n *\n * As noted the `Transition` component doesn't _do_ anything by itself to its child component.\n * What it does do is track transition states over time so you can update the\n * component (such as by adding styles or classes) when it changes states.\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component begins the\n * \"Enter\" stage. During this stage, the component will shift from its current transition state,\n * to `'entering'` for the duration of the transition and then to the `'entered'` stage once\n * it's complete. Let's take the following example:\n *\n * ```jsx\n * state = { in: false };\n *\n * toggleEnterState = () => {\n * this.setState({ in: true });\n * }\n *\n * render() {\n * return (\n * <div>\n * <Transition in={this.state.in} timeout={500} />\n * <button onClick={this.toggleEnterState}>Click to Enter</button>\n * </div>\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state and\n * stay there for 500ms (the value of `timeout`) before it finally switches to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from `'exiting'` to `'exited'`.\n *\n * ## Timing\n *\n * Timing is often the trickiest part of animation, mistakes can result in slight delays\n * that are hard to pin down. A common example is when you want to add an exit transition,\n * you should set the desired final styles when the state is `'exiting'`. That's when the\n * transition to those styles will start and, if you matched the `timeout` prop with the\n * CSS Transition duration, it will end exactly when the state changes to `'exited'`.\n *\n * > **Note**: For simpler transitions the `Transition` component might be enough, but\n * > take into account that it's platform-agnostic, while the `CSSTransition` component\n * > [forces reflows](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * > in order to make more complex transitions more predictable. For example, even though\n * > classes `example-enter` and `example-enter-active` are applied immediately one after\n * > another, you can still transition from one to the other because of the forced reflow\n * > (read [this issue](https://github.com/reactjs/react-transition-group/issues/159#issuecomment-322761171)\n * > for more info). Take this into account when choosing between `Transition` and\n * > `CSSTransition`.\n */\n\nexports.EXITING = EXITING;\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n var _proto = Transition.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: null // allows for nested Transitions\n\n };\n };\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter;\n appear = timeout.appear;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n var node = _reactDom.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\n var timeouts = this.getTimeouts(); // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing); // FIXME: appear timeout?\n\n\n _this2.onTransitionEnd(node, timeouts.enter, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n\n if (node) {\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n } else {\n setTimeout(this.nextCallback, 0);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n\n var child = _react.default.Children.only(children);\n\n return _react.default.cloneElement(child, childProps);\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A `function` child can be used instead of a React element.\n * This function is called with the current transition status\n * ('entering', 'entered', 'exiting', 'exited', 'unmounted'), which can be used\n * to apply context specific props to a component.\n *\n * ```jsx\n * <Transition timeout={150}>\n * {(status) => (\n * <MyComponent className={`fade fade-${status}`} />\n * )}\n * </Transition>\n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the `<Transition>` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `<Transition>` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided\n *\n * You may specify a single timeout for all transitions like: `timeout={500}`,\n * or individually like:\n *\n * ```jsx\n * timeout={{\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * @type {number | { enter?: number, exit?: number }}\n */\n timeout: function timeout(props) {\n var pt = process.env.NODE_ENV !== \"production\" ? _PropTypes.timeoutsShape : {};;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports.default = _default;","module.exports = __WEBPACK_EXTERNAL_MODULE__161__;","\"use strict\";\n\nexports.__esModule = true;\nexports.transitionTimeout = transitionTimeout;\nexports.classNamesShape = exports.timeoutsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction transitionTimeout(transitionType) {\n var timeoutPropName = 'transition' + transitionType + 'Timeout';\n var enabledPropName = 'transition' + transitionType;\n return function (props) {\n // If the transition is enabled\n if (props[enabledPropName]) {\n // If no timeout duration is provided\n if (props[timeoutPropName] == null) {\n return new Error(timeoutPropName + ' wasn\\'t supplied to CSSTransitionGroup: ' + 'this can cause unreliable animations and won\\'t be supported in ' + 'a future version of React. See ' + 'https://fb.me/react-animation-transition-group-timeout for more ' + 'information.'); // If the duration isn't a number\n } else if (typeof props[timeoutPropName] !== 'number') {\n return new Error(timeoutPropName + ' must be a number (in milliseconds)');\n }\n }\n\n return null;\n };\n}\n\nvar timeoutsShape = _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n enter: _propTypes.default.number,\n exit: _propTypes.default.number\n}).isRequired]);\n\nexports.timeoutsShape = timeoutsShape;\n\nvar classNamesShape = _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({\n enter: _propTypes.default.string,\n exit: _propTypes.default.string,\n active: _propTypes.default.string\n}), _propTypes.default.shape({\n enter: _propTypes.default.string,\n enterDone: _propTypes.default.string,\n enterActive: _propTypes.default.string,\n exit: _propTypes.default.string,\n exitDone: _propTypes.default.string,\n exitActive: _propTypes.default.string\n})]);\n\nexports.classNamesShape = classNamesShape;","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","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\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","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _resizeObserverPolyfill = require('resize-observer-polyfill');\n\nvar _resizeObserverPolyfill2 = _interopRequireDefault(_resizeObserverPolyfill);\n\nvar _lodash = require('lodash.debounce');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _lodash3 = require('lodash.throttle');\n\nvar _lodash4 = _interopRequireDefault(_lodash3);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar listMode = { debounce: _lodash2.default, throttle: _lodash4.default };\n\nvar styles = {\n position: 'absolute',\n width: 0,\n height: 0,\n visibility: 'hidden',\n display: 'none'\n};\n\nvar ResizeDetector = function (_PureComponent) {\n _inherits(ResizeDetector, _PureComponent);\n\n function ResizeDetector(props) {\n _classCallCheck(this, ResizeDetector);\n\n var _this = _possibleConstructorReturn(this, (ResizeDetector.__proto__ || Object.getPrototypeOf(ResizeDetector)).call(this, props));\n\n _this.createResizeObserver = function (entries) {\n var _this$props = _this.props,\n handleWidth = _this$props.handleWidth,\n handleHeight = _this$props.handleHeight,\n onResize = _this$props.onResize;\n\n entries.forEach(function (entry) {\n var _entry$contentRect = entry.contentRect,\n width = _entry$contentRect.width,\n height = _entry$contentRect.height;\n\n var notifyWidth = handleWidth && _this.width !== width;\n var notifyHeight = handleHeight && _this.height !== height;\n if (!_this.skipOnMount && (notifyWidth || notifyHeight)) {\n onResize(width, height);\n }\n _this.width = width;\n _this.height = height;\n _this.skipOnMount = false;\n });\n };\n\n var skipOnMount = props.skipOnMount,\n refreshMode = props.refreshMode,\n refreshRate = props.refreshRate;\n\n\n _this.width = undefined;\n _this.height = undefined;\n _this.skipOnMount = skipOnMount;\n\n var resizeObserver = listMode[refreshMode] && listMode[refreshMode](_this.createResizeObserver, refreshRate) || _this.createResizeObserver;\n\n _this.ro = new _resizeObserverPolyfill2.default(resizeObserver);\n return _this;\n }\n\n _createClass(ResizeDetector, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var resizableElementId = this.props.resizableElementId;\n\n var resizableElement = resizableElementId ? document.getElementById(resizableElementId) : this.el.parentElement;\n this.ro.observe(resizableElement);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n var resizableElementId = this.props.resizableElementId;\n\n var resizableElement = resizableElementId ? document.getElementById(resizableElementId) : this.el.parentElement;\n this.ro.unobserve(resizableElement);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n return _react2.default.createElement('div', {\n style: styles,\n ref: function ref(el) {\n _this2.el = el;\n }\n });\n }\n }]);\n\n return ResizeDetector;\n}(_react.PureComponent);\n\nexports.default = ResizeDetector;\n\n\nResizeDetector.propTypes = {\n handleWidth: _propTypes2.default.bool,\n handleHeight: _propTypes2.default.bool,\n skipOnMount: _propTypes2.default.bool,\n refreshRate: _propTypes2.default.number,\n refreshMode: _propTypes2.default.string,\n resizableElementId: _propTypes2.default.string,\n onResize: _propTypes2.default.func\n};\n\nResizeDetector.defaultProps = {\n handleWidth: false,\n handleHeight: false,\n skipOnMount: false,\n refreshRate: 1000,\n refreshMode: undefined,\n resizableElementId: '',\n onResize: function onResize(e) {\n return e;\n }\n};","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\n/* eslint-disable require-jsdoc, valid-jsdoc */\nvar MapShim = (function () {\n if (typeof Map !== 'undefined') {\n return Map;\n }\n\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array<Array>} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\n function getIndex(arr, key) {\n var result = -1;\n\n arr.some(function (entry, index) {\n if (entry[0] === key) {\n result = index;\n\n return true;\n }\n\n return false;\n });\n\n return result;\n }\n\n return (function () {\n function anonymous() {\n this.__entries__ = [];\n }\n\n var prototypeAccessors = { size: { configurable: true } };\n\n /**\r\n * @returns {boolean}\r\n */\n prototypeAccessors.size.get = function () {\n return this.__entries__.length;\n };\n\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\n anonymous.prototype.get = function (key) {\n var index = getIndex(this.__entries__, key);\n var entry = this.__entries__[index];\n\n return entry && entry[1];\n };\n\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\n anonymous.prototype.set = function (key, value) {\n var index = getIndex(this.__entries__, key);\n\n if (~index) {\n this.__entries__[index][1] = value;\n } else {\n this.__entries__.push([key, value]);\n }\n };\n\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\n anonymous.prototype.delete = function (key) {\n var entries = this.__entries__;\n var index = getIndex(entries, key);\n\n if (~index) {\n entries.splice(index, 1);\n }\n };\n\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\n anonymous.prototype.has = function (key) {\n return !!~getIndex(this.__entries__, key);\n };\n\n /**\r\n * @returns {void}\r\n */\n anonymous.prototype.clear = function () {\n this.__entries__.splice(0);\n };\n\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\n anonymous.prototype.forEach = function (callback, ctx) {\n var this$1 = this;\n if ( ctx === void 0 ) ctx = null;\n\n for (var i = 0, list = this$1.__entries__; i < list.length; i += 1) {\n var entry = list[i];\n\n callback.call(ctx, entry[1], entry[0]);\n }\n };\n\n Object.defineProperties( anonymous.prototype, prototypeAccessors );\n\n return anonymous;\n }());\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\nvar global$1 = (function () {\n if (typeof global !== 'undefined' && global.Math === Math) {\n return global;\n }\n\n if (typeof self !== 'undefined' && self.Math === Math) {\n return self;\n }\n\n if (typeof window !== 'undefined' && window.Math === Math) {\n return window;\n }\n\n // eslint-disable-next-line no-new-func\n return Function('return this')();\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\nvar requestAnimationFrame$1 = (function () {\n if (typeof requestAnimationFrame === 'function') {\n // It's required to use a bounded function because IE sometimes throws\n // an \"Invalid calling object\" error if rAF is invoked without the global\n // object on the left hand side.\n return requestAnimationFrame.bind(global$1);\n }\n\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\n})();\n\n// Defines minimum timeout before adding a trailing call.\nvar trailingTimeout = 2;\n\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\nvar throttle = function (callback, delay) {\n var leadingCall = false,\n trailingCall = false,\n lastCallTime = 0;\n\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\n function resolvePending() {\n if (leadingCall) {\n leadingCall = false;\n\n callback();\n }\n\n if (trailingCall) {\n proxy();\n }\n }\n\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\n function timeoutCallback() {\n requestAnimationFrame$1(resolvePending);\n }\n\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\n function proxy() {\n var timeStamp = Date.now();\n\n if (leadingCall) {\n // Reject immediately following calls.\n if (timeStamp - lastCallTime < trailingTimeout) {\n return;\n }\n\n // Schedule new call to be in invoked when the pending one is resolved.\n // This is important for \"transitions\" which never actually start\n // immediately so there is a chance that we might miss one if change\n // happens amids the pending invocation.\n trailingCall = true;\n } else {\n leadingCall = true;\n trailingCall = false;\n\n setTimeout(timeoutCallback, delay);\n }\n\n lastCallTime = timeStamp;\n }\n\n return proxy;\n};\n\n// Minimum delay before invoking the update of observers.\nvar REFRESH_DELAY = 20;\n\n// A list of substrings of CSS properties used to find transition events that\n// might affect dimensions of observed elements.\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\n\n// Check if MutationObserver is available.\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\n\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\nvar ResizeObserverController = function() {\n this.connected_ = false;\n this.mutationEventsAdded_ = false;\n this.mutationsObserver_ = null;\n this.observers_ = [];\n\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\n};\n\n/**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\n\n\n/**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\n\n\n/**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\n\n/**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\nResizeObserverController.prototype.addObserver = function (observer) {\n if (!~this.observers_.indexOf(observer)) {\n this.observers_.push(observer);\n }\n\n // Add listeners if they haven't been added yet.\n if (!this.connected_) {\n this.connect_();\n }\n};\n\n/**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\nResizeObserverController.prototype.removeObserver = function (observer) {\n var observers = this.observers_;\n var index = observers.indexOf(observer);\n\n // Remove observer if it's present in registry.\n if (~index) {\n observers.splice(index, 1);\n }\n\n // Remove listeners if controller has no connected observers.\n if (!observers.length && this.connected_) {\n this.disconnect_();\n }\n};\n\n/**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\nResizeObserverController.prototype.refresh = function () {\n var changesDetected = this.updateObservers_();\n\n // Continue running updates if changes have been detected as there might\n // be future ones caused by CSS transitions.\n if (changesDetected) {\n this.refresh();\n }\n};\n\n/**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\nResizeObserverController.prototype.updateObservers_ = function () {\n // Collect observers that have active observations.\n var activeObservers = this.observers_.filter(function (observer) {\n return observer.gatherActive(), observer.hasActive();\n });\n\n // Deliver notifications in a separate cycle in order to avoid any\n // collisions between observers, e.g. when multiple instances of\n // ResizeObserver are tracking the same element and the callback of one\n // of them changes content dimensions of the observed target. Sometimes\n // this may result in notifications being blocked for the rest of observers.\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\n\n return activeObservers.length > 0;\n};\n\n/**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\nResizeObserverController.prototype.connect_ = function () {\n // Do nothing if running in a non-browser environment or if listeners\n // have been already added.\n if (!isBrowser || this.connected_) {\n return;\n }\n\n // Subscription to the \"Transitionend\" event is used as a workaround for\n // delayed transitions. This way it's possible to capture at least the\n // final state of an element.\n document.addEventListener('transitionend', this.onTransitionEnd_);\n\n window.addEventListener('resize', this.refresh);\n\n if (mutationObserverSupported) {\n this.mutationsObserver_ = new MutationObserver(this.refresh);\n\n this.mutationsObserver_.observe(document, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n } else {\n document.addEventListener('DOMSubtreeModified', this.refresh);\n\n this.mutationEventsAdded_ = true;\n }\n\n this.connected_ = true;\n};\n\n/**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\nResizeObserverController.prototype.disconnect_ = function () {\n // Do nothing if running in a non-browser environment or if listeners\n // have been already removed.\n if (!isBrowser || !this.connected_) {\n return;\n }\n\n document.removeEventListener('transitionend', this.onTransitionEnd_);\n window.removeEventListener('resize', this.refresh);\n\n if (this.mutationsObserver_) {\n this.mutationsObserver_.disconnect();\n }\n\n if (this.mutationEventsAdded_) {\n document.removeEventListener('DOMSubtreeModified', this.refresh);\n }\n\n this.mutationsObserver_ = null;\n this.mutationEventsAdded_ = false;\n this.connected_ = false;\n};\n\n/**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\nResizeObserverController.prototype.onTransitionEnd_ = function (ref) {\n var propertyName = ref.propertyName; if ( propertyName === void 0 ) propertyName = '';\n\n // Detect whether transition may affect dimensions of an element.\n var isReflowProperty = transitionKeys.some(function (key) {\n return !!~propertyName.indexOf(key);\n });\n\n if (isReflowProperty) {\n this.refresh();\n }\n};\n\n/**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\nResizeObserverController.getInstance = function () {\n if (!this.instance_) {\n this.instance_ = new ResizeObserverController();\n }\n\n return this.instance_;\n};\n\nResizeObserverController.instance_ = null;\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\nvar defineConfigurable = (function (target, props) {\n for (var i = 0, list = Object.keys(props); i < list.length; i += 1) {\n var key = list[i];\n\n Object.defineProperty(target, key, {\n value: props[key],\n enumerable: false,\n writable: false,\n configurable: true\n });\n }\n\n return target;\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\nvar getWindowOf = (function (target) {\n // Assume that the element is an instance of Node, which means that it\n // has the \"ownerDocument\" property from which we can retrieve a\n // corresponding global object.\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\n\n // Return the local global object if it's not possible extract one from\n // provided element.\n return ownerGlobal || global$1;\n});\n\n// Placeholder of an empty content rectangle.\nvar emptyRect = createRectInit(0, 0, 0, 0);\n\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\nfunction toFloat(value) {\n return parseFloat(value) || 0;\n}\n\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\nfunction getBordersSize(styles) {\n var positions = [], len = arguments.length - 1;\n while ( len-- > 0 ) positions[ len ] = arguments[ len + 1 ];\n\n return positions.reduce(function (size, position) {\n var value = styles['border-' + position + '-width'];\n\n return size + toFloat(value);\n }, 0);\n}\n\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\nfunction getPaddings(styles) {\n var positions = ['top', 'right', 'bottom', 'left'];\n var paddings = {};\n\n for (var i = 0, list = positions; i < list.length; i += 1) {\n var position = list[i];\n\n var value = styles['padding-' + position];\n\n paddings[position] = toFloat(value);\n }\n\n return paddings;\n}\n\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\nfunction getSVGContentRect(target) {\n var bbox = target.getBBox();\n\n return createRectInit(0, 0, bbox.width, bbox.height);\n}\n\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\nfunction getHTMLElementContentRect(target) {\n // Client width & height properties can't be\n // used exclusively as they provide rounded values.\n var clientWidth = target.clientWidth;\n var clientHeight = target.clientHeight;\n\n // By this condition we can catch all non-replaced inline, hidden and\n // detached elements. Though elements with width & height properties less\n // than 0.5 will be discarded as well.\n //\n // Without it we would need to implement separate methods for each of\n // those cases and it's not possible to perform a precise and performance\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\n // gives wrong results for elements with width & height less than 0.5.\n if (!clientWidth && !clientHeight) {\n return emptyRect;\n }\n\n var styles = getWindowOf(target).getComputedStyle(target);\n var paddings = getPaddings(styles);\n var horizPad = paddings.left + paddings.right;\n var vertPad = paddings.top + paddings.bottom;\n\n // Computed styles of width & height are being used because they are the\n // only dimensions available to JS that contain non-rounded values. It could\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\n // affected by CSS transformations let alone paddings, borders and scroll bars.\n var width = toFloat(styles.width),\n height = toFloat(styles.height);\n\n // Width & height include paddings and borders when the 'border-box' box\n // model is applied (except for IE).\n if (styles.boxSizing === 'border-box') {\n // Following conditions are required to handle Internet Explorer which\n // doesn't include paddings and borders to computed CSS dimensions.\n //\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\n // properties then it's either IE, and thus we don't need to subtract\n // anything, or an element merely doesn't have paddings/borders styles.\n if (Math.round(width + horizPad) !== clientWidth) {\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\n }\n\n if (Math.round(height + vertPad) !== clientHeight) {\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\n }\n }\n\n // Following steps can't be applied to the document's root element as its\n // client[Width/Height] properties represent viewport area of the window.\n // Besides, it's as well not necessary as the <html> itself neither has\n // rendered scroll bars nor it can be clipped.\n if (!isDocumentElement(target)) {\n // In some browsers (only in Firefox, actually) CSS width & height\n // include scroll bars size which can be removed at this step as scroll\n // bars are the only difference between rounded dimensions + paddings\n // and \"client\" properties, though that is not always true in Chrome.\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\n\n // Chrome has a rather weird rounding of \"client\" properties.\n // E.g. for an element with content width of 314.2px it sometimes gives\n // the client width of 315px and for the width of 314.7px it may give\n // 314px. And it doesn't happen all the time. So just ignore this delta\n // as a non-relevant.\n if (Math.abs(vertScrollbar) !== 1) {\n width -= vertScrollbar;\n }\n\n if (Math.abs(horizScrollbar) !== 1) {\n height -= horizScrollbar;\n }\n }\n\n return createRectInit(paddings.left, paddings.top, width, height);\n}\n\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\nvar isSVGGraphicsElement = (function () {\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\n // interface.\n if (typeof SVGGraphicsElement !== 'undefined') {\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\n }\n\n // If it's so, then check that element is at least an instance of the\n // SVGElement and that it has the \"getBBox\" method.\n // eslint-disable-next-line no-extra-parens\n return function (target) { return target instanceof getWindowOf(target).SVGElement && typeof target.getBBox === 'function'; };\n})();\n\n/**\r\n * Checks whether provided element is a document element (<html>).\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\nfunction isDocumentElement(target) {\n return target === getWindowOf(target).document.documentElement;\n}\n\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\nfunction getContentRect(target) {\n if (!isBrowser) {\n return emptyRect;\n }\n\n if (isSVGGraphicsElement(target)) {\n return getSVGContentRect(target);\n }\n\n return getHTMLElementContentRect(target);\n}\n\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\nfunction createReadOnlyRect(ref) {\n var x = ref.x;\n var y = ref.y;\n var width = ref.width;\n var height = ref.height;\n\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\n var rect = Object.create(Constr.prototype);\n\n // Rectangle's properties are not writable and non-enumerable.\n defineConfigurable(rect, {\n x: x, y: y, width: width, height: height,\n top: y,\n right: x + width,\n bottom: height + y,\n left: x\n });\n\n return rect;\n}\n\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\nfunction createRectInit(x, y, width, height) {\n return { x: x, y: y, width: width, height: height };\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\nvar ResizeObservation = function(target) {\n this.broadcastWidth = 0;\n this.broadcastHeight = 0;\n this.contentRect_ = createRectInit(0, 0, 0, 0);\n\n this.target = target;\n};\n\n/**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\n\n\n/**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\n\n\n/**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\nResizeObservation.prototype.isActive = function () {\n var rect = getContentRect(this.target);\n\n this.contentRect_ = rect;\n\n return rect.width !== this.broadcastWidth || rect.height !== this.broadcastHeight;\n};\n\n/**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\nResizeObservation.prototype.broadcastRect = function () {\n var rect = this.contentRect_;\n\n this.broadcastWidth = rect.width;\n this.broadcastHeight = rect.height;\n\n return rect;\n};\n\nvar ResizeObserverEntry = function(target, rectInit) {\n var contentRect = createReadOnlyRect(rectInit);\n\n // According to the specification following properties are not writable\n // and are also not enumerable in the native implementation.\n //\n // Property accessors are not being used as they'd require to define a\n // private WeakMap storage which may cause memory leaks in browsers that\n // don't support this type of collections.\n defineConfigurable(this, { target: target, contentRect: contentRect });\n};\n\nvar ResizeObserverSPI = function(callback, controller, callbackCtx) {\n this.activeObservations_ = [];\n this.observations_ = new MapShim();\n\n if (typeof callback !== 'function') {\n throw new TypeError('The callback provided as parameter 1 is not a function.');\n }\n\n this.callback_ = callback;\n this.controller_ = controller;\n this.callbackCtx_ = callbackCtx;\n};\n\n/**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\n\n\n/**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map<Element, ResizeObservation>}\r\n */\n\n\n/**\r\n * Public ResizeObserver instance which will be passed to the callback\r\n * function and used as a value of it's \"this\" binding.\r\n *\r\n * @private {ResizeObserver}\r\n */\n\n/**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array<ResizeObservation>}\r\n */\nResizeObserverSPI.prototype.observe = function (target) {\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n }\n\n // Do nothing if current environment doesn't have the Element interface.\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\n return;\n }\n\n if (!(target instanceof getWindowOf(target).Element)) {\n throw new TypeError('parameter 1 is not of type \"Element\".');\n }\n\n var observations = this.observations_;\n\n // Do nothing if element is already being observed.\n if (observations.has(target)) {\n return;\n }\n\n observations.set(target, new ResizeObservation(target));\n\n this.controller_.addObserver(this);\n\n // Force the update of observations.\n this.controller_.refresh();\n};\n\n/**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\nResizeObserverSPI.prototype.unobserve = function (target) {\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n }\n\n // Do nothing if current environment doesn't have the Element interface.\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\n return;\n }\n\n if (!(target instanceof getWindowOf(target).Element)) {\n throw new TypeError('parameter 1 is not of type \"Element\".');\n }\n\n var observations = this.observations_;\n\n // Do nothing if element is not being observed.\n if (!observations.has(target)) {\n return;\n }\n\n observations.delete(target);\n\n if (!observations.size) {\n this.controller_.removeObserver(this);\n }\n};\n\n/**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\nResizeObserverSPI.prototype.disconnect = function () {\n this.clearActive();\n this.observations_.clear();\n this.controller_.removeObserver(this);\n};\n\n/**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\nResizeObserverSPI.prototype.gatherActive = function () {\n var this$1 = this;\n\n this.clearActive();\n\n this.observations_.forEach(function (observation) {\n if (observation.isActive()) {\n this$1.activeObservations_.push(observation);\n }\n });\n};\n\n/**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\nResizeObserverSPI.prototype.broadcastActive = function () {\n // Do nothing if observer doesn't have active observations.\n if (!this.hasActive()) {\n return;\n }\n\n var ctx = this.callbackCtx_;\n\n // Create ResizeObserverEntry instance for every active observation.\n var entries = this.activeObservations_.map(function (observation) {\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\n });\n\n this.callback_.call(ctx, entries, ctx);\n this.clearActive();\n};\n\n/**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\nResizeObserverSPI.prototype.clearActive = function () {\n this.activeObservations_.splice(0);\n};\n\n/**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\nResizeObserverSPI.prototype.hasActive = function () {\n return this.activeObservations_.length > 0;\n};\n\n// Registry of internal observers. If WeakMap is not available use current shim\n// for the Map collection as it has all required methods and because WeakMap\n// can't be fully polyfilled anyway.\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\n\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\nvar ResizeObserver = function(callback) {\n if (!(this instanceof ResizeObserver)) {\n throw new TypeError('Cannot call a class as a function.');\n }\n if (!arguments.length) {\n throw new TypeError('1 argument required, but only 0 present.');\n }\n\n var controller = ResizeObserverController.getInstance();\n var observer = new ResizeObserverSPI(callback, controller, this);\n\n observers.set(this, observer);\n};\n\n// Expose public methods of ResizeObserver.\n['observe', 'unobserve', 'disconnect'].forEach(function (method) {\n ResizeObserver.prototype[method] = function () {\n return (ref = observers.get(this))[method].apply(ref, arguments);\n var ref;\n };\n});\n\nvar index = (function () {\n // Export existing implementation if available.\n if (typeof global$1.ResizeObserver !== 'undefined') {\n return global$1.ResizeObserver;\n }\n\n return ResizeObserver;\n})();\n\nexport default index;\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\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/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\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\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 objectToString = objectProto.toString;\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 * 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\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 result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\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 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\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 && (type == 'object' || type == 'function');\n}\n\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 && typeof value == 'object';\n}\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) && objectToString.call(value) == symbolTag);\n}\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 = value.replace(reTrim, '');\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 = debounce;\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\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/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\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\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 objectToString = objectProto.toString;\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 * 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\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 result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\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 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\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\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 && (type == 'object' || type == 'function');\n}\n\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 && typeof value == 'object';\n}\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) && objectToString.call(value) == symbolTag);\n}\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 = value.replace(reTrim, '');\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 = throttle;\n","/*\n * Module dependencies\n */\nvar balanced = require(\"balanced-match\")\n\n/**\n * Expose `reduceFunctionCall`\n *\n * @type {Function}\n */\nmodule.exports = reduceFunctionCall\n\n/**\n * Walkthrough all expressions, evaluate them and insert them into the declaration\n *\n * @param {Array} expressions\n * @param {Object} declaration\n */\n\nfunction reduceFunctionCall(string, functionRE, callback) {\n var call = string\n return getFunctionCalls(string, functionRE).reduce(function(string, obj) {\n return string.replace(obj.functionIdentifier + \"(\" + obj.matches.body + \")\", evalFunctionCall(obj.matches.body, obj.functionIdentifier, callback, call, functionRE))\n }, string)\n}\n\n/**\n * Parses expressions in a value\n *\n * @param {String} value\n * @returns {Array}\n * @api private\n */\n\nfunction getFunctionCalls(call, functionRE) {\n var expressions = []\n\n var fnRE = typeof functionRE === \"string\" ? new RegExp(\"\\\\b(\" + functionRE + \")\\\\(\") : functionRE\n do {\n var searchMatch = fnRE.exec(call)\n if (!searchMatch) {\n return expressions\n }\n if (searchMatch[1] === undefined) {\n throw new Error(\"Missing the first couple of parenthesis to get the function identifier in \" + functionRE)\n }\n var fn = searchMatch[1]\n var startIndex = searchMatch.index\n var matches = balanced(\"(\", \")\", call.substring(startIndex))\n\n if (!matches || matches.start !== searchMatch[0].length - 1) {\n throw new SyntaxError(fn + \"(): missing closing ')' in the value '\" + call + \"'\")\n }\n\n expressions.push({matches: matches, functionIdentifier: fn})\n call = matches.post\n }\n while (fnRE.test(call))\n\n return expressions\n}\n\n/**\n * Evaluates an expression\n *\n * @param {String} expression\n * @returns {String}\n * @api private\n */\n\nfunction evalFunctionCall (string, functionIdentifier, callback, call, functionRE) {\n // allow recursivity\n return callback(reduceFunctionCall(string, functionRE, callback), functionIdentifier, call)\n}\n","var Mexp=require('./postfix_evaluator.js');\r\nMexp.prototype.formulaEval = function () {\r\n\t\"use strict\";\r\n\tvar stack=[],pop1,pop2,pop3;\r\n\tvar disp=[];\r\n\tvar temp='';\r\n\tvar arr=this.value;\r\n\tfor(var i=0;i<arr.length;i++){\r\n\t\tif(arr[i].type===1||arr[i].type===3){\r\n\t\t\tdisp.push({value:arr[i].type===3?arr[i].show:arr[i].value,type:1});\r\n\t\t}\r\n\t\telse if(arr[i].type===13){\r\n\t\t\tdisp.push({value:arr[i].show,type:1});\r\n\t\t}\r\n\t\telse if(arr[i].type===0){\r\n\t\t\tdisp[disp.length-1]={value:arr[i].show+(arr[i].show!=\"-\"?\"(\":\"\")+disp[disp.length-1].value+(arr[i].show!=\"-\"?\")\":\"\"),type:0};\r\n\t\t}\r\n\t\telse if(arr[i].type===7){\r\n\t\t\tdisp[disp.length-1]={value:(disp[disp.length-1].type!=1?\"(\":\"\")+disp[disp.length-1].value+(disp[disp.length-1].type!=1?\")\":\"\")+arr[i].show,type:7};\r\n\t\t}\r\n\t\telse if(arr[i].type===10){\r\n\t\t\tpop1=disp.pop();\r\n\t\t\tpop2=disp.pop();\r\n\t\t\tif(arr[i].show==='P'||arr[i].show==='C')disp.push({value:\"<sup>\"+pop2.value+\"</sup>\"+arr[i].show+\"<sub>\"+pop1.value+\"</sub>\",type:10});\r\n\t\t\telse disp.push({value:(pop2.type!=1?\"(\":\"\")+pop2.value+(pop2.type!=1?\")\":\"\")+\"<sup>\"+pop1.value+\"</sup>\",type:1});\r\n\t\t}\r\n\t\telse if(arr[i].type===2||arr[i].type===9){\r\n\t\t\tpop1=disp.pop();\r\n\t\t\tpop2=disp.pop();\r\n\t\t\tdisp.push({value:(pop2.type!=1?\"(\":\"\")+pop2.value+(pop2.type!=1?\")\":\"\")+arr[i].show+(pop1.type!=1?\"(\":\"\")+pop1.value+(pop1.type!=1?\")\":\"\"),type:arr[i].type});\r\n\t\t}\r\n\t\telse if(arr[i].type===12){\r\n\t\t\tpop1=disp.pop();\r\n\t\t\tpop2=disp.pop();\r\n\t\t\tpop3=disp.pop();\r\n\t\t\tdisp.push({value:arr[i].show+\"(\"+pop3.value+\",\"+pop2.value+\",\"+pop1.value+\")\",type:12});\r\n\t\t}\r\n\t}\r\n\treturn disp[0].value;\r\n};\r\nmodule.exports=Mexp;","var Mexp=require('./postfix.js');\r\nMexp.prototype.postfixEval = function (UserDefined) {\r\n\t'use strict';\r\n\tUserDefined=UserDefined||{};\r\n\tUserDefined.PI=Math.PI;\r\n\tUserDefined.E=Math.E;\r\n\tvar stack=[],pop1,pop2,pop3;\r\n\tvar disp=[];\r\n\tvar temp='';\r\n\tvar arr=this.value;\r\n\tvar bool=(typeof UserDefined.n!==\"undefined\");\r\n\tfor(var i=0;i<arr.length;i++){\r\n\t\tif(arr[i].type===1){\r\n\t\t\tstack.push({value:arr[i].value,type:1});\r\n\t\t}\r\n\t\telse if(arr[i].type===3){\r\n\t\t\tstack.push({value:UserDefined[arr[i].value],type:1});\r\n\t\t}\r\n\t\telse if(arr[i].type===0){\r\n\t\t\tif(typeof stack[stack.length-1].type===\"undefined\"){\r\n\t\t\t\tstack[stack.length-1].value.push(arr[i]);\r\n\t\t\t}\r\n\t\t\telse stack[stack.length-1].value=arr[i].value(stack[stack.length-1].value);\r\n\t\t}\r\n\t\telse if(arr[i].type===7){\r\n\t\t\tif(typeof stack[stack.length-1].type===\"undefined\"){\r\n\t\t\t\tstack[stack.length-1].value.push(arr[i]);\r\n\t\t\t}\r\n\t\t\telse stack[stack.length-1].value=arr[i].value(stack[stack.length-1].value);\r\n\t\t}\r\n\t\telse if(arr[i].type===8){\r\n\t\t\tpop1=stack.pop();\r\n\t\t\tpop2=stack.pop();\r\n\t\t\tstack.push({type:1,value:arr[i].value(pop2.value,pop1.value)});\r\n\t\t}\r\n\t\telse if(arr[i].type===10){\r\n\t\t\tpop1=stack.pop();\r\n\t\t\tpop2=stack.pop();\r\n\t\t\tif(typeof pop2.type===\"undefined\"){\r\n\t\t\t\tpop2.value=pop2.concat(pop1);\r\n\t\t\t\tpop2.value.push(arr[i]);\r\n\t\t\t\tstack.push(pop2);\r\n\t\t\t}\r\n\t\t\telse if (typeof pop1.type===\"undefined\") {\r\n\t\t\t\tpop1.unshift(pop2);\r\n\t\t\t\tpop1.push(arr[i]);\r\n\t\t\t\tstack.push(pop1);\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tstack.push({type:1,value:arr[i].value(pop2.value,pop1.value)});\r\n }\r\n\t\t}\r\n\t\telse if(arr[i].type===2||arr[i].type===9){\r\n\t\t\tpop1=stack.pop();\r\n\t\t\tpop2=stack.pop();\r\n\t\t\tif(typeof pop2.type===\"undefined\"){\r\n console.log(pop2);\r\n\t\t\t\tpop2=pop2.concat(pop1);\r\n\t\t\t\tpop2.push(arr[i]);\r\n\t\t\t\tstack.push(pop2);\r\n\t\t\t}\r\n\t\t\telse if (typeof pop1.type===\"undefined\") {\r\n\t\t\t\tpop1.unshift(pop2);\r\n\t\t\t\tpop1.push(arr[i]);\r\n\t\t\t\tstack.push(pop1);\r\n\t\t\t}\r\n\t\t\telse{\r\n\t\t\t\tstack.push({type:1,value:arr[i].value(pop2.value,pop1.value)});\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if(arr[i].type===12){\r\n\t\t\tpop1=stack.pop();\r\n\t\t\tif (typeof pop1.type!==\"undefined\") {\r\n\t\t\t\tpop1=[pop1];\r\n\t\t\t}\r\n\t\t\tpop2=stack.pop();\r\n\t\t\tpop3=stack.pop();\r\n\t\t\tstack.push({type:1,value:arr[i].value(pop3.value,pop2.value,new Mexp(pop1))});\r\n\t\t}\r\n\t\telse if(arr[i].type===13){\r\n\t\t\tif(bool){\r\n\t\t\t\tstack.push({value:UserDefined[arr[i].value],type:3});\r\n\t\t\t}\r\n\t\t\telse stack.push([arr[i]]);\r\n\t\t}\r\n\t}\r\n\tif (stack.length>1) {\r\n\t\tthrow(new Mexp.exception(\"Uncaught Syntax error\"));\r\n\t}\r\n\treturn stack[0].value>1000000000000000?\"Infinity\":parseFloat(stack[0].value.toFixed(15));\r\n};\r\nMexp.eval=function(str,tokens,obj){\r\n\tif (typeof tokens===\"undefined\") {\r\n\t\treturn this.lex(str).toPostfix().postfixEval();\r\n\t}\r\n\telse if (typeof obj===\"undefined\") {\r\n\t\tif (typeof tokens.length!==\"undefined\") \r\n\t\t\treturn this.lex(str,tokens).toPostfix().postfixEval();\r\n\t\telse\r\n\t\t\treturn this.lex(str).toPostfix().postfixEval(tokens);\r\n\t}\r\n\telse\r\n\t\treturn this.lex(str,tokens).toPostfix().postfixEval(obj);\r\n};\r\nmodule.exports=Mexp;","\r\n var Mexp=require('./lexer.js');\r\n\r\n\tMexp.prototype.toPostfix = function () {\r\n\t\t'use strict';\r\n\t\tvar post=[],elem,popped,prep,pre,ele;\r\n \tvar stack=[{value:\"(\",type:4,pre:0}];\r\n\t\tvar arr=this.value;\r\n\t\tfor (var i=1; i < arr.length; i++) {\r\n\t\t\tif(arr[i].type===1||arr[i].type===3||arr[i].type===13){\t//if token is number,constant,or n(which is also a special constant in our case)\r\n\t\t\t\tif(arr[i].type===1)\r\n\t\t\t\t\tarr[i].value=Number(arr[i].value);\r\n\t\t\t\tpost.push(arr[i]);\r\n\t\t\t}\r\n\t\t\telse if(arr[i].type===4){\r\n\t\t\t\tstack.push(arr[i]);\r\n\t\t\t}\r\n\t\t\telse if(arr[i].type===5){\r\n\t\t\t\twhile((popped=stack.pop()).type!==4){\r\n\t\t\t\t\tpost.push(popped);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if(arr[i].type===11){\r\n\t\t\t\twhile((popped=stack.pop()).type!==4){\r\n\t\t\t\t\tpost.push(popped);\r\n\t\t\t\t}\r\n\t\t\t\tstack.push(popped);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\telem=arr[i];\r\n\t\t\t\tpre=elem.pre;\r\n\t\t\t\tele=stack[stack.length-1];\r\n\t\t\t\tprep=ele.pre;\r\n\t\t\t\tvar flag=ele.value=='Math.pow'&&elem.value=='Math.pow';\r\n\t\t\t\tif(pre>prep)stack.push(elem);\r\n\t\t\t\telse {\r\n\t\t\t\t\twhile(prep>=pre&&!flag||flag&&pre<prep){\r\n\t\t\t\t\t\tpopped=stack.pop();\r\n\t\t\t\t\t\tele=stack[stack.length-1];\r\n\t\t\t\t\t\tpost.push(popped);\r\n\t\t\t\t\t\tprep=ele.pre;\r\n\t\t\t\t\t\tflag=elem.value=='Math.pow'&&ele.value=='Math.pow';\r\n\t\t\t\t\t}\r\n\t\t\t\t\tstack.push(elem);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn new Mexp(post);\r\n\t};\r\n module.exports=Mexp;","var Mexp=require('./math_function.js');\r\n\tfunction inc(arr,val){\r\n\t\tfor(var i=0;i<arr.length;i++)\r\n\t\t\tarr[i]+=val;\r\n\t\treturn arr;\r\n\t}\r\n\tvar token=['sin','cos','tan','pi','(',')','P','C',\r\n\t\t 'asin','acos','atan','7','8','9','int',\r\n\t\t 'cosh','acosh','ln','^','root','4','5','6','/','!',\r\n\t\t 'tanh','atanh','Mod','1','2','3','*',\r\n\t\t 'sinh','asinh','e','log','0','.','+','-',',','Sigma','n','Pi','pow'];\r\n\tvar show=['sin','cos','tan','&pi;','(',')','P','C',\r\n\t\t'asin','acos','atan','7','8','9','Int',\r\n\t\t'cosh','acosh',' ln','^','root','4','5','6','&divide;','!',\r\n\t\t'tanh','atanh',' Mod ','1','2','3','&times;',\r\n\t\t'sinh','asinh','e',' log','0','.','+','-',',','&Sigma;','n','&Pi;','pow'];\r\n\tvar eva=[Mexp.math.sin,Mexp.math.cos,Mexp.math.tan,'PI','(',')',Mexp.math.P,Mexp.math.C,\r\n\t\tMexp.math.asin,Mexp.math.acos,Mexp.math.atan,'7','8','9',Math.floor,\r\n\t\tMexp.math.cosh,Mexp.math.acosh,Math.log,Math.pow,Math.sqrt,'4','5','6',Mexp.math.div,Mexp.math.fact,\r\n\t\tMexp.math.tanh,Mexp.math.atanh,Mexp.math.mod,'1','2','3',Mexp.math.mul,\r\n\t\tMexp.math.sinh,Mexp.math.asinh,'E',Mexp.math.log,'0','.',Mexp.math.add,Mexp.math.sub,',',Mexp.math.sigma,'n',Mexp.math.Pi,Math.pow];\r\n\tvar preced={0:11,1:0,2:3,3:0,4:0,5:0,6:0,7:11,8:11,9:1,10:10,11:0,12:11,13:0};\r\n\tvar type=[0,0,0,3,4,5,10,10,\r\n\t\t0,0,0,1,1,1,0,\r\n\t\t0,0,0,10,0,1,1,1,2,7,\r\n\t\t0,0,2,1,1,1,2,\r\n\t\t0,0,3,0,1,6,9,9,11,12,13,12,8];\r\n\t /*\r\n\t0 : function with syntax function_name(Maths_exp)\r\n\t1 : numbers\r\n\t2 : binary operators like * / Mod left associate and same precedence\r\n\t3 : Math constant values like e,pi,Cruncher ans\r\n\t4 : opening bracket\r\n\t5 : closing bracket\r\n\t6 : decimal\r\n\t7 : function with syntax (Math_exp)function_name\r\n\t8: function with syntax function_name(Math_exp1,Math_exp2)\r\n\t9 : binary operator like +,-\r\n\t10: binary operator like P C or ^\r\n\t11: ,\r\n\t12: function with , seperated three parameters\r\n\t13: variable of Sigma function\r\n\t */\r\n\tvar type0={0:true,1:true,3:true,4:true,6:true,8:true,9:true,12:true,13:true},//type2:true,type4:true,type9:true,type11:true,type21:true,type22\r\n\ttype1={0:true,1:true,2:true,3:true,4:true,5:true,6:true,7:true,8:true,9:true,10:true,11:true,12:true,13:true},//type3:true,type5:true,type7:true,type23\r\n\ttype_1={0:true,3:true,4:true,8:true,12:true,13:true},\r\n\tempty={},\r\n\ttype_3={0:true,1:true,3:true,4:true,6:true,8:true,12:true,13:true},//type_5:true,type_7:true,type_23\r\n\ttype6={1:true},\r\n\tnewAr=[[],\r\n\t\t\t[\"1\",\"2\",\"3\",\"7\",\"8\",\"9\",\"4\",\"5\",\"6\",\"+\",\"-\",\"*\",\"/\",\"(\",\")\",\"^\",\"!\",\"P\",\"C\",\"e\",\"0\",\".\",\",\",\"n\"],\r\n\t\t\t[\"pi\",\"ln\",\"Pi\"],\r\n\t\t\t[\"sin\",\"cos\",\"tan\",\"Del\",\"int\",\"Mod\",\"log\",\"pow\"],\r\n\t\t\t[\"asin\",\"acos\",\"atan\",\"cosh\",\"root\",\"tanh\",\"sinh\"],\r\n\t\t\t[\"acosh\",\"atanh\",\"asinh\",\"Sigma\"]];\r\n\tfunction match(str1,str2,i,x){\r\n\t\tfor(var f=0;f<x;f++){\r\n\t\t\tif (str1[i+f]!==str2[f])\r\n\t\t\t\treturn false;\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\tMexp.addToken=function(tokens){\r\n\t\tfor(i=0;i<tokens.length;i++){\r\n\t\t\tx=tokens[i].token.length;\r\n\t\t\tvar temp=-1;\r\n\r\n\t\t\t//newAr is a specially designed data structure in which 1D array at location one of 2d array has all string with length 1 2 with 2 and so on\r\n\r\n\t\t\tif (x<newAr.length)\t//match to check if token is really huge and not existing\r\n\t\t\t\t\t\t\t\t//if not checked it will break in next line as undefined index\r\n\t\t\t\tfor(y=0;y<newAr[x].length;y++){\r\n\t\t\t\t\tif (tokens[i].token===newAr[x][y]){\r\n\t\t\t\t\t\ttemp=token.indexOf(newAr[x][y]);\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\tif (temp===-1) {\r\n\t\t\t\ttoken.push(tokens[i].token);\r\n\t\t\t\ttype.push(tokens[i].type);\r\n\t\t\t\tif(newAr.length<=tokens[i].token.length)\r\n\t\t\t\t\tnewAr[tokens[i].token.length]=[];\r\n\t\t\t\tnewAr[tokens[i].token.length].push(tokens[i].token);\r\n\t\t\t\teva.push(tokens[i].value);\r\n\t\t\t\tshow.push(tokens[i].show);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\ttoken[temp]=tokens[i].token;\r\n\t\t\t\ttype[temp]=tokens[i].type;\r\n\t\t\t\teva[temp]=tokens[i].value;\r\n\t\t\t\tshow[temp]=tokens[i].show;\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\tMexp.lex=function(inp,tokens){\r\n\t\t'use strict';\r\n\t\tvar str=[{type:4,value:\"(\",show:\"(\",pre:0}];\r\n\t\tvar ptc=[];\t//Parenthesis to close at the beginning is after one token\r\n\t\tvar inpStr=inp;\r\n\t\tvar key;\r\n var pcounter=0;\r\n\t\tvar allowed=type0;\r\n\t\tvar bracToClose=0;\r\n\t\tvar asterick=empty;\r\n\t\tvar prevKey='';\r\n\t\tvar i,x,y;\r\n\t\tif(typeof tokens!==\"undefined\")\r\n\t\t\tMexp.addToken(tokens);\r\n\t\tvar obj={};\r\n\t\tfor(i=0;i<inpStr.length;i++){\r\n\t\t\tif (inpStr[i]==' ') {\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\t\t\tkey='';\r\n\t\t\tsec:for(x=(inpStr.length-i>(newAr.length-2)?newAr.length-1:inpStr.length-i);x>0;x--){\r\n\t\t\t\tfor(y=0;y<newAr[x].length;y++){\r\n\t\t\t\t\tif (match(inpStr,newAr[x][y],i,x)){\r\n\t\t\t\t\t\tkey=newAr[x][y];\r\n\t\t\t\t\t\tbreak sec;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\ti+=key.length-1;\r\n\t\t\tif(key===''){\r\n\t\t\t\tthrow(new Mexp.exception(\"Can't understand after \"+inpStr.slice(i)));\r\n\t\t\t}\r\n\t\t\tvar index=token.indexOf(key);\r\n\t\t\tvar cToken=key;\r\n\t\t\tvar cType=type[index];\r\n\t\t\tvar cEv=eva[index];\r\n\t\t\tvar cPre=preced[cType];\r\n\t\t\tvar\tcShow=show[index];\r\n\t\t\tvar pre=str[str.length-1];\r\n\t\t\tfor(j=ptc.length;j--;){\t//loop over ptc\r\n\t\t\t\tif(ptc[j]===0){\r\n\t\t\t\t\tif([0,2,3,5,9,11,12,13].indexOf(cType)!==-1){\r\n\t\t\t\t\t\tif(allowed[cType]!==true){\r\n\t\t\t\t\t\t\tthrow(new Mexp.exception(key+\" is not allowed after \"+prevKey));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tstr.push({value:\")\",type:5,pre:0,show:\")\"});\r\n\t\t\t\t\t\tallowed=type1;\r\n\t\t\t\t\t\tasterick=type_3;\r\n\t\t\t\t\t\tinc(ptc,-1).pop();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tif(allowed[cType]!==true){\r\n\t\t\t\tthrow(new Mexp.exception(key+\" is not allowed after \"+prevKey));\r\n\t\t\t}\r\n\t\t\tif(asterick[cType]===true){\r\n\t\t\t\tcType=2;\r\n\t\t\t\tcEv=Mexp.math.mul;\r\n\t\t\t\tcShow=\"&times;\";\r\n\t\t\t\tcPre=3;\r\n\t\t\t\ti=i-key.length;\r\n\t\t \t}\r\n\t\t\tobj={value:cEv,type:cType,pre:cPre,show:cShow};\r\n\t\t\tif(cType===0){\r\n\t\t\t\tallowed=type0;\r\n\t\t\t\tasterick=empty;\r\n\t\t\t\tinc(ptc,2).push(2);\r\n\t\t\t\tstr.push(obj);\r\n\t\t\t\tstr.push({value:\"(\",type:4,pre:0,show:\"(\"});\r\n\t\t\t}\r\n\t\t\telse if(cType===1){\r\n\t\t\t\tif(pre.type===1){\r\n\t\t\t\t\tpre.value+=cEv;\r\n\t\t\t\t\tinc(ptc,1);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tstr.push(obj);\r\n\t\t\t\t}\r\n\t\t\t\tallowed=type1;\r\n\t\t\t\tasterick=type_1;\r\n\t\t\t}\r\n\t\t\telse if(cType===2){\r\n\t\t\t\tallowed=type0;\r\n\t\t\t\tasterick=empty;\r\n\t\t\t\tinc(ptc,2);\r\n\t\t\t\tstr.push(obj);\r\n\t\t\t}\r\n\t\t\telse if(cType===3){//constant\r\n\t\t\t\tstr.push(obj);\r\n\t\t\t\tallowed=type1;\r\n\t\t\t\tasterick=type_3;\r\n\t\t\t}\r\n\t\t\telse if(cType===4){\r\n pcounter+=ptc.length;\r\n ptc=[];\r\n\t\t\t\tbracToClose++;\r\n\t\t\t\tallowed=type0;\r\n\t\t\t\tasterick=empty;\r\n\t\t\t\tstr.push(obj);\r\n\t\t\t}\r\n\t\t\telse if(cType===5){\r\n\t\t\t\tif(!bracToClose){\r\n\t\t\t\t\tthrow(new Mexp.exception(\"Closing parenthesis are more than opening one, wait What!!!\"));\r\n\t\t\t\t}\r\n while(pcounter--){\t//loop over ptc\r\n \t\t\t\t\t\tstr.push({value:\")\",type:5,pre:0,show:\")\"});\r\n \t\t\t}\r\n pcounter=0;\r\n\t\t\t\tbracToClose--;\r\n\t\t\t\tallowed=type1;\r\n\t\t\t\tasterick=type_3;\r\n\t\t\t\tstr.push(obj);\r\n\t\t\t}\r\n\t\t\telse if(cType===6){\r\n\t\t\t\tif(pre.hasDec){\r\n\t\t\t\t\tthrow(new Mexp.exception(\"Two decimals are not allowed in one number\"));\r\n\t\t\t\t}\r\n\t\t\t\tif(pre.type!==1){\r\n\t\t\t\t\tpre={value:0,type:1,pre:0};\t//pre needs to be changed as it will the last value now to be safe in later code\r\n\t\t\t\t\tstr.push(pre);\r\n\t\t\t\t\tinc(ptc,-1);\r\n\t\t\t\t}\r\n\t\t\t\tallowed=type6;\r\n\t\t\t\tinc(ptc,1);\r\n\t\t\t\tasterick=empty;\r\n\t\t\t\tpre.value+=cEv;\r\n\t\t\t\tpre.hasDec=true;\r\n\t\t\t}\r\n\t\t\telse if(cType===7){\r\n\t\t\t\tallowed=type1;\r\n\t\t\t\tasterick=type_3;\r\n\t\t\t\tinc(ptc,1);\r\n\t\t\t\tstr.push(obj);\r\n\t\t\t}\r\n\t\t\tif(cType===8){\r\n\t\t\t\tallowed=type0;\r\n\t\t\t\tasterick=empty;\r\n\t\t\t\tinc(ptc,4).push(4);\r\n\t\t\t\tstr.push(obj);\r\n\t\t\t\tstr.push({value:\"(\",type:4,pre:0,show:\"(\"});\r\n\t\t\t}\r\n\t\t\telse if(cType===9){\r\n\t\t\t\tif(pre.type===9){\r\n\t\t\t\t\tif(pre.value===Mexp.math.add){\r\n\t\t\t\t\t\tpre.value=cEv;\r\n\t\t\t\t\t\tpre.show=cShow;\r\n\t\t\t\t\t\tinc(ptc,1);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse if(pre.value===Mexp.math.sub&&cShow==='-'){\r\n\t\t\t\t\t\tpre.value=Mexp.math.add;\r\n\t\t\t\t\t\tpre.show='+';\r\n\t\t\t\t\t\tinc(ptc,1);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse if(pre.type!==5&&pre.type!==7&&pre.type!==1&&pre.type!==3&&pre.type!==13){//changesign only when negative is found\r\n\t\t\t\t\tif(cToken==='-'){//do nothing for + token\r\n\t\t\t\t\t\t\t\t\t//don't add with the above if statement as that will run the else statement of parent if on Ctoken +\r\n\t\t\t\t\t\tallowed=type0;\r\n\t\t\t\t\t\tasterick=empty;\r\n\t\t\t\t\t\tinc(ptc,2).push(2);\r\n\t\t\t\t\t\tstr.push({value:Mexp.math.changeSign,type:0,pre:21,show:\"-\"});\r\n\t\t\t\t\t\tstr.push({value:\"(\",type:4,pre:0,show:\"(\"});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse{\r\n\t\t\t\t\tstr.push(obj);\r\n\t\t\t\t\tinc(ptc,2);\r\n\t\t\t\t}\r\n\t\t\t\tallowed=type0;\r\n\t\t\t\tasterick=empty;\r\n\t\t\t}\r\n\t\t\telse if(cType===10){\r\n\t\t\t\tallowed=type0;\r\n\t\t\t\tasterick=empty;\r\n\t\t\t\tinc(ptc,2);\r\n\t\t\t\tstr.push(obj);\r\n\t\t\t}\r\n\t\t\telse if(cType===11){\r\n\t\t\t\tallowed=type0;\r\n\t\t\t\tasterick=empty;\r\n\t\t\t\tstr.push(obj);\r\n\t\t\t}\r\n\t\t\telse if(cType===12){\r\n\t\t\t\tallowed=type0;\r\n\t\t\t\tasterick=empty;\r\n\t\t\t\tinc(ptc,6).push(6);\r\n\t\t\t\tstr.push(obj);\r\n\t\t\t\tstr.push({value:\"(\",type:4,pre:0});\r\n\t\t\t}\r\n\t\t\telse if(cType===13){\r\n\t\t\t\tallowed=type1;\r\n\t\t\t\tasterick=type_3;\r\n\t\t\t\tstr.push(obj);\r\n\t\t\t}\r\n\t\t\tinc(ptc,-1);\r\n\t\t\tprevKey=key;\r\n\t\t}\r\n\t\tfor(var j=ptc.length;j--;){\t//loop over ptc\r\n\t\t\tif(ptc[j]===0){\r\n\r\n\t\t\t\tstr.push({value:\")\",show:\")\",type:5,pre:3});\r\n\t\t\t\tinc(ptc,-1).pop();\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (allowed[5]!==true) {\r\n\t\t\tthrow(new Mexp.exception(\"complete the expression\"));\r\n\t\t}\r\n\t\twhile(bracToClose--)\r\n\t\t\tstr.push({value:\")\",show:\")\",type:5,pre:3});\r\n\r\n\t\tstr.push({type:5,value:\")\",show:\")\",pre:0});\r\n// console.log(str);\r\n\t\treturn new Mexp(str);\r\n\t};\r\n module.exports=Mexp;\r\n","\tvar Mexp=function(parsed){\r\n\t\tthis.value=parsed;\r\n\r\n\t};\r\n\r\n\tMexp.math={\r\n\t\tisDegree:true, //mode of calculator\r\n\t\tacos:function(x){\r\n\t\t\treturn (Mexp.math.isDegree?180/Math.PI*Math.acos(x):Math.acos(x));\r\n\t\t},\r\n\t\tadd:function(a,b){\r\n\t\t\treturn a+b;\r\n\t\t},\r\n\t\tasin:function(x){\r\n\t\t\treturn (Mexp.math.isDegree?180/Math.PI*Math.asin(x):Math.asin(x));\r\n\t\t},\r\n\t\tatan:function(x){\r\n\t\t\treturn (Mexp.math.isDegree?180/Math.PI*Math.atan(x):Math.atan(x));\r\n\t\t},\r\n\t\tacosh:function(x){\r\n\t\t\treturn Math.log(x+Math.sqrt(x*x-1));\r\n\t\t},\r\n\t\tasinh:function(x){\r\n\t\t\treturn Math.log(x+Math.sqrt(x*x+1));\r\n\t\t},\r\n\t\tatanh:function(x){\r\n\t\t\treturn Math.log((1+x)/(1-x));\r\n\t\t},\r\n\t\tC:function(n,r){\r\n\t\t\tvar pro=1,other=n-r,choice=r;\r\n\t\t\tif(choice<other){\r\n\t\t\tchoice=other;\r\n\t\t\tother=r;\r\n\t\t\t}\r\n\t\t\tfor(var i=choice+1;i<=n;i++)\r\n\t\t\t\tpro*=i;\r\n\t\t\treturn pro/Mexp.math.fact(other);\r\n\t\t},\r\n\t\tchangeSign:function(x){\r\n\t\t\treturn -x;\r\n\t\t},\r\n\t\tcos:function(x){\r\n\t\t\tif(Mexp.math.isDegree)x=Mexp.math.toRadian(x);\r\n\t\t\treturn Math.cos(x);\r\n\t\t},\r\n\t\tcosh:function(x){\r\n\t\t\treturn (Math.pow(Math.E,x)+Math.pow(Math.E,-1*x))/2;\r\n\t\t},\r\n\t\tdiv:function(a,b){\r\n\t\treturn a/b;\r\n\t\t},\r\n\t\tfact:function(n) {\r\n\t\tif(n%1!==0)return \"NAN\";\r\n\t\t\tvar pro=1;\r\n\t\t\tfor(var i=2;i<=n;i++)\r\n\t\t\t\tpro*=i;\r\n\t\t\treturn pro;\r\n\t\t},\r\n\t\tinverse:function(x){\r\n\t\t\treturn 1/x;\r\n\t\t},\r\n\t\tlog:function(i){\r\n\t\t\treturn Math.log(i)/Math.log(10);\r\n\t\t},\r\n\t\tmod:function(a,b){\r\n\t\treturn a%b;\r\n\t\t},\r\n\t\tmul:function(a,b){\r\n\t\treturn a*b;\r\n\t\t},\r\n\t\tP:function(n,r){var pro=1;\r\n\t\t\t for(var i=Math.floor(n)-Math.floor(r)+1;i<=Math.floor(n);i++)\r\n\t\t\t\t\tpro*=i;\r\n\t\t\t\t\treturn pro;\r\n\r\n\t\t},\r\n\t\tPi:function(low,high,ex){\r\n\t\t\tvar pro=1;\r\n\t\t\tfor(var i=low;i<=high;i++){\r\n\t\t\t\tpro*=Number(ex.postfixEval({n:i}));\r\n\t\t\t}\r\n\t\t\treturn pro;\r\n\t\t},\r\n\t\tpow10x:function(e){\r\n\t\t\tvar x=1;\r\n\t\t\twhile(e--){x*=10;}\r\n\t\t\treturn x;\r\n\t\t},\r\n\t\tsigma:function(low,high,ex){\r\n\t\t\tvar sum=0;\r\n\t\t\tfor(var i=low;i<=high;i++){\r\n\t\t\t\tsum+=Number(ex.postfixEval({n:i}));\r\n\t\t\t}\r\n\t\t\treturn sum;\r\n\t\t},\r\n\t\tsin:function(x){\r\n\t\t\tif(Mexp.math.isDegree)x=Mexp.math.toRadian(x);\r\n\t\t\treturn Math.sin(x);\r\n\t\t},\r\n\t\tsinh:function(x){\r\n\t\t\treturn (Math.pow(Math.E,x)-Math.pow(Math.E,-1*x))/2;\r\n\t\t},\r\n\t\tsub:function(a,b){\r\n\t\treturn a-b;\r\n\t\t},\r\n\t\ttan:function(x){\r\n\t\t\tif(Mexp.math.isDegree)x=Mexp.math.toRadian(x);\r\n\t\t\treturn Math.tan(x);\r\n\t\t},\r\n\t\ttanh:function(x){\r\n\t\t\treturn Mexp.sinha(x)/Mexp.cosha(x);\r\n\t\t},\r\n\t\ttoRadian:function(x){\r\n\t\t\treturn x*Math.PI/180;\r\n\t\t}\r\n\t};\r\n\tMexp.exception=function(message){\r\n\t\tthis.message=message;\r\n\t};\r\n module.exports=Mexp;","/**\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 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 root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\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 arrayMap = require('./_arrayMap'),\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\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 var index = -1;\n iteratees = arrayMap(iteratees.length ? iteratees : [identity], baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","/**\n * The base implementation of `_.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 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 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 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","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getTickValuesFixedDomain = exports.getTickValues = exports.getNiceTickValues = undefined;\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { 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\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }(); /**\n * @fileOverview calculate tick values of scale\n * @author xile611, arcthur\n * @date 2015-09-17\n */\n\n\nvar _decimal = require('decimal.js-light');\n\nvar _decimal2 = _interopRequireDefault(_decimal);\n\nvar _utils = require('./util/utils');\n\nvar _arithmetic = require('./util/arithmetic');\n\nvar _arithmetic2 = _interopRequireDefault(_arithmetic);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\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 */\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;\n\n // exchange\n\n if (min > max) {\n validMin = max;\n validMax = min;\n }\n\n return [validMin, validMax];\n}\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 */\nfunction getFormatStep(roughStep, allowDecimals, correctionFactor) {\n if (roughStep.lte(0)) {\n return new _decimal2.default(0);\n }\n\n var digitCount = _arithmetic2.default.getDigitCount(roughStep.toNumber());\n // The ratio between the rough step and the smallest number which has a bigger\n // order of magnitudes than the rough step\n var digitCountValue = new _decimal2.default(10).pow(digitCount);\n var stepRatio = roughStep.div(digitCountValue);\n // When an integer and a float multiplied, the accuracy of result may be wrong\n var stepRatioScale = digitCount !== 1 ? 0.05 : 0.1;\n var amendStepRatio = new _decimal2.default(Math.ceil(stepRatio.div(stepRatioScale).toNumber())).add(correctionFactor).mul(stepRatioScale);\n\n var formatStep = amendStepRatio.mul(digitCountValue);\n\n return allowDecimals ? formatStep : new _decimal2.default(Math.ceil(formatStep));\n}\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 */\nfunction getTickOfSingleValue(value, tickCount, allowDecimals) {\n var step = 1;\n // calculate the middle value of ticks\n var middle = new _decimal2.default(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 _decimal2.default(10).pow(_arithmetic2.default.getDigitCount(value) - 1);\n\n middle = new _decimal2.default(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 _decimal2.default(Math.floor(value));\n }\n } else if (value === 0) {\n middle = new _decimal2.default(Math.floor((tickCount - 1) / 2));\n } else if (!allowDecimals) {\n middle = new _decimal2.default(Math.floor(value));\n }\n\n var middleIndex = Math.floor((tickCount - 1) / 2);\n\n var fn = (0, _utils.compose)((0, _utils.map)(function (n) {\n return middle.add(new _decimal2.default(n - middleIndex).mul(step)).toNumber();\n }), _utils.range);\n\n return fn(0, tickCount);\n}\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 */\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 _decimal2.default(0),\n tickMin: new _decimal2.default(0),\n tickMax: new _decimal2.default(0)\n };\n }\n\n // The step which is easy to understand between two ticks\n var step = getFormatStep(new _decimal2.default(max).sub(min).div(tickCount - 1), allowDecimals, correctionFactor);\n\n // A medial value of ticks\n var middle = void 0;\n\n // When 0 is inside the interval, 0 should be a tick\n if (min <= 0 && max >= 0) {\n middle = new _decimal2.default(0);\n } else {\n // calculate the middle value\n middle = new _decimal2.default(min).add(max).div(2);\n // minus modulo value\n middle = middle.sub(new _decimal2.default(middle).mod(step));\n }\n\n var belowCount = Math.ceil(middle.sub(min).div(step).toNumber());\n var upCount = Math.ceil(new _decimal2.default(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 } else 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 _decimal2.default(belowCount).mul(step)),\n tickMax: middle.add(new _decimal2.default(upCount).mul(step))\n };\n}\n/**\n * Calculate the ticks of an interval\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 */\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\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 === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n }\n\n // Get the step between two ticks\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 = _arithmetic2.default.rangeStep(tickMin, tickMax.add(new _decimal2.default(0.1).mul(step)), step);\n\n return min > max ? (0, _utils.reverse)(values) : values;\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\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 === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n }\n\n var step = getFormatStep(new _decimal2.default(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n\n var fn = (0, _utils.compose)((0, _utils.map)(function (n) {\n return new _decimal2.default(cormin).add(new _decimal2.default(n).mul(step)).toNumber();\n }), _utils.range);\n\n var values = fn(0, count).filter(function (entry) {\n return entry >= cormin && entry <= cormax;\n });\n\n return min > max ? (0, _utils.reverse)(values) : values;\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 === cormax) {\n return [cormin];\n }\n\n var count = Math.max(tickCount, 2);\n var step = getFormatStep(new _decimal2.default(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var values = [].concat(_toConsumableArray(_arithmetic2.default.rangeStep(new _decimal2.default(cormin), new _decimal2.default(cormax).sub(new _decimal2.default(0.99).mul(step)), step)), [cormax]);\n\n return min > max ? (0, _utils.reverse)(values) : values;\n}\n\nvar getNiceTickValues = exports.getNiceTickValues = (0, _utils.memoize)(getNiceTickValuesFn);\nvar getTickValues = exports.getTickValues = (0, _utils.memoize)(getTickValuesFn);\nvar getTickValuesFixedDomain = exports.getTickValuesFixedDomain = (0, _utils.memoize)(getTickValuesFixedDomainFn);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _decimal = require('decimal.js-light');\n\nvar _decimal2 = _interopRequireDefault(_decimal);\n\nvar _utils = require('./utils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\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/**\n * @fileOverview 一些公用的运算方法\n * @author xile611\n * @date 2015-09-17\n */\nfunction getDigitCount(value) {\n var result = void 0;\n\n if (value === 0) {\n result = 1;\n } else {\n result = Math.floor(new _decimal2.default(value).abs().log(10).toNumber()) + 1;\n }\n\n return result;\n}\n\n/**\n * 按照固定的步长获取[start, end)这个区间的数据\n * 并且需要处理js计算精度的问题\n *\n * @param {Decimal} start 起点\n * @param {Decimal} end 终点,不包含该值\n * @param {Decimal} step 步长\n * @return {Array} 若干数值\n */\nfunction rangeStep(start, end, step) {\n var num = new _decimal2.default(start);\n var result = [];\n\n while (num.lt(end)) {\n result.push(num.toNumber());\n\n num = num.add(step);\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 */\nvar interpolateNumber = (0, _utils.curry)(function (a, b, t) {\n var newA = +a;\n var newB = +b;\n\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 */\nvar uninterpolateNumber = (0, _utils.curry)(function (a, b, x) {\n var diff = b - +a;\n\n diff = diff || Infinity;\n\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 */\nvar uninterpolateTruncation = (0, _utils.curry)(function (a, b, x) {\n var diff = b - +a;\n\n diff = diff || Infinity;\n\n return Math.max(0, Math.min(1, (x - a) / diff));\n});\n\nexports.default = {\n rangeStep: rangeStep,\n getDigitCount: getDigitCount,\n\n interpolateNumber: interpolateNumber,\n uninterpolateNumber: uninterpolateNumber,\n uninterpolateTruncation: uninterpolateTruncation\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 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 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","/**\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 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 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","/* 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","/**\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 `_.sum` and `_.sumBy` 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 {number} Returns the sum.\n */\nfunction baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n}\n\nmodule.exports = baseSum;\n","import 'core-js/es6/math';\n/* eslint no-proto: 0 */\nconst testObject = {};\n\nif (!(Object.setPrototypeOf || testObject.__proto__)) {\n const nativeGetPrototypeOf = Object.getPrototypeOf;\n\n Object.getPrototypeOf = (object) => {\n if (object.__proto__) {\n return object.__proto__;\n }\n\n return nativeGetPrototypeOf.call(Object, object);\n };\n}\n","import _ from 'lodash';\n\nexport const mathSign = (value) => {\n if (value === 0) { return 0; }\n if (value > 0) { return 1; }\n\n return -1;\n};\n\nexport const isPercent = value => (\n _.isString(value) && value.indexOf('%') === value.length - 1\n);\n\nexport const isNumber = value => (\n _.isNumber(value) && !_.isNaN(value)\n);\n\nexport const isNumOrStr = value => (\n isNumber(value) || _.isString(value)\n);\n\nlet idCounter = 0;\nexport const uniqueId = (prefix) => {\n const id = ++idCounter;\n\n return `${prefix || ''}${id}`;\n};\n/**\n * Get percent value of a total value\n * @param {Number|String} percent A percent\n * @param {Number} totalValue Total value\n * @param {NUmber} defaultValue The value returned when percent is undefined or invalid\n * @param {Boolean} validate If set to be true, the result will be validated\n * @return {Number} value\n */\nexport const getPercentValue = (percent, totalValue, defaultValue = 0, validate = false) => {\n if (!isNumber(percent) && !_.isString(percent)) {\n return defaultValue;\n }\n\n let value;\n\n if (isPercent(percent)) {\n const index = percent.indexOf('%');\n value = totalValue * parseFloat(percent.slice(0, index)) / 100;\n } else {\n value = +percent;\n }\n\n if (_.isNaN(value)) {\n value = defaultValue;\n }\n\n if (validate && value > totalValue) {\n value = totalValue;\n }\n\n return value;\n};\n\nexport const getAnyElementOfObject = (obj) => {\n if (!obj) { return null; }\n\n const keys = Object.keys(obj);\n\n if (keys && keys.length) {\n return obj[keys[0]];\n }\n\n return null;\n};\n\nexport const hasDuplicate = (ary) => {\n if (!_.isArray(ary)) { return false; }\n\n const len = ary.length;\n const cache = {};\n\n for (let i = 0; i < len; i++) {\n if (!cache[ary[i]]) {\n cache[ary[i]] = true;\n } else {\n return true;\n }\n }\n\n return false;\n};\n\nexport const interpolateNumber = (numberA, numberB) => {\n if (isNumber(numberA) && isNumber(numberB)) {\n return t => (numberA + t * (numberB - numberA));\n }\n\n return () => numberB;\n};\n\nexport const findEntryInArray = (ary, specifiedKey, specifiedValue) => {\n if (!ary || !ary.length) { return null; }\n\n return ary.find(entry => (entry && _.get(entry, specifiedKey) === specifiedValue));\n};\n\n/**\n * The least square linear regression\n * @param {Array} data The array of points\n * @returns {Object} The domain of x, and the parameter of linear function\n */\nexport const getLinearRegression = (data) => {\n if (!data || !data.length) { return null; }\n\n const len = data.length;\n let xsum = 0;\n let ysum = 0;\n let xysum = 0;\n let xxsum = 0;\n let xmin = Infinity;\n let xmax = -Infinity;\n\n for (let i = 0; i < len; i++) {\n xsum += data[i].cx;\n ysum += data[i].cy;\n xysum += data[i].cx * data[i].cy;\n xxsum += data[i].cx * data[i].cx;\n xmin = Math.min(xmin, data[i].cx);\n xmax = Math.max(xmax, data[i].cx);\n }\n\n const a = len * xxsum !== xsum * xsum ?\n ((len * xysum - xsum * ysum) / (len * xxsum - xsum * xsum)) : 0;\n\n return {\n xmin,\n xmax,\n a,\n b: (ysum - a * xsum) / len,\n };\n};\n","export function shallowEqual(a, b) {\n /* eslint-disable no-restricted-syntax */\n for (const key in a) {\n if ({}.hasOwnProperty.call(a, key) &&\n (!{}.hasOwnProperty.call(b, key) || a[key] !== b[key])) {\n return false;\n }\n }\n for (const key in b) {\n if ({}.hasOwnProperty.call(b, key) && !{}.hasOwnProperty.call(a, key)) {\n return false;\n }\n }\n return true;\n}\n\nfunction shouldComponentUpdate(props, state) {\n return !shallowEqual(props, this.props) || !shallowEqual(state, this.state);\n}\n\nexport default function pureRenderDecorator(component) {\n // eslint-disable-next-line no-param-reassign\n component.prototype.shouldComponentUpdate = shouldComponentUpdate;\n}\n","import React, { Children } from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport { isNumber } from './DataUtils';\nimport { shallowEqual } from './PureRender';\n\nexport const PRESENTATION_ATTRIBUTES = {\n alignmentBaseline: PropTypes.string,\n angle: PropTypes.number,\n baselineShift: PropTypes.string,\n clip: PropTypes.string,\n clipPath: PropTypes.string,\n clipRule: PropTypes.string,\n color: PropTypes.string,\n colorInterpolation: PropTypes.string,\n colorInterpolationFilters: PropTypes.string,\n colorProfile: PropTypes.string,\n colorRendering: PropTypes.string,\n cursor: PropTypes.string,\n direction: PropTypes.oneOf(['ltr', 'rtl', 'inherit']),\n display: PropTypes.string,\n dominantBaseline: PropTypes.string,\n enableBackground: PropTypes.string,\n fill: PropTypes.string,\n fillOpacity: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n fillRule: PropTypes.oneOf(['nonzero', 'evenodd', 'inherit']),\n filter: PropTypes.string,\n floodColor: PropTypes.string,\n floodOpacity: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n font: PropTypes.string,\n fontFamily: PropTypes.string,\n fontSize: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n fontSizeAdjust: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n fontStretch: PropTypes.oneOf([\n 'normal', 'wider', 'narrower', 'ultra-condensed', 'extra-condensed',\n 'condensed', 'semi-condensed', 'semi-expanded', 'expanded',\n 'extra-expanded', 'ultra-expanded', 'inherit',\n ]),\n fontStyle: PropTypes.oneOf(['normal', 'italic', 'oblique', 'inherit']),\n fontVariant: PropTypes.oneOf(['normal', 'small-caps', 'inherit']),\n fontWeight: PropTypes.oneOf([\n 'normal', 'bold', 'bolder', 'lighter',\n 100, 200, 300, 400, 500, 600, 700, 800, 900, 'inherit',\n ]),\n glyphOrientationHorizontal: PropTypes.string,\n glyphOrientationVertical: PropTypes.string,\n imageRendering: PropTypes.oneOf([\n 'auto', 'optimizeSpeed', 'optimizeQuality', 'inherit',\n ]),\n kerning: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n letterSpacing: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n lightingColor: PropTypes.string,\n markerEnd: PropTypes.string,\n markerMid: PropTypes.string,\n markerStart: PropTypes.string,\n mask: PropTypes.string,\n opacity: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n overflow: PropTypes.oneOf(['visible', 'hidden', 'scroll', 'auto', 'inherit']),\n pointerEvents: PropTypes.oneOf([\n 'visiblePainted', 'visibleFill', 'visibleStroke', 'visible', 'painted',\n 'fill', 'stroke', 'all', 'none', 'inherit',\n ]),\n shapeRendering: PropTypes.oneOf([\n 'auto', 'optimizeSpeed', 'crispEdges', 'geometricPrecision', 'inherit',\n ]),\n stopColor: PropTypes.string,\n stopOpacity: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n stroke: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n strokeDasharray: PropTypes.string,\n strokeDashoffset: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n strokeLinecap: PropTypes.oneOf(['butt', 'round', 'square', 'inherit']),\n strokeLinejoin: PropTypes.oneOf(['miter', 'round', 'bevel', 'inherit']),\n strokeMiterlimit: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n strokeOpacity: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n strokeWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n textAnchor: PropTypes.oneOf(['start', 'middle', 'end', 'inherit']),\n textDecoration: PropTypes.oneOf([\n 'none', 'underline', 'overline', 'line-through', 'blink', 'inherit',\n ]),\n textRendering: PropTypes.oneOf([\n 'auto', 'optimizeSpeed', 'optimizeLegibility', 'geometricPrecision',\n 'inherit',\n ]),\n unicodeBidi: PropTypes.oneOf(['normal', 'embed', 'bidi-override', 'inherit']),\n visibility: PropTypes.oneOf(['visible', 'hidden', 'collapse', 'inherit']),\n wordSpacing: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n writingMode: PropTypes.oneOf([\n 'lr-tb', 'rl-tb', 'tb-rl', 'lr', 'rl', 'tb', 'inherit',\n ]),\n transform: PropTypes.string,\n style: PropTypes.object,\n\n width: PropTypes.number,\n height: PropTypes.number,\n dx: PropTypes.number,\n dy: PropTypes.number,\n x: PropTypes.number,\n y: PropTypes.number,\n r: PropTypes.number,\n // The radius of Rectangle\n radius: PropTypes.oneOfType([PropTypes.number, PropTypes.array]),\n};\n\nexport const EVENT_ATTRIBUTES = {\n onClick: PropTypes.func,\n onMouseDown: PropTypes.func,\n onMouseUp: PropTypes.func,\n onMouseOver: PropTypes.func,\n onMouseMove: PropTypes.func,\n onMouseOut: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onTouchEnd: PropTypes.func,\n onTouchMove: PropTypes.func,\n onTouchStart: PropTypes.func,\n onTouchCancel: PropTypes.func,\n};\n\nconst 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};\n\nexport const SCALE_TYPES = [\n 'auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point',\n 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold',\n];\n\nexport const LEGEND_TYPES = [\n 'plainline', 'line', 'square', 'rect', 'circle', 'cross',\n 'diamond', 'star', 'triangle', 'wye', 'none',\n];\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 const getDisplayName = (Comp) => {\n if (typeof Comp === 'string') {\n return Comp;\n }\n if (!Comp) { return ''; }\n return Comp.displayName || Comp.name || 'Component';\n};\n\n/*\n * Find and return all matched children by type. `type` can be a React element class or\n * string\n */\nexport const findAllByType = (children, type) => {\n const result = [];\n let types = [];\n\n if (_.isArray(type)) {\n types = type.map(t => getDisplayName(t));\n } else {\n types = [getDisplayName(type)];\n }\n\n React.Children.forEach(children, (child) => {\n const childType = child && child.type && (child.type.displayName || child.type.name);\n if (types.indexOf(childType) !== -1) {\n result.push(child);\n }\n });\n\n return result;\n};\n/*\n * Return the first matched child by type, return null otherwise.\n * `type` can be a React element class or string.\n */\nexport const findChildByType = (children, type) => {\n const result = findAllByType(children, type);\n\n return result && result[0];\n};\n\n/*\n * Create a new array of children excluding the ones matched the type\n */\nexport const withoutType = (children, type) => {\n const newChildren = [];\n let types;\n\n if (_.isArray(type)) {\n types = type.map(t => getDisplayName(t));\n } else {\n types = [getDisplayName(type)];\n }\n\n React.Children.forEach(children, (child) => {\n if (child && child.type && child.type.displayName &&\n types.indexOf(child.type.displayName) !== -1) {\n return;\n }\n newChildren.push(child);\n });\n\n return newChildren;\n};\n\n/**\n * get all the presentation attribute of svg element\n * @param {Object} el A react element or the props of a react element\n * @return {Object} attributes or null\n */\nexport const getPresentationAttributes = (el) => {\n if (!el || _.isFunction(el)) { return null; }\n\n const props = React.isValidElement(el) ? el.props : el;\n\n if (!_.isObject(props)) { return null; }\n\n let out = null;\n // eslint-disable-next-line no-restricted-syntax\n for (const i in props) {\n if ({}.hasOwnProperty.call(props, i) && PRESENTATION_ATTRIBUTES[i]) {\n if (!out) out = {};\n out[i] = props[i];\n }\n }\n return out;\n};\n\nconst getEventHandlerOfElement = (originalHandler, props) => (\n (e) => {\n originalHandler(props, e);\n\n return null;\n }\n);\n/**\n * get all the event attribute of svg element\n * @param {Object} el A react element or the props of a react element\n * @param {Function} newHandler New handler of event\n * @param {Boolean} wrapCallback Wrap callback and return more parameters or not\n * @return {Object} attributes or null\n */\nexport const filterEventAttributes = (el, newHandler, wrapCallback = false) => {\n if (!el || _.isFunction(el)) { return null; }\n\n const props = React.isValidElement(el) ? el.props : el;\n\n if (!_.isObject(props)) { return null; }\n\n let out = null;\n // eslint-disable-next-line no-restricted-syntax\n for (const i in props) {\n if ({}.hasOwnProperty.call(props, i) && EVENT_ATTRIBUTES[i]) {\n if (!out) out = {};\n out[i] = newHandler || (wrapCallback ? getEventHandlerOfElement(props[i], props) : props[i]);\n }\n }\n return out;\n};\n\nconst getEventHandlerOfChild = (originalHandler, data, index) => (\n (e) => {\n originalHandler(data, index, e);\n\n return null;\n }\n);\n\nexport const filterEventsOfChild = (props, data, index) => {\n if (!_.isObject(props)) { return null; }\n\n let out = null;\n // eslint-disable-next-line no-restricted-syntax\n for (const i in props) {\n if ({}.hasOwnProperty.call(props, i) && EVENT_ATTRIBUTES[i] && _.isFunction(props[i])) {\n if (!out) out = {};\n out[i] = getEventHandlerOfChild(props[i], data, index);\n }\n }\n return out;\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 const validateWidthHeight = (el) => {\n if (!el || !el.props) { return false; }\n const { width, height } = el.props;\n\n if (!isNumber(width) || width <= 0 ||\n !isNumber(height) || height <= 0) {\n return false;\n }\n\n return true;\n};\n\nexport const isSsr = () => (\n !(typeof window !== 'undefined' && window.document && window.document.createElement &&\n window.setTimeout)\n);\n\nconst SVG_TAGS = ['a', 'altGlyph', 'altGlyphDef', 'altGlyphItem', 'animate',\n 'animateColor', 'animateMotion', 'animateTransform', 'circle', 'clipPath',\n 'color-profile', 'cursor', 'defs', 'desc', 'ellipse', 'feBlend', 'feColormatrix',\n 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting',\n 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG',\n 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology',\n 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile',\n 'feTurbulence', 'filter', 'font', 'font-face', 'font-face-format', 'font-face-name',\n 'font-face-url', 'foreignObject', 'g', 'glyph', 'glyphRef', 'hkern', 'image',\n 'line', 'lineGradient', 'marker', 'mask', 'metadata', 'missing-glyph', 'mpath',\n 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'script',\n 'set', 'stop', 'style', 'svg', 'switch', 'symbol', 'text', 'textPath', 'title',\n 'tref', 'tspan', 'use', 'view', 'vkern'];\n\nconst isSvgElement = child => (\n child && child.type && _.isString(child.type) && SVG_TAGS.indexOf(child.type) >= 0\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 const filterSvgElements = (children) => {\n const svgElements = [];\n\n React.Children.forEach(children, (entry) => {\n if (entry && entry.type && _.isString(entry.type) &&\n SVG_TAGS.indexOf(entry.type) >= 0) {\n svgElements.push(entry);\n }\n });\n\n return svgElements;\n};\nexport const isSingleChildEqual = (nextChild, prevChild) => {\n if (_.isNil(nextChild) && _.isNil(prevChild)) {\n return true;\n } if (!_.isNil(nextChild) && !_.isNil(prevChild)) {\n const { children: nextChildren, ...nextProps } = nextChild.props || {};\n const { children: prevChildren, ...prevProps } = prevChild.props || {};\n\n if (nextChildren && prevChildren) {\n // eslint-disable-next-line no-use-before-define\n return shallowEqual(nextProps, prevProps) && isChildrenEqual(nextChildren, prevChildren);\n } if (!nextChildren && !prevChildren) {\n return shallowEqual(nextProps, prevProps);\n }\n\n return false;\n }\n\n return false;\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 const isChildrenEqual = (nextChildren, prevChildren) => {\n if (nextChildren === prevChildren) { return true; }\n\n if (Children.count(nextChildren) !== Children.count(prevChildren)) { return false; }\n const count = Children.count(nextChildren);\n\n if (count === 0) { return true; }\n if (count === 1) {\n return isSingleChildEqual(\n _.isArray(nextChildren) ? nextChildren[0] : nextChildren,\n _.isArray(prevChildren) ? prevChildren[0] : prevChildren,\n );\n }\n\n for (let i = 0; i < count; i++) {\n const nextChild = nextChildren[i];\n const prevChild = prevChildren[i];\n\n if (_.isArray(nextChild) || _.isArray(prevChild)) {\n if (!isChildrenEqual(nextChild, prevChild)) {\n return false;\n }\n } else if (!isSingleChildEqual(nextChild, prevChild)) {\n return false;\n }\n }\n\n return true;\n};\n\nexport const renderByOrder = (children, renderMap) => {\n let elements = [];\n const record = {};\n\n Children.forEach(children, (child, index) => {\n if (child && isSvgElement(child)) {\n elements.push(child);\n } else if (child && renderMap[getDisplayName(child.type)]) {\n const displayName = getDisplayName(child.type);\n const { handler, once } = renderMap[displayName];\n\n if ((once && !record[displayName]) || !once) {\n const results = handler(child, displayName, index);\n\n if (_.isArray(results)) {\n elements = [elements, ...results];\n } else {\n elements.push(results);\n }\n\n record[displayName] = true;\n }\n }\n });\n\n return elements;\n};\n\nexport const getReactEventByType = (e) => {\n const type = e && e.type;\n\n if (type && REACT_BROWSER_EVENT_MAP[type]) {\n return REACT_BROWSER_EVENT_MAP[type];\n }\n\n return null;\n};\n\nexport const parseChildIndex = (child, children) => {\n let result = -1;\n Children.forEach(children, (entry, index) => {\n if (entry === child) {\n result = index;\n }\n });\n\n return result;\n};\n","/**\n * @fileOverview Surface\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { getPresentationAttributes } from '../util/ReactUtils';\n\nconst propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n viewBox: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n }),\n className: PropTypes.string,\n style: PropTypes.object,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n};\nfunction Surface(props) {\n const { children, width, height, viewBox, className, style, ...others } = props;\n const svgView = viewBox || { width, height, x: 0, y: 0 };\n const layerClass = classNames('recharts-surface', className);\n const attrs = getPresentationAttributes(others);\n\n return (\n <svg\n {...attrs}\n className={layerClass}\n width={width}\n height={height}\n style={style}\n viewBox={`${svgView.x} ${svgView.y} ${svgView.width} ${svgView.height}`}\n version=\"1.1\"\n >\n {children}\n </svg>\n );\n}\n\nSurface.propTypes = propTypes;\n\nexport default Surface;\n","/**\n * @fileOverview Layer\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\n\nconst propTypes = {\n className: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n};\n\nfunction Layer(props) {\n const { children, className, ...others } = props;\n const layerClass = classNames('recharts-layer', className);\n\n return (\n <g className={layerClass} {...others}>\n {children}\n </g>\n );\n}\n\nLayer.propTypes = propTypes;\n\nexport default Layer;\n","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var 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 the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"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._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var 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._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r;\n var 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 the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"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._ += \"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._ += \"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._ += \"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: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var 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","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; // proceed\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 {path} from \"d3-path\";\nimport constant from \"./constant\";\nimport curveLinear from \"./curve/linear\";\nimport {x as pointX, y as pointY} from \"./point\";\n\nexport default function() {\n var x = pointX,\n y = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function line(data) {\n var i,\n n = 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 {path} from \"d3-path\";\nimport constant from \"./constant\";\nimport curveLinear from \"./curve/linear\";\nimport line from \"./line\";\nimport {x as pointX, y as pointY} from \"./point\";\n\nexport default function() {\n var x0 = pointX,\n x1 = null,\n y0 = constant(0),\n y1 = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function area(data) {\n var i,\n j,\n k,\n n = 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 curveLinear from \"./linear\";\n\nexport var curveRadialLinear = curveRadial(curveLinear);\n\nfunction Radial(curve) {\n this._curve = curve;\n}\n\nRadial.prototype = {\n areaStart: function() {\n this._curve.areaStart();\n },\n areaEnd: function() {\n this._curve.areaEnd();\n },\n lineStart: function() {\n this._curve.lineStart();\n },\n lineEnd: function() {\n this._curve.lineEnd();\n },\n point: function(a, r) {\n this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n }\n};\n\nexport default function curveRadial(curve) {\n\n function radial(context) {\n return new Radial(curve(context));\n }\n\n radial._curve = curve;\n\n return radial;\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial\";\nimport line from \"./line\";\n\nexport function lineRadial(l) {\n var c = l.curve;\n\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n\n l.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return l;\n}\n\nexport default function() {\n return lineRadial(line().curve(curveRadialLinear));\n}\n","export var slice = Array.prototype.slice;\n","import {pi, tau} from \"../math\";\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","export default {\n draw: function(context, size) {\n var r = Math.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","var tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\n\nexport default {\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2),\n 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 {pi, tau} from \"../math\";\n\nvar ka = 0.89081309152928522810,\n kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),\n kx = Math.sin(tau / 10) * kr,\n ky = -Math.cos(tau / 10) * kr;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = tau * i / 5,\n c = Math.cos(a),\n s = Math.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","export default {\n draw: function(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","var sqrt3 = Math.sqrt(3);\n\nexport default {\n draw: function(context, size) {\n var y = -Math.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","var c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n 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","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); // proceed\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); // proceed\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\";\nimport {point} from \"./basis\";\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\";\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; // proceed\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 {Basis} from \"./basis\";\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\nexport default (function custom(beta) {\n\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n\n bundle.beta = function(beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85);\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nexport function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.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 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point(this, 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; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import noop from \"../noop\";\nimport {point} from \"./cardinal\";\n\nexport function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\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._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {point} from \"./cardinal\";\n\nexport function CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.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 = this._x2 =\n this._y0 = this._y1 = this._y2 = 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; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {epsilon} from \"../math\";\nimport {Cardinal} from \"./cardinal\";\n\nexport function point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.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 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: this.point(this._x2, this._y2); 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\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\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; // proceed\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalClosed} from \"./cardinalClosed\";\nimport noop from \"../noop\";\nimport {point} from \"./catmullRom\";\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalOpen} from \"./cardinalOpen\";\nimport {point} from \"./catmullRom\";\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.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 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\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\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // proceed\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import noop from \"../noop\";\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; // proceed\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 {slice} from \"./array\";\nimport constant from \"./constant\";\nimport offsetNone from \"./offset/none\";\nimport orderNone from \"./order/none\";\n\nfunction stackValue(d, key) {\n return d[key];\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 kz = keys.apply(this, arguments),\n i,\n m = data.length,\n n = kz.length,\n sz = new Array(n),\n oz;\n\n for (i = 0; i < n; ++i) {\n for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) {\n si[j] = sij = [0, +value(data[j], ki, j, data)];\n sij.data = data[j];\n }\n si.key = ki;\n }\n\n for (i = 0, oz = 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(slice.call(_)), 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(slice.call(_)), 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 ascending from \"./ascending\";\n\nexport default function(series) {\n return ascending(series).reverse();\n}\n","/**\n * @fileOverview Curve\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { symbol as shapeSymbol, symbolCircle, symbolCross, symbolDiamond,\n symbolSquare, symbolStar, symbolTriangle, symbolWye } from 'd3-shape';\nimport classNames from 'classnames';\nimport pureRender from '../util/PureRender';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes,\n filterEventAttributes } from '../util/ReactUtils';\n\nconst SYMBOL_FACTORIES = {\n symbolCircle, symbolCross, symbolDiamond,\n symbolSquare, symbolStar, symbolTriangle, symbolWye,\n};\nconst RADIAN = Math.PI / 180;\n\nconst getSymbolFactory = (type) => {\n const name = `symbol${type.slice(0, 1).toUpperCase()}${type.slice(1)}`;\n\n return SYMBOL_FACTORIES[name] || symbolCircle;\n};\n\nconst calculateAreaSize = (size, sizeType, type) => {\n if (sizeType === 'area') { 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 const angle = 18 * RADIAN;\n\n return 1.25 * size * size * (\n Math.tan(angle) - Math.tan(angle * 2) * Math.tan(angle) ** 2\n );\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};\n\n@pureRender\nclass Symbols extends Component {\n\n static displayName = 'Symbols';\n\n static propTypes = {\n ...PRESENTATION_ATTRIBUTES,\n className: PropTypes.string,\n type: PropTypes.oneOf(['circle', 'cross', 'diamond', 'square', 'star', 'triangle', 'wye']),\n cx: PropTypes.number,\n cy: PropTypes.number,\n size: PropTypes.number,\n sizeType: PropTypes.oneOf(['area', 'diameter']),\n };\n\n static defaultProps = {\n type: 'circle',\n size: 64,\n sizeType: 'area',\n };\n\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n getPath() {\n const { size, sizeType, type } = this.props;\n const symbolFactory = getSymbolFactory(type);\n const symbol = shapeSymbol().type(symbolFactory)\n .size(calculateAreaSize(size, sizeType, type));\n\n return symbol();\n }\n\n render() {\n const { className, cx, cy, size } = this.props;\n\n if (cx === +cx && cy === +cy && size === +size) {\n return (\n <path\n {...getPresentationAttributes(this.props)}\n {...filterEventAttributes(this.props)}\n className={classNames('recharts-symbols', className)}\n transform={`translate(${cx}, ${cy})`}\n d={this.getPath()}\n />\n );\n }\n\n return null;\n }\n}\n\nexport default Symbols;\n","import {path} from \"d3-path\";\nimport circle from \"./symbol/circle\";\nimport cross from \"./symbol/cross\";\nimport diamond from \"./symbol/diamond\";\nimport star from \"./symbol/star\";\nimport square from \"./symbol/square\";\nimport triangle from \"./symbol/triangle\";\nimport wye from \"./symbol/wye\";\nimport constant from \"./constant\";\n\nexport var symbols = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\nexport default function() {\n var type = constant(circle),\n size = constant(64),\n context = null;\n\n function symbol() {\n var 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","/**\n * @fileOverview Default Legend Content\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport pureRender from '../util/PureRender';\nimport Surface from '../container/Surface';\nimport Symbols from '../shape/Symbols';\nimport { filterEventsOfChild, LEGEND_TYPES } from '../util/ReactUtils';\n\nconst SIZE = 32;\nconst ICON_TYPES = LEGEND_TYPES.filter(type => type !== 'none');\n\n@pureRender\nclass DefaultLegendContent extends Component {\n static displayName = 'Legend';\n\n static propTypes = {\n content: PropTypes.element,\n iconSize: PropTypes.number,\n iconType: PropTypes.oneOf(ICON_TYPES),\n layout: PropTypes.oneOf(['horizontal', 'vertical']),\n align: PropTypes.oneOf(['center', 'left', 'right']),\n verticalAlign: PropTypes.oneOf(['top', 'bottom', 'middle']),\n payload: PropTypes.arrayOf(PropTypes.shape({\n value: PropTypes.any,\n id: PropTypes.any,\n type: PropTypes.oneOf(LEGEND_TYPES),\n })),\n inactiveColor: PropTypes.string,\n formatter: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onClick: PropTypes.func,\n };\n\n static defaultProps = {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'middle',\n inactiveColor: '#ccc',\n };\n\n /**\n * Render the path of icon\n * @param {Object} data Data of each legend item\n * @return {String} Path element\n */\n renderIcon(data) {\n const { inactiveColor } = this.props;\n const halfSize = SIZE / 2;\n const sixthSize = SIZE / 6;\n const thirdSize = SIZE / 3;\n const color = data.inactive ? inactiveColor : data.color;\n\n if (data.type === 'plainline') {\n return (\n <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 (\n <path\n strokeWidth={4}\n fill=\"none\"\n stroke={color}\n d={`M0,${halfSize}h${thirdSize}\n A${sixthSize},${sixthSize},0,1,1,${2 * thirdSize},${halfSize}\n H${SIZE}M${2 * thirdSize},${halfSize}\n A${sixthSize},${sixthSize},0,1,1,${thirdSize},${halfSize}`}\n className=\"recharts-legend-icon\"\n />\n );\n } if (data.type === 'rect') {\n return (\n <path\n stroke=\"none\"\n fill={color}\n d={`M0,${SIZE / 8}h${SIZE}v${SIZE * 3 / 4}h${-SIZE}z`}\n className=\"recharts-legend-icon\"\n />\n );\n }\n\n return (\n <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 /**\n * Draw items of legend\n * @return {ReactElement} Items\n */\n renderItems() {\n const { payload, iconSize, layout, formatter } = this.props;\n const viewBox = { x: 0, y: 0, width: SIZE, height: SIZE };\n const itemStyle = {\n display: layout === 'horizontal' ? 'inline-block' : 'block',\n marginRight: 10,\n };\n const svgStyle = { display: 'inline-block', verticalAlign: 'middle', marginRight: 4 };\n\n return payload.map((entry, i) => {\n const finalFormatter = entry.formatter || formatter;\n const className = classNames({\n 'recharts-legend-item': true,\n [`legend-item-${i}`]: true,\n inactive: entry.inactive,\n });\n\n if (entry.type === 'none') {\n return null;\n }\n\n return (\n <li\n className={className}\n style={itemStyle}\n key={`legend-item-${i}`}\n {...filterEventsOfChild(this.props, entry, i)}\n >\n <Surface width={iconSize} height={iconSize} viewBox={viewBox} style={svgStyle}>\n {this.renderIcon(entry)}\n </Surface>\n <span className=\"recharts-legend-item-text\">\n {finalFormatter ? finalFormatter(entry.value, entry, i) : entry.value}\n </span>\n </li>\n );\n });\n }\n\n render() {\n const { payload, layout, align } = this.props;\n\n if (!payload || !payload.length) { return null; }\n\n const finalStyle = {\n padding: 0,\n margin: 0,\n textAlign: layout === 'horizontal' ? align : 'left',\n };\n\n return (\n <ul className=\"recharts-default-legend\" style={finalStyle}>\n {this.renderItems()}\n </ul>\n );\n }\n}\n\nexport default DefaultLegendContent;\n","/**\n * @fileOverview Legend\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport pureRender from '../util/PureRender';\nimport DefaultLegendContent from './DefaultLegendContent';\nimport { isNumber } from '../util/DataUtils';\nimport { LEGEND_TYPES } from '../util/ReactUtils';\n\n\nconst renderContent = (content, props) => {\n if (React.isValidElement(content)) {\n return React.cloneElement(content, props);\n } if (_.isFunction(content)) {\n return content(props);\n }\n\n return React.createElement(DefaultLegendContent, props);\n};\n\nconst EPS = 1;\nconst ICON_TYPES = LEGEND_TYPES.filter(type => type !== 'none');\n\n@pureRender\nclass Legend extends Component {\n static displayName = 'Legend';\n\n static propTypes = {\n content: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n wrapperStyle: PropTypes.object,\n chartWidth: PropTypes.number,\n chartHeight: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n iconSize: PropTypes.number,\n iconType: PropTypes.oneOf(ICON_TYPES),\n layout: PropTypes.oneOf(['horizontal', 'vertical']),\n align: PropTypes.oneOf(['center', 'left', 'right']),\n verticalAlign: PropTypes.oneOf(['top', 'bottom', 'middle']),\n margin: PropTypes.shape({\n top: PropTypes.number,\n left: PropTypes.number,\n bottom: PropTypes.number,\n right: PropTypes.number,\n }),\n payload: PropTypes.arrayOf(PropTypes.shape({\n value: PropTypes.any,\n id: PropTypes.any,\n type: PropTypes.oneOf(LEGEND_TYPES),\n })),\n formatter: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onClick: PropTypes.func,\n onBBoxUpdate: PropTypes.func,\n };\n\n static defaultProps = {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'bottom',\n };\n\n static getWithHeight(item, chartWidth) {\n const { layout } = item.props;\n\n if (layout === 'vertical' && isNumber(item.props.height)) {\n return {\n height: item.props.height,\n };\n } if (layout === 'horizontal') {\n return {\n width: item.props.width || chartWidth,\n };\n }\n\n return null;\n }\n\n state = {\n boxWidth: -1,\n boxHeight: -1,\n };\n\n componentDidMount() {\n this.updateBBox();\n }\n\n componentDidUpdate() {\n this.updateBBox();\n }\n\n getBBox() {\n const { boxWidth, boxHeight } = this.state;\n\n if (boxWidth >= 0 && boxHeight >= 0) {\n return { width: boxWidth, height: boxHeight };\n }\n\n return null;\n }\n\n getDefaultPosition(style) {\n const { layout, align, verticalAlign, margin, chartWidth, chartHeight } = this.props;\n let hPos, vPos;\n\n if (!style || ((style.left === undefined || style.left === null) && (\n style.right === undefined || style.right === null))) {\n if (align === 'center' && layout === 'vertical') {\n const box = this.getBBox() || { width: 0 };\n hPos = { left: ((chartWidth || 0) - box.width) / 2 };\n } else {\n hPos = align === 'right' ?\n { right: (margin && margin.right) || 0 } :\n { left: (margin && margin.left) || 0 };\n }\n }\n\n if (!style || ((style.top === undefined || style.top === null) && (\n style.bottom === undefined || style.bottom === null))) {\n if (verticalAlign === 'middle') {\n const box = this.getBBox() || { height: 0 };\n vPos = { top: ((chartHeight || 0) - box.height) / 2 };\n } else {\n vPos = verticalAlign === 'bottom' ?\n { bottom: (margin && margin.bottom) || 0 } :\n { top: (margin && margin.top) || 0 };\n }\n }\n\n return { ...hPos, ...vPos };\n }\n\n updateBBox() {\n const { boxWidth, boxHeight } = this.state;\n const { onBBoxUpdate } = this.props;\n\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n const box = this.wrapperNode.getBoundingClientRect();\n\n if (Math.abs(box.width - boxWidth) > EPS || Math.abs(box.height - boxHeight) > EPS) {\n this.setState({\n boxWidth: box.width,\n boxHeight: box.height,\n }, () => {\n if (onBBoxUpdate) {\n onBBoxUpdate(box);\n }\n });\n }\n } else if (boxWidth !== -1 || boxHeight !== -1) {\n this.setState({\n boxWidth: -1,\n boxHeight: -1,\n }, () => {\n if (onBBoxUpdate) {\n onBBoxUpdate(null);\n }\n });\n }\n }\n\n render() {\n const { content, width, height, wrapperStyle } = this.props;\n const outerStyle = {\n position: 'absolute',\n width: width || 'auto',\n height: height || 'auto',\n ...this.getDefaultPosition(wrapperStyle),\n ...wrapperStyle,\n };\n\n return (\n <div\n className=\"recharts-legend-wrapper\"\n style={outerStyle}\n ref={(node) => { this.wrapperNode = node; }}\n >\n {renderContent(content, this.props)}\n </div>\n );\n }\n}\n\nexport default Legend;\n","/**\n * @fileOverview Default Tooltip Content\n */\nimport _ from 'lodash';\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport pureRender from '../util/PureRender';\nimport { isNumOrStr } from '../util/DataUtils';\n\nconst defaultFormatter = value => (\n (_.isArray(value) && isNumOrStr(value[0]) && isNumOrStr(value[1])) ?\n value.join(' ~ ') :\n value\n);\n\n@pureRender\nclass DefaultTooltipContent extends Component {\n\n static displayName = 'DefaultTooltipContent';\n\n static propTypes = {\n separator: PropTypes.string,\n wrapperClassName: PropTypes.string,\n labelClassName: PropTypes.string,\n formatter: PropTypes.func,\n contentStyle: PropTypes.object,\n itemStyle: PropTypes.object,\n labelStyle: PropTypes.object,\n labelFormatter: PropTypes.func,\n label: PropTypes.any,\n payload: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.any,\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.array]),\n unit: PropTypes.any,\n })),\n itemSorter: PropTypes.func,\n };\n\n static defaultProps = {\n separator: ' : ',\n contentStyle: {},\n itemStyle: {},\n labelStyle: {},\n };\n\n renderContent() {\n const { payload, separator, formatter, itemStyle, itemSorter } = this.props;\n\n if (payload && payload.length) {\n const listStyle = { padding: 0, margin: 0 };\n\n const items = payload.sort(itemSorter)\n .map((entry, i) => {\n const finalItemStyle = {\n display: 'block',\n paddingTop: 4,\n paddingBottom: 4,\n color: entry.color || '#000',\n ...itemStyle,\n };\n const hasName = isNumOrStr(entry.name);\n const finalFormatter = entry.formatter || formatter || defaultFormatter;\n\n return (\n <li className=\"recharts-tooltip-item\" key={`tooltip-item-${i}`} style={finalItemStyle}>\n {hasName ? <span className=\"recharts-tooltip-item-name\">{entry.name}</span> : null}\n {\n hasName ?\n <span className=\"recharts-tooltip-item-separator\">{separator}</span> :\n null\n }\n <span className=\"recharts-tooltip-item-value\">\n {finalFormatter ? finalFormatter(entry.value, entry.name, entry, i) : entry.value}\n </span>\n <span className=\"recharts-tooltip-item-unit\">{entry.unit || ''}</span>\n </li>\n );\n });\n\n return <ul className=\"recharts-tooltip-item-list\" style={listStyle}>{items}</ul>;\n }\n\n return null;\n }\n\n render() {\n const {\n wrapperClassName,\n contentStyle,\n labelClassName,\n labelStyle,\n label,\n labelFormatter,\n } = this.props;\n const finalStyle = {\n margin: 0,\n padding: 10,\n backgroundColor: '#fff',\n border: '1px solid #ccc',\n whiteSpace: 'nowrap',\n ...contentStyle,\n };\n const finalLabelStyle = {\n margin: 0,\n ...labelStyle,\n };\n const hasLabel = isNumOrStr(label);\n let finalLabel = hasLabel ? label : '';\n const wrapperCN = classNames('recharts-default-tooltip', wrapperClassName);\n const labelCN = classNames('recharts-tooltip-label', labelClassName);\n\n if (hasLabel && labelFormatter) { finalLabel = labelFormatter(label); }\n\n return (\n <div className={wrapperCN} style={finalStyle}>\n <p className={labelCN} style={finalLabelStyle}>{finalLabel}</p>\n {this.renderContent()}\n </div>\n );\n }\n}\n\nexport default DefaultTooltipContent;\n","/**\n * @fileOverview Tooltip\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { translateStyle } from 'react-smooth';\nimport _ from 'lodash';\nimport classNames from 'classnames';\nimport DefaultTooltipContent from './DefaultTooltipContent';\nimport { isSsr } from '../util/ReactUtils';\nimport { isNumber } from '../util/DataUtils';\nimport pureRender from '../util/PureRender';\n\nconst CLS_PREFIX = 'recharts-tooltip-wrapper';\n\nconst EPS = 1;\n\nconst propTypes = {\n content: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n viewBox: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n }),\n\n active: PropTypes.bool,\n separator: PropTypes.string,\n formatter: PropTypes.func,\n offset: PropTypes.number,\n\n itemStyle: PropTypes.object,\n labelStyle: PropTypes.object,\n wrapperStyle: PropTypes.object,\n contentStyle: PropTypes.object,\n cursor: PropTypes.oneOfType([PropTypes.bool, PropTypes.element, PropTypes.object]),\n\n coordinate: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n }),\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n }),\n\n label: PropTypes.any,\n payload: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.any,\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.array]),\n unit: PropTypes.any,\n })),\n\n isAnimationActive: PropTypes.bool,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf([\n 'ease',\n 'ease-in',\n 'ease-out',\n 'ease-in-out',\n 'linear',\n ]),\n itemSorter: PropTypes.func,\n filterNull: PropTypes.bool,\n useTranslate3d: PropTypes.bool,\n};\n\nconst defaultProps = {\n active: false,\n offset: 10,\n viewBox: { x1: 0, x2: 0, y1: 0, y2: 0 },\n coordinate: { x: 0, y: 0 },\n cursorStyle: {},\n separator: ' : ',\n wrapperStyle: {},\n contentStyle: {},\n itemStyle: {},\n labelStyle: {},\n cursor: true,\n isAnimationActive: !isSsr(),\n animationEasing: 'ease',\n animationDuration: 400,\n itemSorter: () => -1,\n filterNull: true,\n useTranslate3d: false,\n};\n\nconst renderContent = (content, props) => {\n if (React.isValidElement(content)) {\n return React.cloneElement(content, props);\n } if (_.isFunction(content)) {\n return content(props);\n }\n\n return React.createElement(DefaultTooltipContent, props);\n};\n\n@pureRender\nclass Tooltip extends Component {\n static displayName = 'Tooltip';\n\n static propTypes = propTypes;\n\n static defaultProps = defaultProps;\n\n state = {\n boxWidth: -1,\n boxHeight: -1,\n };\n\n componentDidMount() {\n this.updateBBox();\n }\n\n componentDidUpdate() {\n this.updateBBox();\n }\n\n updateBBox() {\n const { boxWidth, boxHeight } = this.state;\n\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n const box = this.wrapperNode.getBoundingClientRect();\n\n if (Math.abs(box.width - boxWidth) > EPS || Math.abs(box.height - boxHeight) > EPS) {\n this.setState({\n boxWidth: box.width,\n boxHeight: box.height,\n });\n }\n } else if (boxWidth !== -1 || boxHeight !== -1) {\n this.setState({\n boxWidth: -1,\n boxHeight: -1,\n });\n }\n }\n\n render() {\n const { payload, isAnimationActive, animationDuration, animationEasing,\n filterNull } = this.props;\n const finalPayload = filterNull && payload && payload.length ?\n payload.filter(entry => !_.isNil(entry.value)) : payload;\n const hasPayload = finalPayload && finalPayload.length;\n const { content, viewBox, coordinate, position, active, offset, wrapperStyle } = this.props;\n let outerStyle = {\n pointerEvents: 'none',\n visibility: active && hasPayload ? 'visible' : 'hidden',\n position: 'absolute',\n top: 0,\n ...wrapperStyle,\n };\n let translateX, translateY;\n\n if (position && isNumber(position.x) && isNumber(position.y)) {\n translateX = position.x;\n translateY = position.y;\n } else {\n const { boxWidth, boxHeight } = this.state;\n\n if (boxWidth > 0 && boxHeight > 0 && coordinate) {\n translateX = position && isNumber(position.x) ? position.x : Math.max(\n coordinate.x + boxWidth + offset > (viewBox.x + viewBox.width) ?\n coordinate.x - boxWidth - offset :\n coordinate.x + offset, viewBox.x);\n\n translateY = position && isNumber(position.y) ? position.y : Math.max(\n coordinate.y + boxHeight + offset > (viewBox.y + viewBox.height) ?\n coordinate.y - boxHeight - offset :\n coordinate.y + offset, viewBox.y);\n } else {\n outerStyle.visibility = 'hidden';\n }\n }\n\n outerStyle = {\n ...outerStyle,\n ...translateStyle({\n transform: this.props.useTranslate3d ? `translate3d(${translateX}px, ${translateY}px, 0)` : `translate(${translateX}px, ${translateY}px)`,\n }),\n };\n\n if (isAnimationActive && active) {\n outerStyle = {\n ...outerStyle,\n ...translateStyle({\n transition: `transform ${animationDuration}ms ${animationEasing}`,\n }),\n };\n }\n\n const cls = classNames(CLS_PREFIX, {\n [`${CLS_PREFIX}-right`]: isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX >= coordinate.x,\n [`${CLS_PREFIX}-left`]: isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX < coordinate.x,\n [`${CLS_PREFIX}-bottom`]: isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY >= coordinate.y,\n [`${CLS_PREFIX}-top`]: isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY < coordinate.y,\n });\n\n return (\n <div\n className={cls}\n style={outerStyle}\n ref={(node) => { this.wrapperNode = node; }}\n >\n {renderContent(content, { ...this.props, payload: finalPayload })}\n </div>\n );\n }\n}\n\nexport default Tooltip;\n","/**\n * @fileOverview Wrapper component to make charts adapt to the size of parent * DOM\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport ReactResizeDetector from 'react-resize-detector';\nimport _ from 'lodash';\nimport { isPercent } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\n\nclass ResponsiveContainer extends Component {\n static displayName = 'ResponsiveContainer';\n\n static propTypes = {\n aspect: PropTypes.number,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n minHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n minWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n children: PropTypes.node.isRequired,\n debounce: PropTypes.number,\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n };\n\n static defaultProps = {\n width: '100%',\n height: '100%',\n debounce: 0,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n containerWidth: -1,\n containerHeight: -1,\n };\n\n this.handleResize = props.debounce > 0 ?\n _.debounce(this.updateDimensionsImmediate, props.debounce) :\n this.updateDimensionsImmediate;\n }\n\n /* eslint-disable react/no-did-mount-set-state */\n componentDidMount() {\n this.mounted = true;\n\n const size = this.getContainerSize();\n\n if (size) {\n this.setState(size);\n }\n }\n\n componentWillUnmount() {\n this.mounted = false;\n }\n\n getContainerSize() {\n if (!this.container) { return null; }\n\n return {\n containerWidth: this.container.clientWidth,\n containerHeight: this.container.clientHeight,\n };\n }\n\n updateDimensionsImmediate = () => {\n if (!this.mounted) { return; }\n\n const newSize = this.getContainerSize();\n\n if (newSize) {\n const { containerWidth: oldWidth, containerHeight: oldHeight } = this.state;\n const { containerWidth, containerHeight } = newSize;\n\n if (containerWidth !== oldWidth || containerHeight !== oldHeight) {\n this.setState({ containerWidth, containerHeight });\n }\n }\n };\n\n renderChart() {\n const { containerWidth, containerHeight } = this.state;\n\n if (containerWidth < 0 || containerHeight < 0) { return null; }\n\n const { aspect, width, height, minWidth, minHeight, maxHeight, children } = this.props;\n\n warn(isPercent(width) || isPercent(height),\n `The width(%s) and height(%s) are both fixed numbers,\n maybe you don't need to use a ResponsiveContainer.`,\n width, height\n );\n\n warn(!aspect || aspect > 0,\n 'The aspect(%s) must be greater than zero.',\n aspect);\n\n const calculatedWidth = isPercent(width) ? containerWidth : width;\n let calculatedHeight = isPercent(height) ? containerHeight : height;\n\n if (aspect && aspect > 0) {\n // Preserve the desired aspect ratio\n calculatedHeight = calculatedWidth / aspect;\n // if maxHeight is set, overwrite if calculatedHeight is greater than maxHeight\n if (maxHeight && (calculatedHeight > maxHeight)) {\n calculatedHeight = maxHeight;\n }\n }\n\n warn(calculatedWidth > 0 || calculatedHeight > 0,\n `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.`,\n calculatedWidth, calculatedHeight, width, height, minWidth, minHeight, aspect\n );\n\n return React.cloneElement(children, {\n width: calculatedWidth,\n height: calculatedHeight,\n });\n\n }\n\n render() {\n const { minWidth, minHeight, width, height, maxHeight, id, className } = this.props;\n const style = { width, height, minWidth, minHeight, maxHeight };\n\n return (\n <div\n id={id}\n className={classNames('recharts-responsive-container', className)}\n style={style}\n ref={(node) => { this.container = node; }}\n >\n {this.renderChart()}\n <ReactResizeDetector handleWidth handleHeight onResize={this.handleResize} />\n </div>\n );\n }\n}\n\nexport default ResponsiveContainer;\n","/**\n * @fileOverview Cross\n */\nimport { PRESENTATION_ATTRIBUTES } from '../util/ReactUtils';\n\nfunction Cell() {\n return null;\n}\n\nCell.propTypes = {\n ...PRESENTATION_ATTRIBUTES,\n};\nCell.displayName = 'Cell';\n\nexport default Cell;\n","import { isSsr } from './ReactUtils';\n\nconst stringCache = {\n widthCache: {},\n cacheCount: 0,\n};\nconst MAX_CACHE_NUM = 2000;\nconst SPAN_STYLE = {\n position: 'absolute',\n top: '-20000px',\n left: 0,\n padding: 0,\n margin: 0,\n border: 'none',\n whiteSpace: 'pre',\n};\nconst STYLE_LIST = [\n 'minWidth', 'maxWidth', 'width', 'minHeight', 'maxHeight', 'height',\n 'top', 'left', 'fontSize', 'lineHeight', 'padding', 'margin',\n 'paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom',\n 'marginLeft', 'marginRight', 'marginTop', 'marginBottom',\n];\nconst MEASUREMENT_SPAN_ID = 'recharts_measurement_span';\n\nfunction autoCompleteStyle(name, value) {\n if (STYLE_LIST.indexOf(name) >= 0 && value === +value) {\n return `${value}px`;\n }\n\n return value;\n}\n\nfunction camelToMiddleLine(text) {\n const strs = text.split('');\n\n const formatStrs = strs.reduce((result, entry) => {\n if (entry === entry.toUpperCase()) {\n return [...result, '-', entry.toLowerCase()];\n }\n\n return [...result, entry];\n }, []);\n\n return formatStrs.join('');\n}\n\nexport const getStyleString = style => (\n Object.keys(style).reduce((result, s) => (\n `${result}${camelToMiddleLine(s)}:${autoCompleteStyle(s, style[s])};`\n ), '')\n);\n\nexport const getStringSize = (text, style = {}) => {\n if (text === undefined || text === null || isSsr()) { return { width: 0, height: 0 }; }\n\n const str = `${text}`;\n const styleString = getStyleString(style);\n const cacheKey = `${str}-${styleString}`;\n\n if (stringCache.widthCache[cacheKey]) { return stringCache.widthCache[cacheKey]; }\n\n try {\n let measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);\n if (!measurementSpan) {\n measurementSpan = document.createElement('span');\n measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);\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 const measurementSpanStyle = { ...SPAN_STYLE, ...style };\n Object.keys(measurementSpanStyle).map((styleKey) => {\n measurementSpan.style[styleKey] = measurementSpanStyle[styleKey];\n return styleKey;\n });\n\n measurementSpan.textContent = str;\n\n const rect = measurementSpan.getBoundingClientRect();\n const result = { width: rect.width, height: rect.height };\n\n stringCache.widthCache[cacheKey] = result;\n\n if (++stringCache.cacheCount > MAX_CACHE_NUM) {\n stringCache.cacheCount = 0;\n stringCache.widthCache = {};\n }\n\n return result;\n } catch (e) {\n return { width: 0, height: 0 };\n }\n};\n\nexport const getOffset = (el) => {\n const html = el.ownerDocument.documentElement;\n let box = { top: 0, left: 0 };\n\n // If we don't have gBCR, just use 0,0 rather than error\n // BlackBerry 5, iOS 3 (original iPhone)\n if (typeof el.getBoundingClientRect !== 'undefined') {\n box = el.getBoundingClientRect();\n }\n\n return {\n top: box.top + window.pageYOffset - html.clientTop,\n left: box.left + window.pageXOffset - html.clientLeft,\n };\n};\n\n/**\n * Calculate coordinate of cursor in chart\n * @param {Object} event Event object\n * @param {Object} offset The offset of main part in the svg element\n * @return {Object} {chartX, chartY}\n */\nexport const calculateChartCoordinate = (event, offset) => (\n {\n chartX: Math.round(event.pageX - offset.left),\n chartY: Math.round(event.pageY - offset.top),\n }\n);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport reduceCSSCalc from 'reduce-css-calc';\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport { isNumber, isNumOrStr } from '../util/DataUtils';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes, isSsr } from '../util/ReactUtils';\nimport { getStringSize } from '../util/DOMUtils';\n\nconst BREAKING_SPACES = /[ \\f\\n\\r\\t\\v\\u2028\\u2029]+/;\n\nconst calculateWordWidths = (props) => {\n try {\n const words = !_.isNil(props.children) ? props.children.toString().split(BREAKING_SPACES) : [];\n const wordsWithComputedWidth = words.map(word => (\n { word, width: getStringSize(word, props.style).width }\n ));\n\n const spaceWidth = getStringSize('\\u00A0', props.style).width;\n\n return { wordsWithComputedWidth, spaceWidth };\n } catch (e) {\n return null;\n }\n};\n\n\nclass Text extends Component {\n\n static propTypes = {\n ...PRESENTATION_ATTRIBUTES,\n scaleToFit: PropTypes.bool,\n angle: PropTypes.number,\n textAnchor: PropTypes.oneOf(['start', 'middle', 'end', 'inherit']),\n verticalAnchor: PropTypes.oneOf(['start', 'middle', 'end']),\n style: PropTypes.object,\n };\n\n static defaultProps = {\n x: 0,\n y: 0,\n lineHeight: '1em',\n capHeight: '0.71em', // Magic number from d3\n scaleToFit: false,\n textAnchor: 'start',\n verticalAnchor: 'end', // Maintain compat with existing charts / default SVG behavior\n };\n\n state = {\n wordsByLines: [],\n };\n\n componentWillMount() {\n this.updateWordsByLines(this.props, true);\n }\n\n componentWillReceiveProps(nextProps) {\n const needCalculate = (\n this.props.children !== nextProps.children ||\n this.props.style !== nextProps.style\n );\n this.updateWordsByLines(nextProps, needCalculate);\n }\n\n updateWordsByLines(props, needCalculate) {\n // Only perform calculations if using features that require them (multiline, scaleToFit)\n if ((props.width || props.scaleToFit) && !isSsr()) {\n if (needCalculate) {\n const wordWidths = calculateWordWidths(props);\n\n if (wordWidths) {\n const { wordsWithComputedWidth, spaceWidth } = wordWidths;\n\n this.wordsWithComputedWidth = wordsWithComputedWidth;\n this.spaceWidth = spaceWidth;\n } else {\n this.updateWordsWithoutCalculate(props);\n\n return;\n }\n }\n\n const wordsByLines = this.calculateWordsByLines(\n this.wordsWithComputedWidth,\n this.spaceWidth,\n props.width\n );\n this.setState({ wordsByLines });\n } else {\n this.updateWordsWithoutCalculate(props);\n }\n }\n\n updateWordsWithoutCalculate(props) {\n const words = !_.isNil(props.children) ? props.children.toString().split(BREAKING_SPACES) : [];\n this.setState({ wordsByLines: [{ words }] });\n }\n\n calculateWordsByLines(wordsWithComputedWidth, spaceWidth, lineWidth) {\n const { scaleToFit } = this.props;\n return wordsWithComputedWidth.reduce((result, { word, width }) => {\n const currentLine = result[result.length - 1];\n\n if (currentLine && (lineWidth == null || scaleToFit ||\n (currentLine.width + width + spaceWidth) < lineWidth)) {\n // Word can be added to an existing line\n currentLine.words.push(word);\n currentLine.width += width + spaceWidth;\n } else {\n // Add first word to line or word is too long to scaleToFit on existing line\n const newLine = { words: [word], width };\n result.push(newLine);\n }\n\n return result;\n }, []);\n }\n\n render() {\n const {\n dx,\n dy,\n textAnchor,\n verticalAnchor,\n scaleToFit,\n angle,\n lineHeight,\n capHeight,\n className,\n ...textProps\n } = this.props;\n const { wordsByLines } = this.state;\n\n if (!isNumOrStr(textProps.x) || !isNumOrStr(textProps.y)) { return null; }\n const x = textProps.x + (isNumber(dx) ? dx : 0);\n const y = textProps.y + (isNumber(dy) ? dy : 0);\n\n let startDy;\n switch (verticalAnchor) {\n case 'start':\n startDy = reduceCSSCalc(`calc(${capHeight})`);\n break;\n case 'middle':\n startDy = reduceCSSCalc(\n `calc(${(wordsByLines.length - 1) / 2} * -${lineHeight} + (${capHeight} / 2))`\n );\n break;\n default:\n startDy = reduceCSSCalc(`calc(${wordsByLines.length - 1} * -${lineHeight})`);\n break;\n }\n\n const transforms = [];\n if (scaleToFit) {\n const lineWidth = wordsByLines[0].width;\n transforms.push(`scale(${this.props.width / lineWidth})`);\n }\n if (angle) {\n transforms.push(`rotate(${angle}, ${x}, ${y})`);\n }\n if (transforms.length) {\n textProps.transform = transforms.join(' ');\n }\n\n return (\n <text\n {...getPresentationAttributes(textProps)}\n x={x}\n y={y}\n className={classNames('recharts-text', className)}\n textAnchor={textAnchor}\n >\n {\n wordsByLines.map((line, index) => (\n <tspan x={x} dy={index === 0 ? startDy : lineHeight} key={index}>\n {line.words.join(' ')}\n </tspan>\n ))\n }\n </text>\n );\n }\n}\n\nexport default Text;\n","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending\";\n\nexport default function(compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n}\n\nfunction ascendingComparator(f) {\n return function(d, x) {\n return ascending(f(d), x);\n };\n}\n","import ascending from \"./ascending\";\nimport bisector from \"./bisector\";\n\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;\n","import {pair} from \"./pairs\";\n\nexport default function(values0, values1, reduce) {\n var n0 = values0.length,\n n1 = values1.length,\n values = new Array(n0 * n1),\n i0,\n i1,\n i,\n value0;\n\n if (reduce == null) reduce = pair;\n\n for (i0 = i = 0; i0 < n0; ++i0) {\n for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {\n values[i] = reduce(value0, values1[i1]);\n }\n }\n\n return values;\n}\n","export default function(x) {\n return x === null ? NaN : +x;\n}\n","var array = Array.prototype;\n\nexport var slice = array.slice;\nexport var map = array.map;\n","export default function(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","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks[i] = (start - i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","export default function(values) {\n return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n}\n","import number from \"./number\";\n\nexport default function(values, p, valueof) {\n if (valueof == null) valueof = number;\n if (!(n = values.length)) return;\n if ((p = +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","export var prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map.prototype = {\n constructor: Map,\n has: function(key) {\n return (prefix + key) in this;\n },\n get: function(key) {\n return this[prefix + key];\n },\n set: function(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function() {\n for (var property in this) if (property[0] === prefix) delete this[property];\n },\n keys: function() {\n var keys = [];\n for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));\n return keys;\n },\n values: function() {\n var values = [];\n for (var property in this) if (property[0] === prefix) values.push(this[property]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});\n return entries;\n },\n size: function() {\n var size = 0;\n for (var property in this) if (property[0] === prefix) ++size;\n return size;\n },\n empty: function() {\n for (var property in this) if (property[0] === prefix) return false;\n return true;\n },\n each: function(f) {\n for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n};\n\nfunction map(object, f) {\n var map = new Map;\n\n // Copy constructor.\n if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });\n\n // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n\n if (f == null) while (++i < n) map.set(i, object[i]);\n else while (++i < n) map.set(f(o = object[i], i, object), o);\n }\n\n // Convert object to map.\n else if (object) for (var key in object) map.set(key, object[key]);\n\n return map;\n}\n\nexport default map;\n","import {default as map, prefix} from \"./map\";\n\nfunction Set() {}\n\nvar proto = map.prototype;\n\nSet.prototype = set.prototype = {\n constructor: Set,\n has: proto.has,\n add: function(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n};\n\nfunction set(object, f) {\n var set = new Set;\n\n // Copy constructor.\n if (object instanceof Set) object.each(function(value) { set.add(value); });\n\n // Otherwise, assume it’s an array.\n else if (object) {\n var i = -1, n = object.length;\n if (f == null) while (++i < n) set.add(object[i]);\n else while (++i < n) set.add(f(object[i], i, object));\n }\n\n return set;\n}\n\nexport default set;\n","var array = Array.prototype;\n\nexport var map = array.map;\nexport var slice = array.slice;\n","import {map} from \"d3-collection\";\nimport {slice} from \"./array\";\n\nexport var implicit = {name: \"implicit\"};\n\nexport default function ordinal(range) {\n var index = map(),\n domain = [],\n unknown = implicit;\n\n range = range == null ? [] : slice.call(range);\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = map();\n var i = -1, n = _.length, d, key;\n while (++i < n) if (!index.has(key = (d = _[i]) + \"\")) index.set(key, domain.push(d));\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), 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()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return scale;\n}\n","import {range as sequence} from \"d3-array\";\nimport ordinal from \"./ordinal\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n range = [0, 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 = range[1] < range[0],\n start = range[reverse - 0],\n stop = range[1 - reverse];\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 ? (range = [+_[0], +_[1]], rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = [+_[0], +_[1]], 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 = paddingOuter = Math.max(0, Math.min(1, _)), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.max(0, Math.min(1, _)), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = Math.max(0, Math.min(1, _)), 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()\n .domain(domain())\n .range(range)\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return rescale();\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().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\";\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 reHex3 = /^#([0-9a-f]{3})$/,\n reHex6 = /^#([0-9a-f]{6})$/,\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 displayable: function() {\n return this.rgb().displayable();\n },\n hex: function() {\n return this.rgb().hex();\n },\n toString: function() {\n return this.rgb() + \"\";\n }\n});\n\nexport default function color(format) {\n var m;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex3.exec(format)) ? (m = parseInt(m[1], 16), new Rgb((m >> 8 & 0xf) | (m >> 4 & 0x0f0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1)) // #f00\n : (m = reHex6.exec(format)) ? rgbn(parseInt(m[1], 16)) // #ff0000\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])\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: function(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: function(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: function() {\n return this;\n },\n displayable: function() {\n return (0 <= this.r && this.r <= 255)\n && (0 <= this.g && this.g <= 255)\n && (0 <= this.b && this.b <= 255)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: function() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n },\n toString: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\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: function(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: function(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: function() {\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 displayable: function() {\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}));\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 var deg2rad = Math.PI / 180;\nexport var rad2deg = 180 / Math.PI;\n","import define, {extend} from \"./define\";\nimport {Color, rgbConvert, Rgb} from \"./color\";\nimport {deg2rad, rad2deg} from \"./math\";\n\n// https://beta.observablehq.com/@mbostock/lab-and-rgb\nvar K = 18,\n Xn = 0.96422,\n Yn = 1,\n Zn = 0.82521,\n t0 = 4 / 29,\n t1 = 6 / 29,\n t2 = 3 * t1 * t1,\n t3 = t1 * t1 * t1;\n\nfunction labConvert(o) {\n if (o instanceof Lab) return new Lab(o.l, o.a, o.b, o.opacity);\n if (o instanceof Hcl) {\n if (isNaN(o.h)) return new Lab(o.l, 0, 0, o.opacity);\n var h = o.h * deg2rad;\n return new Lab(o.l, Math.cos(h) * o.c, Math.sin(h) * o.c, o.opacity);\n }\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = rgb2lrgb(o.r),\n g = rgb2lrgb(o.g),\n b = rgb2lrgb(o.b),\n y = xyz2lab((0.2225045 * r + 0.7168786 * g + 0.0606169 * b) / Yn), x, z;\n if (r === g && g === b) x = z = y; else {\n x = xyz2lab((0.4360747 * r + 0.3850649 * g + 0.1430804 * b) / Xn);\n z = xyz2lab((0.0139322 * r + 0.0971045 * g + 0.7141733 * b) / Zn);\n }\n return new Lab(116 * y - 16, 500 * (x - y), 200 * (y - z), o.opacity);\n}\n\nexport function gray(l, opacity) {\n return new Lab(l, 0, 0, opacity == null ? 1 : opacity);\n}\n\nexport default function lab(l, a, b, opacity) {\n return arguments.length === 1 ? labConvert(l) : new Lab(l, a, b, opacity == null ? 1 : opacity);\n}\n\nexport function Lab(l, a, b, opacity) {\n this.l = +l;\n this.a = +a;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Lab, lab, extend(Color, {\n brighter: function(k) {\n return new Lab(this.l + K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n darker: function(k) {\n return new Lab(this.l - K * (k == null ? 1 : k), this.a, this.b, this.opacity);\n },\n rgb: function() {\n var y = (this.l + 16) / 116,\n x = isNaN(this.a) ? y : y + this.a / 500,\n z = isNaN(this.b) ? y : y - this.b / 200;\n x = Xn * lab2xyz(x);\n y = Yn * lab2xyz(y);\n z = Zn * lab2xyz(z);\n return new Rgb(\n lrgb2rgb( 3.1338561 * x - 1.6168667 * y - 0.4906146 * z),\n lrgb2rgb(-0.9787684 * x + 1.9161415 * y + 0.0334540 * z),\n lrgb2rgb( 0.0719453 * x - 0.2289914 * y + 1.4052427 * z),\n this.opacity\n );\n }\n}));\n\nfunction xyz2lab(t) {\n return t > t3 ? Math.pow(t, 1 / 3) : t / t2 + t0;\n}\n\nfunction lab2xyz(t) {\n return t > t1 ? t * t * t : t2 * (t - t0);\n}\n\nfunction lrgb2rgb(x) {\n return 255 * (x <= 0.0031308 ? 12.92 * x : 1.055 * Math.pow(x, 1 / 2.4) - 0.055);\n}\n\nfunction rgb2lrgb(x) {\n return (x /= 255) <= 0.04045 ? x / 12.92 : Math.pow((x + 0.055) / 1.055, 2.4);\n}\n\nfunction hclConvert(o) {\n if (o instanceof Hcl) return new Hcl(o.h, o.c, o.l, o.opacity);\n if (!(o instanceof Lab)) o = labConvert(o);\n if (o.a === 0 && o.b === 0) return new Hcl(NaN, 0, o.l, o.opacity);\n var h = Math.atan2(o.b, o.a) * rad2deg;\n return new Hcl(h < 0 ? h + 360 : h, Math.sqrt(o.a * o.a + o.b * o.b), o.l, o.opacity);\n}\n\nexport function lch(l, c, h, opacity) {\n return arguments.length === 1 ? hclConvert(l) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function hcl(h, c, l, opacity) {\n return arguments.length === 1 ? hclConvert(h) : new Hcl(h, c, l, opacity == null ? 1 : opacity);\n}\n\nexport function Hcl(h, c, l, opacity) {\n this.h = +h;\n this.c = +c;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hcl, hcl, extend(Color, {\n brighter: function(k) {\n return new Hcl(this.h, this.c, this.l + K * (k == null ? 1 : k), this.opacity);\n },\n darker: function(k) {\n return new Hcl(this.h, this.c, this.l - K * (k == null ? 1 : k), this.opacity);\n },\n rgb: function() {\n return labConvert(this).rgb();\n }\n}));\n","import define, {extend} from \"./define\";\nimport {Color, rgbConvert, Rgb, darker, brighter} from \"./color\";\nimport {deg2rad, rad2deg} from \"./math\";\n\nvar A = -0.14861,\n B = +1.78277,\n C = -0.29227,\n D = -0.90649,\n E = +1.97294,\n ED = E * D,\n EB = E * B,\n BC_DA = B * C - D * A;\n\nfunction cubehelixConvert(o) {\n if (o instanceof Cubehelix) return new Cubehelix(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Rgb)) o = rgbConvert(o);\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n l = (BC_DA * b + ED * r - EB * g) / (BC_DA + ED - EB),\n bl = b - l,\n k = (E * (g - l) - C * bl) / D,\n s = Math.sqrt(k * k + bl * bl) / (E * l * (1 - l)), // NaN if l=0 or l=1\n h = s ? Math.atan2(k, bl) * rad2deg - 120 : NaN;\n return new Cubehelix(h < 0 ? h + 360 : h, s, l, o.opacity);\n}\n\nexport default function cubehelix(h, s, l, opacity) {\n return arguments.length === 1 ? cubehelixConvert(h) : new Cubehelix(h, s, l, opacity == null ? 1 : opacity);\n}\n\nexport function Cubehelix(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Cubehelix, cubehelix, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Cubehelix(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = isNaN(this.h) ? 0 : (this.h + 120) * deg2rad,\n l = +this.l,\n a = isNaN(this.s) ? 0 : this.s * l * (1 - l),\n cosh = Math.cos(h),\n sinh = Math.sin(h);\n return new Rgb(\n 255 * (l + a * (A * cosh + B * sinh)),\n 255 * (l + a * (C * cosh + D * sinh)),\n 255 * (l + a * (E * cosh)),\n this.opacity\n );\n }\n}));\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import constant from \"./constant\";\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\";\nimport basisClosed from \"./basisClosed\";\nimport nogamma, {gamma} from \"./color\";\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","import {basis} from \"./basis\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default function(a, b) {\n return a = +a, b -= a, function(t) {\n return a + b * t;\n };\n}\n","import number from \"./number\";\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 decompose, {identity} from \"./decompose\";\n\nvar cssNode,\n cssRoot,\n cssView,\n svgNode;\n\nexport function parseCss(value) {\n if (value === \"none\") return identity;\n if (!cssNode) cssNode = document.createElement(\"DIV\"), cssRoot = document.documentElement, cssView = document.defaultView;\n cssNode.style.transform = value;\n value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue(\"transform\");\n cssRoot.removeChild(cssNode);\n value = value.slice(7, -1).split(\",\");\n return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb\";\nimport array from \"./array\";\nimport date from \"./date\";\nimport number from \"./number\";\nimport object from \"./object\";\nimport string from \"./string\";\nimport constant from \"./constant\";\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 : Array.isArray(b) ? array\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b -= a, function(t) {\n return d.setTime(a + b * t), d;\n };\n}\n","import value from \"./value\";\n\nexport default function(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","import value from \"./value\";\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","export default function(a, b) {\n return a = +a, b -= a, function(t) {\n return Math.round(a + b * t);\n };\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import number from \"../number\";\nimport {parseCss, parseSvg} from \"./parse\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","var rho = Math.SQRT2,\n rho2 = 2,\n rho4 = 4,\n epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\n// p0 = [ux0, uy0, w0]\n// p1 = [ux1, uy1, w1]\nexport default function(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000;\n\n return i;\n}\n","import {hsl as colorHsl} from \"d3-color\";\nimport color, {hue} from \"./color\";\n\nfunction hsl(hue) {\n return function(start, end) {\n var h = hue((start = colorHsl(start)).h, (end = colorHsl(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hsl(hue);\nexport var hslLong = hsl(color);\n","import {hcl as colorHcl} from \"d3-color\";\nimport color, {hue} from \"./color\";\n\nfunction hcl(hue) {\n return function(start, end) {\n var h = hue((start = colorHcl(start)).h, (end = colorHcl(end)).h),\n c = color(start.c, end.c),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.c = c(t);\n start.l = l(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n}\n\nexport default hcl(hue);\nexport var hclLong = hcl(color);\n","import {cubehelix as colorCubehelix} from \"d3-color\";\nimport color, {hue} from \"./color\";\n\nfunction cubehelix(hue) {\n return (function cubehelixGamma(y) {\n y = +y;\n\n function cubehelix(start, end) {\n var h = hue((start = colorCubehelix(start)).h, (end = colorCubehelix(end)).h),\n s = color(start.s, end.s),\n l = color(start.l, end.l),\n opacity = color(start.opacity, end.opacity);\n return function(t) {\n start.h = h(t);\n start.s = s(t);\n start.l = l(Math.pow(t, y));\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n cubehelix.gamma = cubehelixGamma;\n\n return cubehelix;\n })(1);\n}\n\nexport default cubehelix(hue);\nexport var cubehelixLong = cubehelix(color);\n","export default function(interpolator, n) {\n var samples = new Array(n);\n for (var i = 0; i < n; ++i) samples[i] = interpolator(i / (n - 1));\n return samples;\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","export default function(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateRound} from \"d3-interpolate\";\nimport {map, slice} from \"./array\";\nimport constant from \"./constant\";\nimport number from \"./number\";\n\nvar unit = [0, 1];\n\nexport function deinterpolateLinear(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(b);\n}\n\nfunction deinterpolateClamp(deinterpolate) {\n return function(a, b) {\n var d = deinterpolate(a = +a, b = +b);\n return function(x) { return x <= a ? 0 : x >= b ? 1 : d(x); };\n };\n}\n\nfunction reinterpolateClamp(reinterpolate) {\n return function(a, b) {\n var r = reinterpolate(a = +a, b = +b);\n return function(t) { return t <= 0 ? a : t >= 1 ? b : r(t); };\n };\n}\n\nfunction bimap(domain, range, deinterpolate, reinterpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = deinterpolate(d1, d0), r0 = reinterpolate(r1, r0);\n else d0 = deinterpolate(d0, d1), r0 = reinterpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, deinterpolate, reinterpolate) {\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] = deinterpolate(domain[i], domain[i + 1]);\n r[i] = reinterpolate(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}\n\n// deinterpolate(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// reinterpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding domain value x in [a,b].\nexport default function continuous(deinterpolate, reinterpolate) {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n clamp = false,\n piecewise,\n output,\n input;\n\n function rescale() {\n piecewise = Math.min(domain.length, range.length) > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return (output || (output = piecewise(domain, range, clamp ? deinterpolateClamp(deinterpolate) : deinterpolate, interpolate)))(+x);\n }\n\n scale.invert = function(y) {\n return (input || (input = piecewise(range, domain, deinterpolateLinear, clamp ? reinterpolateClamp(reinterpolate) : reinterpolate)))(+y);\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = map.call(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = slice.call(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, rescale()) : clamp;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n return rescale();\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, formatDecimal(1.23) returns [\"123\", 0].\nexport default function(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 formatDecimal from \"./formatDecimal\";\n\nexport default function(x) {\n return x = formatDecimal(Math.abs(x)), x ? x[1] : NaN;\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 return new FormatSpecifier(specifier);\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nfunction FormatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n this.fill = match[1] || \" \";\n this.align = match[2] || \">\";\n this.sign = match[3] || \"-\";\n this.symbol = match[4] || \"\";\n this.zero = !!match[5];\n this.width = match[6] && +match[6];\n this.comma = !!match[7];\n this.precision = match[8] && +match[8].slice(1);\n this.trim = !!match[9];\n this.type = match[10] || \"\";\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 == null ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision == null ? \"\" : \".\" + 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 (i0 > 0) { if (!+s[i]) break out; i0 = 0; } break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import formatDecimal from \"./formatDecimal\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimal(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\") + formatDecimal(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import formatLocale from \"./locale\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n decimal: \".\",\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 formatDecimal from \"./formatDecimal\";\n\nexport default function(x, p) {\n var d = formatDecimal(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 formatPrefixAuto from \"./formatPrefixAuto\";\nimport formatRounded from \"./formatRounded\";\n\nexport default {\n \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": function(x) { return Math.round(x).toString(10); },\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return formatRounded(x * 100, p); },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return Math.round(x).toString(16); }\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent\";\nimport formatGroup from \"./formatGroup\";\nimport formatNumerals from \"./formatNumerals\";\nimport formatSpecifier from \"./formatSpecifier\";\nimport formatTrim from \"./formatTrim\";\nimport formatTypes from \"./formatTypes\";\nimport {prefixExponent} from \"./formatPrefixAuto\";\nimport identity from \"./identity\";\n\nvar 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 && locale.thousands ? formatGroup(locale.grouping, locale.thousands) : identity,\n currency = locale.currency,\n decimal = locale.decimal,\n numerals = locale.numerals ? formatNumerals(locale.numerals) : identity,\n percent = locale.percent || \"%\";\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 == null && (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 === \"$\" ? currency[0] : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currency[1] : /[%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 == null ? 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 // Perform the initial formatting.\n var valueNegative = value < 0;\n value = 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 during formatting, treat as positive.\n if (valueNegative && +value === 0) valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : \"-\") : 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","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","import exponent from \"./exponent\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function(domain, count, specifier) {\n var start = domain[0],\n stop = domain[domain.length - 1],\n step = tickStep(start, stop, count == null ? 10 : 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 exponent from \"./exponent\";\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\";\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 {ticks, tickIncrement} from \"d3-array\";\nimport {interpolateNumber as reinterpolate} from \"d3-interpolate\";\nimport {default as continuous, copy, deinterpolateLinear as deinterpolate} from \"./continuous\";\nimport tickFormat from \"./tickFormat\";\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 return tickFormat(domain(), count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain(),\n i0 = 0,\n i1 = d.length - 1,\n start = d[i0],\n stop = d[i1],\n step;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n\n step = tickIncrement(start, stop, count);\n\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = tickIncrement(start, stop, count);\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = tickIncrement(start, stop, count);\n }\n\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n domain(d);\n } else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n domain(d);\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous(deinterpolate, reinterpolate);\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n return linearish(scale);\n}\n","import {map} from \"./array\";\nimport {linearish} from \"./linear\";\nimport number from \"./number\";\n\nexport default function identity() {\n var domain = [0, 1];\n\n function scale(x) {\n return +x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = map.call(_, number), scale) : domain.slice();\n };\n\n scale.copy = function() {\n return identity().domain(domain);\n };\n\n return linearish(scale);\n}\n","export default function(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} from \"d3-format\";\nimport constant from \"./constant\";\nimport nice from \"./nice\";\nimport {default as continuous, copy} from \"./continuous\";\n\nfunction deinterpolate(a, b) {\n return (b = Math.log(b / a))\n ? function(x) { return Math.log(x / a) / b; }\n : constant(b);\n}\n\nfunction reinterpolate(a, b) {\n return a < 0\n ? function(t) { return -Math.pow(-b, t) * Math.pow(-a, 1 - t); }\n : function(t) { return Math.pow(b, t) * Math.pow(a, 1 - t); };\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 : function(x) { return 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), function(x) { return Math.log(x) / base; });\n}\n\nfunction reflect(f) {\n return function(x) {\n return -f(-x);\n };\n}\n\nexport default function log() {\n var scale = continuous(deinterpolate, reinterpolate).domain([1, 10]),\n domain = scale.domain,\n base = 10,\n logs = logp(10),\n pows = powp(10);\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) logs = reflect(logs), pows = reflect(pows);\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 = function(count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n\n if (r = v < u) i = u, u = v, v = i;\n\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.round(i) - 1, j = Math.round(j) + 1;\n if (u > 0) for (; i < j; ++i) {\n for (k = 1, p = pows(i); k < base; ++k) {\n t = p * k;\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, p = pows(i); k >= 1; --k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function(count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return function(d) {\n var 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 = function() {\n return domain(nice(domain(), {\n floor: function(x) { return pows(Math.floor(logs(x))); },\n ceil: function(x) { return pows(Math.ceil(logs(x))); }\n }));\n };\n\n scale.copy = function() {\n return copy(scale, log().base(base));\n };\n\n return scale;\n}\n","import constant from \"./constant\";\nimport {linearish} from \"./linear\";\nimport {default as continuous, copy} from \"./continuous\";\n\nfunction raise(x, exponent) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n}\n\nexport default function pow() {\n var exponent = 1,\n scale = continuous(deinterpolate, reinterpolate),\n domain = scale.domain;\n\n function deinterpolate(a, b) {\n return (b = raise(b, exponent) - (a = raise(a, exponent)))\n ? function(x) { return (raise(x, exponent) - a) / b; }\n : constant(b);\n }\n\n function reinterpolate(a, b) {\n b = raise(b, exponent) - (a = raise(a, exponent));\n return function(t) { return raise(a + b * t, 1 / exponent); };\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, domain(domain())) : exponent;\n };\n\n scale.copy = function() {\n return copy(scale, pow().exponent(exponent));\n };\n\n return linearish(scale);\n}\n\nexport function sqrt() {\n return pow().exponent(0.5);\n}\n","import {ascending, bisect, quantile as threshold} from \"d3-array\";\nimport {slice} from \"./array\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [];\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 if (!isNaN(x = +x)) return 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 (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], 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 = slice.call(_), rescale()) : range.slice();\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 };\n\n return scale;\n}\n","import {bisect} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {linearish} from \"./linear\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1];\n\n function scale(x) {\n if (x <= x) return range[bisect(domain, x, 0, n)];\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 = +_[0], x1 = +_[1], rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = slice.call(_)).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.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range);\n };\n\n return linearish(scale);\n}\n","import {bisect} from \"d3-array\";\nimport {slice} from \"./array\";\n\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n n = 1;\n\n function scale(x) {\n if (x <= x) return range[bisect(domain, x, 0, n)];\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = slice.call(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), 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.copy = function() {\n return threshold()\n .domain(domain)\n .range(range);\n };\n\n return scale;\n}\n","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = new Date(+date)), date;\n }\n\n interval.floor = interval;\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\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 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 = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(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 = function(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 = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","import interval from \"./interval\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;\n","import interval from \"./interval\";\nimport {durationSecond} from \"./duration\";\n\nvar second = interval(function(date) {\n date.setTime(Math.floor(date / durationSecond) * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval\";\nimport {durationMinute} from \"./duration\";\n\nvar minute = interval(function(date) {\n date.setTime(Math.floor(date / durationMinute) * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval\";\nimport {durationHour, durationMinute} from \"./duration\";\n\nvar hour = interval(function(date) {\n var offset = date.getTimezoneOffset() * durationMinute % durationHour;\n if (offset < 0) offset += durationHour;\n date.setTime(Math.floor((+date - offset) / durationHour) * durationHour + offset);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","import interval from \"./interval\";\nimport {durationDay, durationMinute} from \"./duration\";\n\nvar day = interval(function(date) {\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setDate(date.getDate() + step);\n}, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function(date) {\n return date.getDate() - 1;\n});\n\nexport default day;\nexport var days = day.range;\n","import interval from \"./interval\";\nimport {durationMinute, durationWeek} from \"./duration\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","import interval from \"./interval\";\nimport {durationMinute} from \"./duration\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","import interval from \"./interval\";\nimport {durationHour} from \"./duration\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval\";\nimport {durationDay} from \"./duration\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval\";\nimport {durationWeek} from \"./duration\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\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 newYear(y) {\n return {y: y, m: 0, d: 1, 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 \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\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 \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\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 \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\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, newDate) {\n return function(string) {\n var d = newYear(1900),\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\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 // 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(newYear(d.y)), 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 = newDate(newYear(d.y)), 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(newYear(d.y)).getUTCDay() : newDate(newYear(d.y)).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 newDate(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[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[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[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[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[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 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 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 += \"\", localDate);\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, utcDate);\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 var map = {}, i = -1, n = names.length;\n while (++i < n) map[names[i].toLowerCase()] = i;\n return map;\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 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.Q = (+n[0]) * 1000, 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), d), p, 2);\n}\n\nfunction formatWeekNumberISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(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), d), p, 2);\n}\n\nfunction formatYear(d, p) {\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 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), d), p, 2);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(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), d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\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 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\";\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 {utcFormat} from \"./defaultLocale\";\n\nexport var isoSpecifier = \"%Y-%m-%dT%H:%M:%S.%LZ\";\n\nfunction formatIsoNative(date) {\n return date.toISOString();\n}\n\nvar formatIso = Date.prototype.toISOString\n ? formatIsoNative\n : utcFormat(isoSpecifier);\n\nexport default formatIso;\n","import {isoSpecifier} from \"./isoFormat\";\nimport {utcParse} from \"./defaultLocale\";\n\nfunction parseIsoNative(string) {\n var date = new Date(string);\n return isNaN(date) ? null : date;\n}\n\nvar parseIso = +new Date(\"2000-01-01T00:00:00.000Z\")\n ? parseIsoNative\n : utcParse(isoSpecifier);\n\nexport default parseIso;\n","import {bisector, tickStep} from \"d3-array\";\nimport {interpolateNumber as reinterpolate} from \"d3-interpolate\";\nimport {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport {map} from \"./array\";\nimport {default as continuous, copy, deinterpolateLinear as deinterpolate} from \"./continuous\";\nimport nice from \"./nice\";\n\nvar durationSecond = 1000,\n durationMinute = durationSecond * 60,\n durationHour = durationMinute * 60,\n durationDay = durationHour * 24,\n durationWeek = durationDay * 7,\n durationMonth = durationDay * 30,\n durationYear = durationDay * 365;\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(year, month, week, day, hour, minute, second, millisecond, format) {\n var scale = continuous(deinterpolate, reinterpolate),\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 var 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 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 function tickInterval(interval, start, stop, step) {\n if (interval == null) interval = 10;\n\n // If a desired tick count is specified, pick a reasonable tick interval\n // based on the extent of the domain and a rough estimate of tick size.\n // Otherwise, assume interval is already a time interval and use it.\n if (typeof interval === \"number\") {\n var target = Math.abs(stop - start) / interval,\n i = bisector(function(i) { return i[2]; }).right(tickIntervals, target);\n if (i === tickIntervals.length) {\n step = tickStep(start / durationYear, stop / durationYear, interval);\n interval = year;\n } else if (i) {\n i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n step = i[1];\n interval = i[0];\n } else {\n step = Math.max(tickStep(start, stop, interval), 1);\n interval = millisecond;\n }\n }\n\n return step == null ? interval : interval.every(step);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(map.call(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval, step) {\n var d = domain(),\n t0 = d[0],\n t1 = d[d.length - 1],\n r = t1 < t0,\n t;\n if (r) t = t0, t0 = t1, t1 = t;\n t = tickInterval(interval, t0, t1, step);\n t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n return r ? t.reverse() : t;\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval, step) {\n var d = domain();\n return (interval = tickInterval(interval, d[0], d[d.length - 1], step))\n ? domain(nice(d, interval))\n : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));\n };\n\n return scale;\n}\n\nexport default function() {\n return calendar(timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]);\n}\n","import {calendar} from \"./time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond} from \"d3-time\";\n\nexport default function() {\n return calendar(utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]);\n}\n","import {linearish} from \"./linear\";\n\nexport default function sequential(interpolator) {\n var x0 = 0,\n x1 = 1,\n k10 = 1,\n clamp = false;\n\n function scale(x) {\n var t = (x - x0) * k10;\n return interpolator(clamp ? Math.max(0, Math.min(1, t)) : t);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (x0 = +_[0], x1 = +_[1], k10 = x0 === x1 ? 0 : 1 / (x1 - x0), 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 scale.copy = function() {\n return sequential(interpolator).domain([x0, x1]).clamp(clamp);\n };\n\n return linearish(scale);\n}\n","import {linearish} from \"./linear\";\n\nexport default function diverging(interpolator) {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n k10 = 1,\n k21 = 1,\n clamp = false;\n\n function scale(x) {\n var t = 0.5 + ((x = +x) - x1) * (x < x1 ? k10 : k21);\n return interpolator(clamp ? Math.max(0, Math.min(1, t)) : t);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (x0 = +_[0], x1 = +_[1], x2 = +_[2], k10 = x0 === x1 ? 0 : 0.5 / (x1 - x0), k21 = x1 === x2 ? 0 : 0.5 / (x2 - x1), 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 scale.copy = function() {\n return diverging(interpolator).domain([x0, x1, x2]).clamp(clamp);\n };\n\n return linearish(scale);\n}\n","/**\n * @fileOverview Dot\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport pureRender from '../util/PureRender';\nimport { getPresentationAttributes, filterEventAttributes } from '../util/ReactUtils';\n\n@pureRender\nclass Dot extends Component {\n static displayName = 'Dot';\n\n static propTypes = {\n className: PropTypes.string,\n cx: PropTypes.number,\n cy: PropTypes.number,\n r: PropTypes.number,\n };\n\n render() {\n const { cx, cy, r, className } = this.props;\n const layerClass = classNames('recharts-dot', className);\n\n if (cx === +cx && cy === +cy && r === +r) {\n return (\n <circle\n {...getPresentationAttributes(this.props)}\n {...filterEventAttributes(this.props, null, true)}\n className={layerClass}\n cx={cx}\n cy={cy}\n r={r}\n />\n );\n }\n\n return null;\n }\n}\n\nexport default Dot;\n","import _ from 'lodash';\nimport { getTicksOfScale, parseScale, checkDomainOfScale, getBandSizeOfAxis } from './ChartUtils';\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 const formatAxisMap = (props, axisMap, offset, axisType, chartName) => {\n const { width, height, layout } = props;\n const ids = Object.keys(axisMap);\n const 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\n return ids.reduce((result, id) => {\n const axis = axisMap[id];\n const { orientation, domain, padding = {}, mirror, reversed } = axis;\n const offsetKey = `${orientation}${mirror ? 'Mirror' : ''}`;\n\n let range, x, y, needSpace;\n\n if (axisType === 'xAxis') {\n range = [\n offset.left + (padding.left || 0),\n offset.left + offset.width - (padding.right || 0),\n ];\n } else if (axisType === 'yAxis') {\n range = layout === 'horizontal' ? [\n offset.top + offset.height - (padding.bottom || 0),\n offset.top + (padding.top || 0),\n ] : [\n offset.top + (padding.top || 0),\n offset.top + offset.height - (padding.bottom || 0),\n ];\n } else {\n ({ range } = axis);\n }\n\n if (reversed) {\n range = [range[1], range[0]];\n }\n\n const { scale, realScaleType } = parseScale(axis, chartName);\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n const ticks = getTicksOfScale(scale, { ...axis, 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\n const finalAxis = {\n ...axis,\n ...ticks,\n realScaleType, x, y, scale,\n width: axisType === 'xAxis' ? offset.width : axis.width,\n height: axisType === 'yAxis' ? offset.height : axis.height,\n };\n\n finalAxis.bandSize = getBandSizeOfAxis(finalAxis, ticks);\n\n if (!axis.hide && axisType === 'xAxis') {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.height;\n } else if (!axis.hide) {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.width;\n }\n\n return { ...result, [id]: finalAxis };\n }, {});\n};\n\nexport const rectWithPoints = ({ x: x1, y: y1 }, { x: x2, y: y2 }) => ({\n x: Math.min(x1, x2),\n y: Math.min(y1, y2),\n width: Math.abs(x2 - x1),\n height: Math.abs(y2 - y1),\n});\n\n/**\n * Compute the x, y, width, and height of a box from two reference points.\n * @param {Object} coords x1, x2, y1, and y2\n * @return {Object} object\n */\nexport const rectWithCoords = ({ x1, y1, x2, y2 }) => rectWithPoints({ x: x1, y: y1 }, { x: x2, y: y2 });\n\nexport class ScaleHelper {\n static EPS = 1e-4;\n\n static create(obj) {\n return new ScaleHelper(obj);\n }\n\n constructor(scale) {\n this.scale = scale;\n }\n\n get domain() {\n return this.scale.domain;\n }\n\n get range() {\n return this.scale.range;\n }\n\n get rangeMin() {\n return this.range()[0];\n }\n\n get rangeMax() {\n return this.range()[1];\n }\n\n get bandwidth() {\n return this.scale.bandwidth;\n }\n\n apply(value, { bandAware } = {}) {\n if (value === undefined) {\n return undefined;\n } if (bandAware) {\n const offset = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + offset;\n }\n return this.scale(value);\n }\n\n isInRange(value) {\n const range = this.range();\n\n const first = range[0];\n const last = range[range.length - 1];\n\n return first <= last ?\n (value >= first && value <= last) :\n (value >= last && value <= first);\n }\n}\n\nexport class LabeledScaleHelper {\n static create(obj) {\n return new this(obj);\n }\n\n constructor(scales) {\n this.scales = _.mapValues(scales, ScaleHelper.create);\n Object.assign(this, this.scales);\n }\n\n apply(coords, { bandAware } = {}) {\n const { scales } = this;\n return _.mapValues(\n coords,\n (value, label) => scales[label].apply(value, { bandAware }));\n }\n\n isInRange(coords) {\n const { scales } = this;\n return _.every(coords, (value, label) => scales[label].isInRange(value));\n }\n}\n","/**\n * @fileOverview Reference Dot\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport classNames from 'classnames';\nimport pureRender from '../util/PureRender';\nimport Layer from '../container/Layer';\nimport Dot from '../shape/Dot';\nimport { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES,\n getPresentationAttributes, filterEventAttributes } from '../util/ReactUtils';\nimport Label from '../component/Label';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { ifOverflowMatches } from '../util/ChartUtils';\nimport { LabeledScaleHelper } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\n\n@pureRender\nclass ReferenceDot extends Component {\n\n static displayName = 'ReferenceDot';\n\n static propTypes = {\n ...PRESENTATION_ATTRIBUTES,\n ...EVENT_ATTRIBUTES,\n r: PropTypes.number,\n\n xAxis: PropTypes.shape({ scale: PropTypes.func }),\n yAxis: PropTypes.shape({ scale: PropTypes.func }),\n\n isFront: PropTypes.bool,\n alwaysShow: PropTypes.bool,\n ifOverflow: PropTypes.oneOf(['hidden', 'visible', 'discard', 'extendDomain']),\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n className: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n yAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n xAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n shape: PropTypes.oneOfType([PropTypes.func, PropTypes.element]),\n\n clipPathId: PropTypes.string,\n };\n\n static defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#fff',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1,\n };\n\n getCoordinate() {\n const { x, y, xAxis, yAxis } = this.props;\n const scales = LabeledScaleHelper.create({ x: xAxis.scale, y: yAxis.scale });\n\n const result = scales.apply({ x, y }, { bandAware: true });\n\n if (ifOverflowMatches(this.props, 'discard') &&\n !scales.isInRange(result)) {\n return null;\n }\n\n return result;\n }\n\n static renderDot(option, props) {\n let dot;\n\n if (React.isValidElement(option)) {\n dot = React.cloneElement(option, props);\n } else if (_.isFunction(option)) {\n dot = option(props);\n } else {\n dot = (\n <Dot\n {...props}\n cx={props.cx}\n cy={props.cy}\n className=\"recharts-reference-dot-dot\"\n />\n );\n }\n\n return dot;\n }\n\n render() {\n const { x, y, r, alwaysShow, clipPathId } = this.props;\n const isX = isNumOrStr(x);\n const isY = isNumOrStr(y);\n\n warn(alwaysShow === undefined,\n 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n\n if (!isX || !isY) { return null; }\n\n const coordinate = this.getCoordinate();\n\n if (!coordinate) { return null; }\n\n const { x: cx, y: cy } = coordinate;\n\n const { shape, className } = this.props;\n\n const clipPath = ifOverflowMatches(this.props, 'hidden') ?\n `url(#${clipPathId})` :\n undefined;\n\n const dotProps = {\n clipPath,\n ...getPresentationAttributes(this.props),\n ...filterEventAttributes(this.props),\n cx,\n cy,\n };\n\n return (\n <Layer className={classNames('recharts-reference-dot', className)}>\n {this.constructor.renderDot(shape, dotProps)}\n {Label.renderCallByParent(this.props, {\n x: cx - r,\n y: cy - r,\n width: 2 * r,\n height: 2 * r,\n })}\n </Layer>\n );\n }\n}\n\nexport default ReferenceDot;\n","/**\n * @fileOverview Reference Line\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport classNames from 'classnames';\nimport pureRender from '../util/PureRender';\nimport Layer from '../container/Layer';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes,\n filterEventAttributes } from '../util/ReactUtils';\nimport Label from '../component/Label';\nimport { ifOverflowMatches } from '../util/ChartUtils';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { LabeledScaleHelper, rectWithCoords } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\n\nconst renderLine = (option, props) => {\n let line;\n\n if (React.isValidElement(option)) {\n line = React.cloneElement(option, props);\n } else if (_.isFunction(option)) {\n line = option(props);\n } else {\n line = (\n <line\n {...props}\n className=\"recharts-reference-line-line\"\n />\n );\n }\n\n return line;\n};\n\n@pureRender\nclass ReferenceLine extends Component {\n\n static displayName = 'ReferenceLine';\n\n static propTypes = {\n ...PRESENTATION_ATTRIBUTES,\n viewBox: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n }),\n\n xAxis: PropTypes.object,\n yAxis: PropTypes.object,\n\n isFront: PropTypes.bool,\n alwaysShow: PropTypes.bool,\n ifOverflow: PropTypes.oneOf(['hidden', 'visible', 'discard', 'extendDomain']),\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n segment: PropTypes.arrayOf(PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n })),\n\n className: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n yAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n xAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n shape: PropTypes.func,\n };\n\n static 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 };\n\n getEndPoints(scales, isFixedX, isFixedY, isSegment) {\n const { viewBox: { x, y, width, height } } = this.props;\n\n if (isFixedY) {\n const { y: yCoord, yAxis: { orientation } } = this.props;\n const coord = scales.y.apply(yCoord);\n\n if (ifOverflowMatches(this.props, 'discard') &&\n !scales.y.isInRange(coord)) {\n return null;\n }\n\n const points = [\n { x: x + width, y: coord },\n { x, y: coord },\n ];\n return orientation === 'left' ? points.reverse() : points;\n } if (isFixedX) {\n const { x: xCoord, xAxis: { orientation } } = this.props;\n const coord = scales.x.apply(xCoord);\n\n if (ifOverflowMatches(this.props, 'discard') &&\n !scales.x.isInRange(coord)) {\n return null;\n }\n\n const points = [\n { x: coord, y: y + height },\n { x: coord, y },\n ];\n return orientation === 'top' ? points.reverse() : points;\n } if (isSegment) {\n const { segment } = this.props;\n\n const points = segment.map(p => scales.apply(p));\n\n if (ifOverflowMatches(this.props, 'discard') &&\n _.some(points, p => !scales.isInRange(p))) {\n return null;\n }\n\n return points;\n }\n\n return null;\n }\n\n render() {\n const {\n x: fixedX,\n y: fixedY,\n segment,\n xAxis,\n yAxis,\n shape,\n className,\n alwaysShow,\n clipPathId,\n } = this.props;\n\n warn(alwaysShow === undefined,\n 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n\n const scales = LabeledScaleHelper.create({ x: xAxis.scale, y: yAxis.scale });\n\n const isX = isNumOrStr(fixedX);\n const isY = isNumOrStr(fixedY);\n const isSegment = segment && segment.length === 2;\n\n const endPoints = this.getEndPoints(scales, isX, isY, isSegment);\n if (!endPoints) { return null; }\n\n const [{ x: x1, y: y1 }, { x: x2, y: y2 }] = endPoints;\n\n const clipPath = ifOverflowMatches(this.props, 'hidden') ?\n `url(#${clipPathId})` :\n undefined;\n\n const props = {\n clipPath,\n ...getPresentationAttributes(this.props),\n ...filterEventAttributes(this.props),\n x1,\n y1,\n x2,\n y2,\n };\n\n return (\n <Layer className={classNames('recharts-reference-line', className)}>\n {renderLine(shape, props)}\n {Label.renderCallByParent(this.props, rectWithCoords({ x1, y1, x2, y2 }))}\n </Layer>\n );\n }\n}\n\nexport default ReferenceLine;\n","/**\n * @fileOverview Rectangle\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport pureRender from '../util/PureRender';\nimport { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, getPresentationAttributes,\n filterEventAttributes } from '../util/ReactUtils';\n\nconst getRectangePath = (x, y, width, height, radius) => {\n const maxRadius = Math.min(Math.abs(width) / 2, Math.abs(height) / 2);\n const sign = height >= 0 ? 1 : -1;\n const clockWise = height >= 0 ? 1 : 0;\n let path;\n\n if (maxRadius > 0 && radius instanceof Array) {\n const newRadius = [];\n for (let i = 0, len = 4; i < len; i++) {\n newRadius[i] = radius[i] > maxRadius ? maxRadius : radius[i];\n }\n\n path = `M${x},${y + sign * newRadius[0]}`;\n\n if (newRadius[0] > 0) {\n path += `A ${newRadius[0]},${newRadius[0]},0,0,${clockWise},${x + newRadius[0]},${y}`;\n }\n\n path += `L ${x + width - newRadius[1]},${y}`;\n\n if (newRadius[1] > 0) {\n path += `A ${newRadius[1]},${newRadius[1]},0,0,${clockWise},\n ${x + width},${y + sign * newRadius[1]}`;\n }\n path += `L ${x + width},${y + height - sign * newRadius[2]}`;\n\n if (newRadius[2] > 0) {\n path += `A ${newRadius[2]},${newRadius[2]},0,0,${clockWise},\n ${x + width - newRadius[2]},${y + height}`;\n }\n path += `L ${x + newRadius[3]},${y + height}`;\n\n if (newRadius[3] > 0) {\n path += `A ${newRadius[3]},${newRadius[3]},0,0,${clockWise},\n ${x},${y + height - sign * newRadius[3]}`;\n }\n path += 'Z';\n\n } else if (maxRadius > 0 && radius === +radius && radius > 0) {\n const newRadius = Math.min(maxRadius, radius);\n\n path = `M ${x},${y + sign * newRadius}\n A ${newRadius},${newRadius},0,0,${clockWise},${x + newRadius},${y}\n L ${x + width - newRadius},${y}\n A ${newRadius},${newRadius},0,0,${clockWise},${x + width},${y + sign * newRadius}\n L ${x + width},${y + height - sign * newRadius}\n A ${newRadius},${newRadius},0,0,${clockWise},${x + width - newRadius},${y + height}\n L ${x + newRadius},${y + height}\n A ${newRadius},${newRadius},0,0,${clockWise},${x},${y + height - sign * newRadius} Z`;\n\n } else {\n path = `M ${x},${y} h ${width} v ${height} h ${-width} Z`;\n }\n\n return path;\n};\n\n@pureRender\nclass Rectangle extends Component {\n\n static displayName = 'Rectangle';\n\n static propTypes = {\n ...PRESENTATION_ATTRIBUTES,\n ...EVENT_ATTRIBUTES,\n className: PropTypes.string,\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n radius: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.array,\n ]),\n isAnimationActive: PropTypes.bool,\n isUpdateAnimationActive: PropTypes.bool,\n animationBegin: PropTypes.number,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']),\n };\n\n static 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 };\n\n state = {\n totalLength: -1,\n };\n\n /* eslint-disable react/no-did-mount-set-state */\n componentDidMount() {\n if (this.node && this.node.getTotalLength) {\n try {\n const totalLength = this.node.getTotalLength();\n\n if (totalLength) {\n this.setState({\n totalLength,\n });\n }\n } catch (err) {\n // calculate total length error\n }\n }\n\n }\n\n render() {\n const { x, y, width, height, radius, className } = this.props;\n const { totalLength } = this.state;\n const { animationEasing, animationDuration, animationBegin,\n isAnimationActive, isUpdateAnimationActive } = this.props;\n\n if (x !== +x || y !== +y || width !== +width || height !== +height || width === 0 ||\n height === 0) { return null; }\n\n const layerClass = classNames('recharts-rectangle', className);\n\n if (!isUpdateAnimationActive) {\n return (\n <path\n {...getPresentationAttributes(this.props)}\n {...filterEventAttributes(this.props)}\n className={layerClass}\n d={getRectangePath(x, y, width, height, radius)}\n />\n );\n }\n\n return (\n <Animate\n canBegin={totalLength > 0}\n from={{ width, height, x, y }}\n to={{ width, height, x, y }}\n duration={animationDuration}\n animationEasing={animationEasing}\n isActive={isUpdateAnimationActive}\n >\n {\n ({ width: currWidth, height: currHeight, x: currX, y: currY }) => (\n <Animate\n canBegin={totalLength > 0}\n from={`0px ${totalLength === -1 ? 1 : totalLength}px`}\n to={`${totalLength}px 0px`}\n attributeName=\"strokeDasharray\"\n begin={animationBegin}\n duration={animationDuration}\n isActive={isAnimationActive}\n easing={animationEasing}\n >\n <path\n {...getPresentationAttributes(this.props)}\n {...filterEventAttributes(this.props)}\n className={layerClass}\n d={getRectangePath(currX, currY, currWidth, currHeight, radius)}\n ref={(node) => { this.node = node; }}\n />\n </Animate>\n )\n }\n </Animate>\n );\n }\n}\n\nexport default Rectangle;\n","/**\n * @fileOverview Reference Line\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport classNames from 'classnames';\nimport pureRender from '../util/PureRender';\nimport Layer from '../container/Layer';\nimport Label from '../component/Label';\nimport { LabeledScaleHelper, rectWithPoints } from '../util/CartesianUtils';\nimport { ifOverflowMatches } from '../util/ChartUtils';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nimport { PRESENTATION_ATTRIBUTES } from '../util/ReactUtils';\nimport Rectangle from '../shape/Rectangle';\n\n\n@pureRender\nclass ReferenceArea extends Component {\n\n static displayName = 'ReferenceArea';\n\n static propTypes = {\n ...PRESENTATION_ATTRIBUTES,\n viewBox: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n }),\n\n xAxis: PropTypes.object,\n yAxis: PropTypes.object,\n\n isFront: PropTypes.bool,\n alwaysShow: PropTypes.bool,\n ifOverflow: PropTypes.oneOf(['hidden', 'visible', 'discard', 'extendDomain']),\n x1: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n x2: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y1: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y2: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n className: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n yAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n xAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n shape: PropTypes.oneOfType([PropTypes.func, PropTypes.element]),\n };\n\n static defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#ccc',\n fillOpacity: 0.5,\n stroke: 'none',\n strokeWidth: 1,\n };\n\n getRect(hasX1, hasX2, hasY1, hasY2) {\n const { x1: xValue1, x2: xValue2, y1: yValue1, y2: yValue2, xAxis,\n yAxis } = this.props;\n\n const scale = LabeledScaleHelper.create({ x: xAxis.scale, y: yAxis.scale });\n\n const p1 = {\n x: hasX1 ? scale.x.apply(xValue1) : scale.x.rangeMin,\n y: hasY1 ? scale.y.apply(yValue1) : scale.y.rangeMin,\n };\n\n const p2 = {\n x: hasX2 ? scale.x.apply(xValue2) : scale.x.rangeMax,\n y: hasY2 ? scale.y.apply(yValue2) : scale.y.rangeMax,\n };\n\n if (ifOverflowMatches(this.props, 'discard') &&\n (!scale.isInRange(p1) || !scale.isInRange(p2))) {\n return null;\n }\n\n return rectWithPoints(p1, p2);\n }\n\n static renderRect(option, props) {\n let rect;\n\n if (React.isValidElement(option)) {\n rect = React.cloneElement(option, props);\n } else if (_.isFunction(option)) {\n rect = option(props);\n } else {\n rect = (\n <Rectangle\n {...props}\n className=\"recharts-reference-area-rect\"\n />\n );\n }\n\n return rect;\n }\n\n render() {\n const { x1, x2, y1, y2, className, alwaysShow, clipPathId } = this.props;\n\n warn(alwaysShow === undefined,\n 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n\n const hasX1 = isNumOrStr(x1);\n const hasX2 = isNumOrStr(x2);\n const hasY1 = isNumOrStr(y1);\n const hasY2 = isNumOrStr(y2);\n\n if (!hasX1 && !hasX2 && !hasY1 && !hasY2) { return null; }\n\n const rect = this.getRect(hasX1, hasX2, hasY1, hasY2);\n\n if (!rect) { return null; }\n\n const { shape } = this.props;\n\n const clipPath = ifOverflowMatches(this.props, 'hidden') ?\n `url(#${clipPathId})` :\n undefined;\n\n return (\n <Layer className={classNames('recharts-reference-area', className)}>\n {this.constructor.renderRect(shape, { clipPath, ...this.props, ...rect })}\n {Label.renderCallByParent(this.props, rect)}\n </Layer>\n );\n }\n}\n\nexport default ReferenceArea;\n","/**\n * @fileOverview Render a group of error bar\n*/\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Layer from '../container/Layer';\nimport { getPresentationAttributes } from '../util/ReactUtils';\n\nclass ErrorBar extends Component {\n\n static propTypes = {\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]).isRequired,\n data: PropTypes.array,\n xAxis: PropTypes.object,\n yAxis: PropTypes.object,\n layout: PropTypes.string,\n dataPointFormatter: PropTypes.func,\n stroke: PropTypes.string,\n strokeWidth: PropTypes.number,\n width: PropTypes.number,\n offset: PropTypes.number,\n };\n\n static defaultProps = {\n stroke: 'black',\n strokeWidth: 1.5,\n width: 5,\n offset: 0,\n layout: 'horizontal',\n };\n\n renderErrorBars() {\n const { offset, layout, width, dataKey, data,\n dataPointFormatter, xAxis, yAxis, ...others } = this.props;\n const props = getPresentationAttributes(others);\n\n return data.map((entry, i) => {\n const { x, y, value, errorVal } = dataPointFormatter(entry, dataKey);\n\n if (!errorVal) { return null; }\n\n let xMid, yMid, xMin, yMin, xMax, yMax, scale, coordsTop, coordsMid, coordsBot, lowBound,\n highBound;\n\n if (Array.isArray(errorVal)) {\n ([lowBound, highBound] = errorVal);\n } else {\n lowBound = highBound = errorVal;\n }\n\n if (layout === 'vertical') {\n ({ scale } = xAxis);\n xMid = value;\n yMid = y + offset;\n xMin = scale(xMid - lowBound);\n yMin = yMid + width;\n xMax = scale(xMid + highBound);\n yMax = yMid - width;\n coordsTop = { x1: xMax, y1: yMin, x2: xMax, y2: yMax };\n coordsMid = { x1: xMin, y1: yMid, x2: xMax, y2: yMid };\n coordsBot = { x1: xMin, y1: yMin, x2: xMin, y2: yMax };\n } else if (layout === 'horizontal') {\n ({ scale } = yAxis);\n xMid = x + offset;\n yMid = value;\n xMin = xMid - width;\n xMax = xMid + width;\n yMin = scale(yMid - lowBound);\n yMax = scale(yMid + highBound);\n coordsTop = { x1: xMin, y1: yMax, x2: xMax, y2: yMax };\n coordsMid = { x1: xMid, y1: yMin, x2: xMid, y2: yMax };\n coordsBot = { x1: xMin, y1: yMin, x2: xMax, y2: yMin };\n }\n\n return (\n <Layer className=\"recharts-errorBar\" key={`bar-${i}`} {...props}>\n <line {...coordsTop} />\n <line {...coordsMid} />\n <line {...coordsBot} />\n </Layer>\n );\n\n });\n }\n\n render() {\n return (\n <Layer className=\"recharts-errorBars\">\n {this.renderErrorBars()}\n </Layer>\n );\n }\n\n}\n\nexport default ErrorBar;\n","import _ from 'lodash';\nimport { getNiceTickValues, getTickValuesFixedDomain } from 'recharts-scale';\nimport * as d3Scales from 'd3-scale';\nimport {\n stack as shapeStack, stackOrderNone, stackOffsetExpand,\n stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle,\n} from 'd3-shape';\nimport { isNumOrStr, uniqueId, isNumber, getPercentValue, mathSign, findEntryInArray } from './DataUtils';\nimport ReferenceDot from '../cartesian/ReferenceDot';\nimport ReferenceLine from '../cartesian/ReferenceLine';\nimport ReferenceArea from '../cartesian/ReferenceArea';\nimport ErrorBar from '../cartesian/ErrorBar';\nimport Legend from '../component/Legend';\nimport { findAllByType, findChildByType, getDisplayName } from './ReactUtils';\n\nexport const getValueByDataKey = (obj, dataKey, defaultValue) => {\n if (_.isNil(obj) || _.isNil(dataKey)) { return defaultValue; }\n\n if (isNumOrStr(dataKey)) { return _.get(obj, dataKey, defaultValue); }\n\n if (_.isFunction(dataKey)) { 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 const getDomainOfDataByKey = (data, key, type, filterNil) => {\n const flattenData = _.flatMap(data, entry => getValueByDataKey(entry, key));\n\n if (type === 'number') {\n const domain = flattenData.filter(isNumber);\n\n return [Math.min.apply(null, domain), Math.max.apply(null, domain)];\n }\n\n const validateData = filterNil ?\n flattenData.filter(entry => !_.isNil(entry)) :\n flattenData;\n\n return validateData.map(entry => (isNumOrStr(entry) ? entry : ''));\n};\n\nexport const calculateActiveTickIndex = (coordinate, ticks, unsortedTicks, axis) => {\n let index = -1;\n const len = ticks.length;\n\n if (len > 1) {\n if (axis && axis.axisType === 'angleAxis' &&\n Math.abs(Math.abs(axis.range[1] - axis.range[0]) - 360) <= 1e-6) {\n const { range } = axis;\n // ticks are distributed in a circle\n for (let i = 0; i < len; i++) {\n const before = i > 0 ? unsortedTicks[i - 1].coordinate : unsortedTicks[len - 1].coordinate;\n const cur = unsortedTicks[i].coordinate;\n const after = i >= len - 1 ? unsortedTicks[0].coordinate : unsortedTicks[i + 1].coordinate;\n let sameDirectionCoord;\n\n if (mathSign(cur - before) !== mathSign(after - cur)) {\n const diffInterval = [];\n if (mathSign(after - cur) === mathSign(range[1] - range[0])) {\n sameDirectionCoord = after;\n\n const 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\n const 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 const sameInterval = [\n Math.min(cur, (sameDirectionCoord + cur) / 2),\n Math.max(cur, (sameDirectionCoord + cur) / 2),\n ];\n\n if ((coordinate > sameInterval[0] && coordinate <= sameInterval[1]) || (\n coordinate >= diffInterval[0] && coordinate <= diffInterval[1]\n )) {\n ({ index } = unsortedTicks[i]);\n break;\n }\n } else {\n const min = Math.min(before, after);\n const max = Math.max(before, after);\n\n if (coordinate > (min + cur) / 2 && coordinate <= (max + cur) / 2) {\n ({ index } = unsortedTicks[i]);\n break;\n }\n }\n }\n } else {\n // ticks are distributed in a single direction\n for (let i = 0; i < len; i++) {\n if ((i === 0 && coordinate <= (ticks[i].coordinate + ticks[i + 1].coordinate) / 2) ||\n (i > 0 && i < len - 1 && coordinate > (ticks[i].coordinate + ticks[i - 1].coordinate) / 2 &&\n coordinate <= (ticks[i].coordinate + ticks[i + 1].coordinate) / 2) ||\n (i === len - 1 && coordinate > (ticks[i].coordinate + ticks[i - 1].coordinate) / 2)) {\n ({ index } = ticks[i]);\n break;\n }\n }\n }\n } else {\n index = 0;\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 const getMainColorOfGraphicItem = (item) => {\n const { type: { displayName } } = item;\n let result;\n\n switch (displayName) {\n case 'Line':\n case 'Area':\n case 'Radar':\n result = item.props.stroke;\n break;\n default:\n result = item.props.fill;\n break;\n }\n\n return result;\n};\n\nexport const getLegendProps = ({\n children, formatedGraphicalItems, legendWidth, legendContent,\n}) => {\n const legendItem = findChildByType(children, Legend);\n if (!legendItem) { return null; }\n\n let legendData;\n if (legendItem.props && legendItem.props.payload) {\n legendData = (legendItem.props && legendItem.props.payload);\n } else if (legendContent === 'children') {\n legendData = (formatedGraphicalItems || []).reduce((result, { item, props }) => {\n const data = props.sectors || props.data || [];\n\n return result.concat(data.map(entry => (\n {\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 = (formatedGraphicalItems || []).map(({ item }) => {\n const { dataKey, name, legendType, hide } = item.props;\n\n return {\n inactive: hide,\n dataKey,\n type: legendItem.props.iconType || legendType || 'square',\n color: getMainColorOfGraphicItem(item),\n value: name || dataKey,\n payload: item.props,\n };\n });\n }\n\n\n return {\n ...legendItem.props,\n ...Legend.getWithHeight(legendItem, legendWidth),\n payload: legendData,\n item: legendItem,\n };\n};\n/**\n * Calculate the size of all groups for stacked bar graph\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @return {Object} The size of all groups\n */\nexport const getBarSizeList = ({ barSize: globalSize, stackGroups = {} }) => {\n if (!stackGroups) { return {}; }\n\n const result = {};\n const numericAxisIds = Object.keys(stackGroups);\n\n for (let i = 0, len = numericAxisIds.length; i < len; i++) {\n const sgs = stackGroups[numericAxisIds[i]].stackGroups;\n const stackIds = Object.keys(sgs);\n\n for (let j = 0, sLen = stackIds.length; j < sLen; j++) {\n const { items, cateAxisId } = sgs[stackIds[j]];\n\n const barItems = items.filter(item => (getDisplayName(item.type).indexOf('Bar') >= 0));\n\n if (barItems && barItems.length) {\n const { barSize: selfSize } = barItems[0].props;\n const cateId = barItems[0].props[cateAxisId];\n\n if (!result[cateId]) {\n result[cateId] = [];\n }\n\n result[cateId].push({\n item: barItems[0],\n stackList: barItems.slice(1),\n barSize: _.isNil(selfSize) ? globalSize : selfSize,\n });\n }\n }\n }\n\n return result;\n};\n\n/**\n * Calculate the size of each bar and the gap between two bars\n * @param {Number} bandSize The size of each category\n * @param {sizeList} sizeList The size of all groups\n * @param {maxBarSize} maxBarSize The maximum size of bar\n * @return {Number} The size of each bar and the gap between two bars\n */\nexport const getBarPosition = ({ barGap, barCategoryGap, bandSize, sizeList = [], maxBarSize }) => {\n const len = sizeList.length;\n if (len < 1) return null;\n\n let realBarGap = getPercentValue(barGap, bandSize, 0, true);\n let result;\n\n // whether or not is barSize setted by user\n if (sizeList[0].barSize === +sizeList[0].barSize) {\n let useFull = false;\n let fullBarSize = bandSize / len;\n let sum = sizeList.reduce((res, entry) => (res + entry.barSize || 0), 0);\n sum += (len - 1) * realBarGap;\n\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\n const offset = ((bandSize - sum) / 2) >> 0;\n let prev = { offset: offset - realBarGap, size: 0 };\n\n result = sizeList.reduce((res, entry) => {\n const newRes = [...res, {\n item: entry.item,\n position: {\n offset: prev.offset + prev.size + realBarGap,\n size: useFull ? fullBarSize : entry.barSize,\n },\n }];\n\n prev = newRes[newRes.length - 1].position;\n\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach((item) => {\n newRes.push({ item, position: prev });\n });\n }\n return newRes;\n }, []);\n } else {\n const offset = getPercentValue(barCategoryGap, bandSize, 0, true);\n\n if (bandSize - 2 * offset - (len - 1) * realBarGap <= 0) { realBarGap = 0; }\n\n let originalSize = (bandSize - 2 * offset - (len - 1) * realBarGap) / len;\n if (originalSize > 1) {\n originalSize >>= 0;\n }\n const size = (maxBarSize === +maxBarSize) ? Math.min(originalSize, maxBarSize) : originalSize;\n\n result = sizeList.reduce((res, entry, i) => {\n const newRes = [...res, {\n item: entry.item,\n position: {\n offset: offset + (originalSize + realBarGap) * i + (originalSize - size) / 2,\n size,\n },\n }];\n\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach((item) => {\n newRes.push({ item, position: newRes[newRes.length - 1].position });\n });\n }\n return newRes;\n }, []);\n }\n\n return result;\n};\n\nexport const appendOffsetOfLegend = (offset, items, props, legendBox) => {\n const { children, width, height, margin } = props;\n const legendWidth = width - (margin.left || 0) - (margin.right || 0);\n const legendHeight = height - (margin.top || 0) - (margin.bottom || 0);\n const legendProps = getLegendProps({ children, items, legendWidth, legendHeight });\n let newOffset = offset;\n\n if (legendProps) {\n const box = legendBox || {};\n const { align, verticalAlign, layout } = legendProps;\n\n if ((layout === 'vertical' || (layout === 'horizontal' && verticalAlign === 'center')) &&\n isNumber(offset[align])) {\n newOffset = { ...offset, [align]: newOffset[align] + (box.width || 0) };\n }\n\n if ((layout === 'horizontal' || (layout === 'vertical' && align === 'center')) &&\n isNumber(offset[verticalAlign])) {\n newOffset = { ...offset, [verticalAlign]: newOffset[verticalAlign] + (box.height || 0) };\n }\n }\n\n return newOffset;\n};\n\n\nexport const getDomainOfErrorBars = (data, item, dataKey, axisType) => {\n const { children } = item.props;\n const errorBars = findAllByType(children, ErrorBar)\n .filter((errorBarChild) => {\n const { direction } = errorBarChild.props;\n\n return (_.isNil(direction) || _.isNil(axisType)) ?\n true : (axisType.indexOf(direction) >= 0);\n });\n\n if (errorBars && errorBars.length) {\n const keys = errorBars.map(errorBarChild => errorBarChild.props.dataKey);\n\n return data.reduce((result, entry) => {\n const entryValue = getValueByDataKey(entry, dataKey, 0);\n const mainValue = _.isArray(entryValue) ?\n [_.min(entryValue), _.max(entryValue)] : [entryValue, entryValue];\n const errorDomain = keys.reduce((prevErrorArr, k) => {\n const errorValue = getValueByDataKey(entry, k, 0);\n const lowerValue = mainValue[0] - Math.abs(\n _.isArray(errorValue) ? errorValue[0] : errorValue\n );\n const upperValue = mainValue[1] + Math.abs(\n _.isArray(errorValue) ? errorValue[1] : errorValue\n );\n\n return [\n Math.min(lowerValue, prevErrorArr[0]),\n Math.max(upperValue, prevErrorArr[1]),\n ];\n }, [Infinity, -Infinity]);\n\n return [Math.min(errorDomain[0], result[0]), Math.max(errorDomain[1], result[1])];\n }, [Infinity, -Infinity]);\n }\n\n return null;\n};\nexport const parseErrorBarsOfAxis = (data, items, dataKey, axisType) => {\n const domains = items\n .map(item => getDomainOfErrorBars(data, item, dataKey, axisType))\n .filter(entry => !_.isNil(entry));\n\n if (domains && domains.length) {\n return domains.reduce((result, entry) => (\n [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])]\n ), [Infinity, -Infinity]);\n }\n\n return null;\n};\n/**\n * Get domain of data by the configuration of item element\n * @param {Array} data The data displayed in the chart\n * @param {Array} items The instances of item\n * @param {String} type The type of axis, number - Number Axis, category - Category Axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain\n */\nexport const getDomainOfItemsWithSameAxis = (data, items, type, filterNil) => {\n const domains = items.map((item) => {\n const { dataKey } = item.props;\n\n if (type === 'number' && dataKey) {\n return getDomainOfErrorBars(data, item, dataKey) ||\n getDomainOfDataByKey(data, dataKey, type, filterNil);\n }\n return getDomainOfDataByKey(data, dataKey, type, filterNil);\n });\n\n if (type === 'number') {\n // Calculate the domain of number axis\n return domains.reduce((result, entry) => [\n Math.min(result[0], entry[0]),\n Math.max(result[1], entry[1]),\n ], [Infinity, -Infinity]);\n }\n\n const tag = {};\n // Get the union set of category axis\n return domains.reduce((result, entry) => {\n for (let i = 0, len = entry.length; i < len; i++) {\n if (!tag[entry[i]]) {\n tag[entry[i]] = true;\n\n result.push(entry[i]);\n }\n }\n return result;\n }, []);\n};\n\nexport const isCategorialAxis = (layout, axisType) => (\n (layout === 'horizontal' && axisType === 'xAxis') ||\n (layout === 'vertical' && axisType === 'yAxis') ||\n (layout === 'centric' && axisType === 'angleAxis') ||\n (layout === 'radial' && axisType === 'radiusAxis')\n);\n\n/**\n * Calculate the Coordinates of grid\n * @param {Array} ticks The ticks in axis\n * @param {Number} min The minimun value of axis\n * @param {Number} max The maximun value of axis\n * @return {Array} Coordinates\n */\nexport const getCoordinatesOfGrid = (ticks, min, max) => {\n let hasMin, hasMax;\n\n const values = ticks.map((entry) => {\n if (entry.coordinate === min) { hasMin = true; }\n if (entry.coordinate === max) { hasMax = true; }\n\n return entry.coordinate;\n });\n\n if (!hasMin) { values.push(min); }\n if (!hasMax) { values.push(max); }\n\n return values;\n};\n\n/**\n * Get the ticks of an axis\n * @param {Object} axis The configuration of an axis\n * @param {Boolean} isGrid Whether or not are the ticks in grid\n * @param {Boolean} isAll Return the ticks of all the points or not\n * @return {Array} Ticks\n */\nexport const getTicksOfAxis = (axis, isGrid, isAll) => {\n if (!axis) return null;\n const { scale } = axis;\n const { duplicateDomain, type, range } = axis;\n let offset = ((isGrid || isAll) && type === 'category' && scale.bandwidth) ?\n scale.bandwidth() / 2 : 0;\n offset = axis.axisType === 'angleAxis' ? mathSign(range[0] - range[1]) * 2 * offset : offset;\n\n // The ticks setted by user should only affect the ticks adjacent to axis line\n if (isGrid && (axis.ticks || axis.niceTicks)) {\n return (axis.ticks || axis.niceTicks).map((entry) => {\n const scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;\n\n return {\n coordinate: scale(scaleContent) + offset,\n value: entry,\n offset,\n };\n });\n }\n\n if (axis.isCategorial && axis.categoricalDomain) {\n return axis.categoricalDomain.map((entry, index) => (\n {\n coordinate: scale(entry),\n value: entry,\n index,\n offset,\n }\n ));\n }\n\n if (scale.ticks && !isAll) {\n return scale.ticks(axis.tickCount).map(entry => (\n { coordinate: scale(entry) + offset, value: entry, offset }\n ));\n }\n\n // When axis has duplicated text, serial numbers are used to generate scale\n return scale.domain().map((entry, index) => ({\n coordinate: scale(entry) + offset,\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index,\n offset,\n }));\n};\n\n/**\n * combine the handlers\n * @param {Function} defaultHandler Internal private handler\n * @param {Function} parentHandler Handler function specified in parent component\n * @param {Function} childHandler Handler function specified in child component\n * @return {Function} The combined handler\n */\nexport const combineEventHandlers = (defaultHandler, parentHandler, childHandler) => {\n let customizedHandler;\n\n if (_.isFunction(childHandler)) {\n customizedHandler = childHandler;\n } else if (_.isFunction(parentHandler)) {\n customizedHandler = parentHandler;\n }\n\n if (_.isFunction(defaultHandler) || customizedHandler) {\n return (arg1, arg2, arg3, arg4) => {\n if (_.isFunction(defaultHandler)) {\n defaultHandler(arg1, arg2, arg3, arg4);\n }\n if (_.isFunction(customizedHandler)) {\n customizedHandler(arg1, arg2, arg3, arg4);\n }\n\n };\n }\n\n return null;\n};\n/**\n * Parse the scale function of axis\n * @param {Object} axis The option of axis\n * @param {String} chartType The displayName of chart\n * @return {Function} The scale funcion\n */\nexport const parseScale = (axis, chartType) => {\n const { scale, type, layout, axisType } = axis;\n if (scale === 'auto') {\n if (layout === 'radial' && axisType === 'radiusAxis') {\n return { scale: d3Scales.scaleBand(), realScaleType: 'band' };\n } if (layout === 'radial' && axisType === 'angleAxis') {\n return { scale: d3Scales.scaleLinear(), realScaleType: 'linear' };\n }\n\n if (type === 'category' && chartType && (chartType.indexOf('LineChart') >= 0 ||\n chartType.indexOf('AreaChart') >= 0)) {\n return { scale: d3Scales.scalePoint(), realScaleType: 'point' };\n } if (type === 'category') {\n return { scale: d3Scales.scaleBand(), realScaleType: 'band' };\n }\n\n return { scale: d3Scales.scaleLinear(), realScaleType: 'linear' };\n } if (_.isString(scale)) {\n const name = `scale${scale.slice(0, 1).toUpperCase()}${scale.slice(1)}`;\n\n return {\n scale: (d3Scales[name] || d3Scales.scalePoint)(),\n realScaleType: d3Scales[name] ? name : 'point',\n };\n }\n\n return _.isFunction(scale) ?\n { scale } :\n { scale: d3Scales.scalePoint(), realScaleType: 'point' };\n};\nconst EPS = 1e-4;\nexport const checkDomainOfScale = (scale) => {\n const domain = scale.domain();\n\n if (!domain || domain.length <= 2) { return; }\n\n const len = domain.length;\n const range = scale.range();\n const min = Math.min(range[0], range[1]) - EPS;\n const max = Math.max(range[0], range[1]) + EPS;\n const first = scale(domain[0]);\n const last = scale(domain[len - 1]);\n\n if (first < min || first > max || last < min || last > max) {\n scale.domain([domain[0], domain[len - 1]]);\n }\n};\n\nexport const findPositionOfBar = (barPosition, child) => {\n if (!barPosition) { return null; }\n\n for (let i = 0, len = barPosition.length; i < len; i++) {\n if (barPosition[i].item === child) {\n return barPosition[i].position;\n }\n }\n\n return null;\n};\n\nexport const truncateByDomain = (value, domain) => {\n if (!domain || domain.length !== 2 || !isNumber(domain[0]) ||\n !isNumber(domain[1])) {\n return value;\n }\n\n const min = Math.min(domain[0], domain[1]);\n const max = Math.max(domain[0], domain[1]);\n\n const result = [value[0], value[1]];\n if (!isNumber(value[0]) || value[0] < min) {\n result[0] = min;\n }\n\n if (!isNumber(value[1]) || value[1] > max) {\n result[1] = max;\n }\n\n if (result[0] > max) { result[0] = max; }\n\n if (result[1] < min) { result[1] = min; }\n\n return result;\n};\n\n/* eslint no-param-reassign: 0 */\nexport const offsetSign = (series) => {\n const n = series.length;\n if (n <= 0) { return; }\n\n for (let j = 0, m = series[0].length; j < m; ++j) {\n let positive = 0;\n let negative = 0;\n\n for (let i = 0; i < n; ++i) {\n const value = _.isNaN(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n\n /* eslint-disable prefer-destructuring */\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = negative;\n series[i][j][1] = negative + value;\n negative = series[i][j][1];\n }\n /* eslint-enable prefer-destructuring */\n }\n }\n};\n\nconst STACK_OFFSET_MAP = {\n sign: offsetSign,\n expand: stackOffsetExpand,\n none: stackOffsetNone,\n silhouette: stackOffsetSilhouette,\n wiggle: stackOffsetWiggle,\n};\n\nexport const getStackedData = (data, stackItems, offsetType) => {\n const dataKeys = stackItems.map(item => item.props.dataKey);\n const stack = shapeStack()\n .keys(dataKeys)\n .value((d, key) => +getValueByDataKey(d, key, 0))\n .order(stackOrderNone)\n .offset(STACK_OFFSET_MAP[offsetType]);\n\n return stack(data);\n};\n\nexport const getStackGroupsByAxisId = (\n data, _items, numericAxisId, cateAxisId, offsetType, reverseStackOrder\n) => {\n if (!data) { return null; }\n\n // reversing items to affect render order (for layering)\n const items = reverseStackOrder ? _items.reverse() : _items;\n\n const stackGroups = items.reduce((result, item) => {\n const { stackId, hide } = item.props;\n\n if (hide) { return result; }\n\n const axisId = item.props[numericAxisId];\n const parentGroup = result[axisId] || { hasStack: false, stackGroups: {} };\n\n if (isNumOrStr(stackId)) {\n const childGroup = parentGroup.stackGroups[stackId] || {\n numericAxisId, cateAxisId, items: [],\n };\n\n childGroup.items.push(item);\n\n parentGroup.hasStack = true;\n\n parentGroup.stackGroups[stackId] = childGroup;\n } else {\n parentGroup.stackGroups[uniqueId('_stackId_')] = {\n numericAxisId, cateAxisId, items: [item],\n };\n }\n\n return { ...result, [axisId]: parentGroup };\n }, {});\n\n return Object.keys(stackGroups).reduce((result, axisId) => {\n const group = stackGroups[axisId];\n\n if (group.hasStack) {\n group.stackGroups = Object.keys(group.stackGroups).reduce((res, stackId) => {\n const g = group.stackGroups[stackId];\n\n return {\n ...res,\n [stackId]: {\n numericAxisId,\n cateAxisId,\n items: g.items,\n stackedData: getStackedData(data, g.items, offsetType),\n },\n };\n }, {});\n }\n\n return { ...result, [axisId]: group };\n }, {});\n};\n\n/**\n * get domain of ticks\n * @param {Array} ticks Ticks of axis\n * @param {String} type The type of axis\n * @return {Array} domain\n */\nexport const calculateDomainOfTicks = (ticks, type) => {\n if (type === 'number') {\n return [Math.min.apply(null, ticks), Math.max.apply(null, ticks)];\n }\n\n return ticks;\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 const getTicksOfScale = (scale, opts) => {\n const { realScaleType, type, tickCount, originalDomain, allowDecimals } = opts;\n const scaleType = realScaleType || opts.scale;\n\n if (scaleType !== 'auto' && scaleType !== 'linear') {\n return null;\n }\n\n if (tickCount && type === 'number' && originalDomain && (\n originalDomain[0] === 'auto' || originalDomain[1] === 'auto')) {\n // Calculate the ticks by the number of grid when the axis is a number axis\n const domain = scale.domain();\n const tickValues = getNiceTickValues(domain, tickCount, allowDecimals);\n\n scale.domain(calculateDomainOfTicks(tickValues, type));\n\n return { niceTicks: tickValues };\n } if (tickCount && type === 'number') {\n const domain = scale.domain();\n const tickValues = getTickValuesFixedDomain(domain, tickCount, allowDecimals);\n\n return { niceTicks: tickValues };\n }\n\n return null;\n};\n\nexport const getCateCoordinateOfLine = ({ axis, ticks, bandSize, entry, index }) => {\n if (axis.type === 'category') {\n // find coordinate of category axis by the value of category\n if (!axis.allowDuplicatedCategory && axis.dataKey && !_.isNil(entry[axis.dataKey])) {\n const matchedTick = findEntryInArray(ticks, 'value', entry[axis.dataKey]);\n\n if (matchedTick) {\n return matchedTick.coordinate + bandSize / 2;\n }\n }\n\n return ticks[index] ? ticks[index].coordinate + bandSize / 2 : null;\n }\n\n const value = getValueByDataKey(entry, axis.dataKey);\n\n return !_.isNil(value) ? axis.scale(value) : null;\n};\n\nexport const getCateCoordinateOfBar = ({ axis, ticks, offset, bandSize, entry, index }) => {\n if (axis.type === 'category') {\n return ticks[index] ? ticks[index].coordinate + offset : null;\n }\n const value = getValueByDataKey(entry, axis.dataKey, axis.domain[index]);\n\n return !_.isNil(value) ? axis.scale(value) - bandSize / 2 + offset : null;\n};\n\n\nexport const getBaseValueOfBar = ({ numericAxis }) => {\n const domain = numericAxis.scale.domain();\n\n if (numericAxis.type === 'number') {\n const min = Math.min(domain[0], domain[1]);\n const max = Math.max(domain[0], domain[1]);\n\n if (min <= 0 && max >= 0) { return 0; }\n if (max < 0) { return max; }\n\n return min;\n }\n\n return domain[0];\n};\n\nexport const ifOverflowMatches = (props, value) => {\n const { alwaysShow } = props;\n let { ifOverflow } = props;\n\n if (alwaysShow) {\n ifOverflow = 'extendDomain';\n }\n\n return ifOverflow === value;\n};\n\nexport const detectReferenceElementsDomain = (\n children, domain, axisId, axisType, specifiedTicks\n) => {\n const lines = findAllByType(children, ReferenceLine);\n const dots = findAllByType(children, ReferenceDot);\n const elements = lines.concat(dots);\n const areas = findAllByType(children, ReferenceArea);\n const idKey = `${axisType}Id`;\n const valueKey = axisType[0];\n let finalDomain = domain;\n\n if (elements.length) {\n finalDomain = elements.reduce((result, el) => {\n if (el.props[idKey] === axisId &&\n ifOverflowMatches(el.props, 'extendDomain') &&\n isNumber(el.props[valueKey])) {\n const value = el.props[valueKey];\n\n return [Math.min(result[0], value), Math.max(result[1], value)];\n }\n return result;\n }, finalDomain);\n }\n\n if (areas.length) {\n const key1 = `${valueKey}1`;\n const key2 = `${valueKey}2`;\n\n finalDomain = areas.reduce((result, el) => {\n if (el.props[idKey] === axisId &&\n ifOverflowMatches(el.props, 'extendDomain') &&\n (isNumber(el.props[key1]) && isNumber(el.props[key2]))) {\n const value1 = el.props[key1];\n const value2 = el.props[key2];\n\n return [Math.min(result[0], value1, value2), Math.max(result[1], value1, value2)];\n }\n return result;\n }, finalDomain);\n }\n\n if (specifiedTicks && specifiedTicks.length) {\n finalDomain = specifiedTicks.reduce((result, tick) => {\n if (isNumber(tick)) {\n return [Math.min(result[0], tick), Math.max(result[1], tick)];\n }\n\n return result;\n }, finalDomain);\n }\n\n return finalDomain;\n};\n\nexport const getStackedDataOfItem = (item, stackGroups) => {\n const { stackId } = item.props;\n\n if (isNumOrStr(stackId)) {\n const group = stackGroups[stackId];\n\n if (group && group.items.length) {\n let itemIndex = -1;\n\n for (let i = 0, len = group.items.length; i < len; i++) {\n if (group.items[i] === item) {\n itemIndex = i;\n break;\n }\n }\n return itemIndex >= 0 ? group.stackedData[itemIndex] : null;\n }\n }\n\n return null;\n};\n\nconst getDomainOfSingle = data => (\n data.reduce((result, entry) => [\n Math.min.apply(null, entry.concat([result[0]]).filter(isNumber)),\n Math.max.apply(null, entry.concat([result[1]]).filter(isNumber)),\n ], [Infinity, -Infinity])\n);\n\nexport const getDomainOfStackGroups = (stackGroups, startIndex, endIndex) => (\n Object.keys(stackGroups)\n .reduce((result, stackId) => {\n const group = stackGroups[stackId];\n const { stackedData } = group;\n const domain = stackedData.reduce((res, entry) => {\n const s = getDomainOfSingle(entry.slice(startIndex, endIndex + 1));\n\n return [Math.min(res[0], s[0]), Math.max(res[1], s[1])];\n }, [Infinity, -Infinity]);\n\n return [Math.min(domain[0], result[0]), Math.max(domain[1], result[1])];\n }, [Infinity, -Infinity])\n .map(result => (result === Infinity || result === -Infinity ? 0 : result))\n);\n\nexport const MIN_VALUE_REG = /^dataMin[\\s]*-[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport const MAX_VALUE_REG = /^dataMax[\\s]*\\+[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\n\nexport const parseSpecifiedDomain = (specifiedDomain, dataDomain, allowDataOverflow) => {\n if (!_.isArray(specifiedDomain)) {\n return dataDomain;\n }\n\n const domain = [];\n\n /* eslint-disable prefer-destructuring */\n if (isNumber(specifiedDomain[0])) {\n domain[0] = allowDataOverflow ?\n specifiedDomain[0] : Math.min(specifiedDomain[0], dataDomain[0]);\n } else if (MIN_VALUE_REG.test(specifiedDomain[0])) {\n const value = +MIN_VALUE_REG.exec(specifiedDomain[0])[1];\n\n domain[0] = dataDomain[0] - value;\n } else if (_.isFunction(specifiedDomain[0])) {\n domain[0] = specifiedDomain[0](dataDomain[0]);\n } else {\n domain[0] = dataDomain[0];\n }\n\n if (isNumber(specifiedDomain[1])) {\n domain[1] = allowDataOverflow ?\n specifiedDomain[1] : Math.max(specifiedDomain[1], dataDomain[1]);\n } else if (MAX_VALUE_REG.test(specifiedDomain[1])) {\n const value = +MAX_VALUE_REG.exec(specifiedDomain[1])[1];\n\n domain[1] = dataDomain[1] + value;\n } else if (_.isFunction(specifiedDomain[1])) {\n domain[1] = specifiedDomain[1](dataDomain[1]);\n } else {\n domain[1] = dataDomain[1];\n }\n /* eslint-enable prefer-destructuring */\n\n 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 * @return {Number} Size\n */\nexport const getBandSizeOfAxis = (axis, ticks) => {\n if (axis && axis.scale && axis.scale.bandwidth) {\n return axis.scale.bandwidth();\n }\n\n if (axis && ticks && ticks.length >= 2) {\n const orderedTicks = _.sortBy(ticks, o => o.coordinate);\n let bandSize = Infinity;\n\n for (let i = 1, len = orderedTicks.length; i < len; i++) {\n const cur = orderedTicks[i];\n const prev = orderedTicks[i - 1];\n\n bandSize = Math.min((cur.coordinate || 0) - (prev.coordinate || 0), bandSize);\n }\n\n return bandSize === Infinity ? 0 : bandSize;\n }\n\n return 0;\n};\n/**\n * parse the domain of a category axis when a domain is specified\n * @param {Array} specifiedDomain The domain specified by users\n * @param {Array} calculatedDomain The domain calculated by dateKey\n * @param {ReactElement} axisChild The axis element\n * @returns {Array} domains\n */\nexport const parseDomainOfCategoryAxis = (specifiedDomain, calculatedDomain, axisChild) => {\n if (!specifiedDomain || !specifiedDomain.length) {\n return calculatedDomain;\n }\n\n if (_.isEqual(specifiedDomain, _.get(axisChild, 'type.defaultProps.domain'))) {\n return calculatedDomain;\n }\n\n return specifiedDomain;\n};\n","import none from \"./none\";\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\";\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\";\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","import _ from 'lodash';\nimport { getPercentValue } from './DataUtils';\nimport { parseScale, checkDomainOfScale, getTicksOfScale } from './ChartUtils';\n\nexport const RADIAN = Math.PI / 180;\n\nexport const degreeToRadian = angle => angle * Math.PI / 180;\n\nexport const radianToDegree = angleInRadian => angleInRadian * 180 / Math.PI;\n\nexport const polarToCartesian = (cx, cy, radius, angle) => ({\n x: cx + Math.cos(-RADIAN * angle) * radius,\n y: cy + Math.sin(-RADIAN * angle) * radius,\n});\n\nexport const getMaxRadius = (width, height, offset = {\n top: 0, right: 0, bottom: 0, left: 0,\n}) => (\n Math.min(\n Math.abs(width - (offset.left || 0) - (offset.right || 0)),\n Math.abs(height - (offset.top || 0) - (offset.bottom || 0))\n ) / 2);\n\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {Object} axisType The type of axes, radius-axis or angle-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\nexport const formatAxisMap = (props, axisMap, offset, axisType, chartName) => {\n const { width, height } = props;\n let { startAngle, endAngle } = props;\n const cx = getPercentValue(props.cx, width, width / 2);\n const cy = getPercentValue(props.cy, height, height / 2);\n const maxRadius = getMaxRadius(width, height, offset);\n const innerRadius = getPercentValue(props.innerRadius, maxRadius, 0);\n const outerRadius = getPercentValue(props.outerRadius, maxRadius, maxRadius * 0.8);\n const ids = Object.keys(axisMap);\n\n return ids.reduce((result, id) => {\n const axis = axisMap[id];\n const { domain, reversed } = axis;\n let range;\n\n if (_.isNil(axis.range)) {\n if (axisType === 'angleAxis') {\n range = [startAngle, endAngle];\n } else if (axisType === 'radiusAxis') {\n range = [innerRadius, outerRadius];\n }\n\n if (reversed) {\n range = [range[1], range[0]];\n }\n } else {\n ({ range } = axis);\n [startAngle, endAngle] = range;\n }\n\n const { realScaleType, scale } = parseScale(axis, chartName);\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n const ticks = getTicksOfScale(scale, { ...axis, realScaleType });\n\n const finalAxis = {\n ...axis,\n ...ticks,\n range,\n radius: outerRadius,\n realScaleType, scale, cx, cy, innerRadius, outerRadius, startAngle, endAngle,\n };\n\n return { ...result, [id]: finalAxis };\n }, {});\n};\n\nexport const distanceBetweenPoints = (point, anotherPoint) => {\n const { x: x1, y: y1 } = point;\n const { x: x2, y: y2 } = anotherPoint;\n\n return Math.sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2);\n};\n\nexport const getAngleOfPoint = ({ x, y }, { cx, cy }) => {\n const radius = distanceBetweenPoints({ x, y }, { x: cx, y: cy });\n\n if (radius <= 0) { return { radius }; }\n\n const cos = (x - cx) / radius;\n let angleInRadian = Math.acos(cos);\n\n if (y > cy) {\n angleInRadian = 2 * Math.PI - angleInRadian;\n }\n\n return { radius, angle: radianToDegree(angleInRadian), angleInRadian };\n};\n\nexport const formatAngleOfSector = ({ startAngle, endAngle }) => {\n const startCnt = Math.floor(startAngle / 360);\n const endCnt = Math.floor(endAngle / 360);\n const min = Math.min(startCnt, endCnt);\n\n return {\n startAngle: startAngle - min * 360,\n endAngle: endAngle - min * 360,\n };\n};\n\nconst reverseFormatAngleOfSetor = (angle, { startAngle, endAngle }) => {\n const startCnt = Math.floor(startAngle / 360);\n const endCnt = Math.floor(endAngle / 360);\n const min = Math.min(startCnt, endCnt);\n\n return angle + min * 360;\n};\n\nexport const inRangeOfSector = ({ x, y }, sector) => {\n const { radius, angle } = getAngleOfPoint({ x, y }, sector);\n const { innerRadius, outerRadius } = sector;\n\n if (radius < innerRadius || radius > outerRadius) {\n return false;\n }\n\n if (radius === 0) { return true; }\n\n const { startAngle, endAngle } = formatAngleOfSector(sector);\n let formatAngle = angle;\n let inRange;\n\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\n if (inRange) {\n return { ...sector, radius, angle: reverseFormatAngleOfSetor(formatAngle, sector) };\n }\n\n return null;\n};\n","import React, { cloneElement, isValidElement } from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport classNames from 'classnames';\nimport Text from './Text';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes, findAllByType } from '../util/ReactUtils';\nimport { isNumOrStr, isNumber, isPercent, getPercentValue, uniqueId,\n mathSign } from '../util/DataUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\n\nconst cartesianViewBoxShape = PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n});\nconst polarViewBoxShape = PropTypes.shape({\n cx: PropTypes.number,\n cy: PropTypes.number,\n innerRadius: PropTypes.number,\n outerRadius: PropTypes.number,\n startAngle: PropTypes.number,\n endAngle: PropTypes.number,\n});\n\nconst propTypes = {\n ...PRESENTATION_ATTRIBUTES,\n viewBox: PropTypes.oneOfType([cartesianViewBoxShape, polarViewBoxShape]),\n formatter: PropTypes.func,\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n offset: PropTypes.number,\n position: PropTypes.oneOf([\n 'top', 'left', 'right', 'bottom', 'inside', 'outside',\n 'insideLeft', 'insideRight', 'insideTop', 'insideBottom',\n 'insideTopLeft', 'insideBottomLeft', 'insideTopRight', 'insideBottomRight',\n 'insideStart', 'insideEnd', 'end', 'center', 'centerTop', 'centerBottom'\n ]),\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n className: PropTypes.string,\n content: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n};\n\nconst defaultProps = {\n offset: 5,\n};\n\nconst getLabel = (props) => {\n const { value, formatter } = props;\n const label = _.isNil(props.children) ? value : props.children;\n\n if (_.isFunction(formatter)) {\n return formatter(label);\n }\n\n return label;\n};\n\nconst getDeltaAngle = (startAngle, endAngle) => {\n const sign = mathSign(endAngle - startAngle);\n const deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n\n return sign * deltaAngle;\n};\n\nconst renderRadialLabel = (labelProps, label, attrs) => {\n const { position, viewBox, offset, className } = labelProps;\n const { cx, cy, innerRadius, outerRadius, startAngle, endAngle,\n clockWise } = viewBox;\n const radius = (innerRadius + outerRadius) / 2;\n const deltaAngle = getDeltaAngle(startAngle, endAngle);\n const sign = deltaAngle >= 0 ? 1 : -1;\n let labelAngle, direction;\n\n if (position === 'insideStart') {\n labelAngle = startAngle + sign * offset;\n direction = clockWise;\n } else if (position === 'insideEnd') {\n labelAngle = endAngle - sign * offset;\n direction = !clockWise;\n } else if (position === 'end') {\n labelAngle = endAngle + sign * offset;\n direction = clockWise;\n }\n\n direction = deltaAngle <= 0 ? direction : !direction;\n\n const startPoint = polarToCartesian(cx, cy, radius, labelAngle);\n const endPoint = polarToCartesian(cx, cy, radius, labelAngle + (direction ? 1 : -1) * 359);\n const path = `M${startPoint.x},${startPoint.y}\n A${radius},${radius},0,1,${direction ? 0 : 1},\n ${endPoint.x},${endPoint.y}`;\n const id = _.isNil(labelProps.id) ? uniqueId('recharts-radial-line-') : labelProps.id;\n\n return (\n <text\n {...attrs}\n dominantBaseline=\"central\"\n className={classNames('recharts-radial-bar-label', className)}\n >\n <defs><path id={id} d={path} /></defs>\n <textPath xlinkHref={`#${id}`}>{label}</textPath>\n </text>\n );\n};\n\nconst getAttrsOfPolarLabel = (props) => {\n const { viewBox, offset, position } = props;\n const { cx, cy, innerRadius, outerRadius, startAngle, endAngle } = viewBox;\n const midAngle = (startAngle + endAngle) / 2;\n\n if (position === 'outside') {\n const { x, y } = polarToCartesian(cx, cy, outerRadius + offset, midAngle);\n\n return {\n x,\n y,\n textAnchor: x >= cx ? 'start' : 'end',\n verticalAnchor: 'middle',\n };\n }\n\n if (position === 'center') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'middle',\n };\n }\n\n if (position === 'centerTop') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'start',\n };\n }\n\n if (position === 'centerBottom') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'end',\n };\n }\n\n const r = (innerRadius + outerRadius) / 2;\n const { x, y } = polarToCartesian(cx, cy, r, midAngle);\n\n return {\n x,\n y,\n textAnchor: 'middle',\n verticalAnchor: 'middle',\n };\n};\n\nconst getAttrsOfCartesianLabel = (props) => {\n const { viewBox, offset, position } = props;\n const { x, y, width, height } = viewBox;\n const sign = height >= 0 ? 1 : -1;\n\n if (position === 'top') {\n return {\n x: x + width / 2,\n y: y - sign * offset,\n textAnchor: 'middle',\n verticalAnchor: sign > 0 ? 'end' : 'start',\n };\n }\n\n if (position === 'bottom') {\n return {\n x: x + width / 2,\n y: y + height + sign * offset,\n textAnchor: 'middle',\n verticalAnchor: 'start',\n };\n }\n\n if (position === 'left') {\n return {\n x: x - offset,\n y: y + height / 2,\n textAnchor: 'end',\n verticalAnchor: 'middle',\n };\n }\n\n if (position === 'right') {\n return {\n x: x + width + offset,\n y: y + height / 2,\n textAnchor: 'start',\n verticalAnchor: 'middle',\n };\n }\n\n if (position === 'insideLeft') {\n return {\n x: x + offset,\n y: y + height / 2,\n textAnchor: 'start',\n verticalAnchor: 'middle',\n };\n }\n\n if (position === 'insideRight') {\n return {\n x: x + width - offset,\n y: y + height / 2,\n textAnchor: 'end',\n verticalAnchor: 'middle',\n };\n }\n\n if (position === 'insideTop') {\n return {\n x: x + width / 2,\n y: y + sign * offset,\n textAnchor: 'middle',\n verticalAnchor: 'start',\n };\n }\n\n if (position === 'insideBottom') {\n return {\n x: x + width / 2,\n y: y + height - sign * offset,\n textAnchor: 'middle',\n verticalAnchor: 'end',\n };\n }\n\n if (position === 'insideTopLeft') {\n return {\n x: x + offset,\n y: y + sign * offset,\n textAnchor: 'start',\n verticalAnchor: 'start',\n };\n }\n\n if (position === 'insideTopRight') {\n return {\n x: x + width - offset,\n y: y + sign * offset,\n textAnchor: 'end',\n verticalAnchor: 'start',\n };\n }\n\n if (position === 'insideBottomLeft') {\n return {\n x: x + offset,\n y: y + height - sign * offset,\n textAnchor: 'start',\n verticalAnchor: 'end',\n };\n }\n\n if (position === 'insideBottomRight') {\n return {\n x: x + width - offset,\n y: y + height - sign * offset,\n textAnchor: 'end',\n verticalAnchor: 'end',\n };\n }\n\n if (_.isObject(position) && (isNumber(position.x) || isPercent(position.x)) &&\n (isNumber(position.y) || isPercent(position.y))\n ) {\n return {\n x: x + getPercentValue(position.x, width),\n y: y + getPercentValue(position.y, height),\n textAnchor: 'end',\n verticalAnchor: 'end',\n };\n }\n\n return {\n x: x + width / 2,\n y: y + height / 2,\n textAnchor: 'middle',\n verticalAnchor: 'middle',\n };\n};\n\nconst isPolar = viewBox => isNumber(viewBox.cx);\n\nfunction Label(props) {\n const { viewBox, position, value, children, content, className = '' } = props;\n\n if (!viewBox || (_.isNil(value) && _.isNil(children) &&\n !isValidElement(content) && !_.isFunction(content))) { return null; }\n\n if (isValidElement(content)) { return cloneElement(content, props); }\n\n let label;\n if (_.isFunction(content)) {\n label = content(props);\n\n if (isValidElement(label)) {\n return label;\n }\n } else {\n label = getLabel(props);\n }\n\n const isPolarLabel = isPolar(viewBox);\n const attrs = getPresentationAttributes(props);\n\n if (isPolarLabel && (position === 'insideStart' ||\n position === 'insideEnd' || position === 'end')) {\n return renderRadialLabel(props, label, attrs);\n }\n\n const positionAttrs = isPolarLabel ?\n getAttrsOfPolarLabel(props) :\n getAttrsOfCartesianLabel(props);\n\n return (\n <Text\n className={classNames('recharts-label', className)}\n {...attrs}\n {...positionAttrs}\n >\n {label}\n </Text>\n );\n}\n\nLabel.displayName = 'Label';\nLabel.defaultProps = defaultProps;\nLabel.propTypes = propTypes;\n\nconst parseViewBox = (props) => {\n const { cx, cy, angle, startAngle, endAngle, r, radius, innerRadius, outerRadius,\n x, y, top, left, width, height, clockWise } = props;\n\n if (isNumber(width) && isNumber(height)) {\n if (isNumber(x) && isNumber(y)) {\n return { x, y, width, height };\n } if (isNumber(top) && isNumber(left)) {\n return { x: top, y: left, width, height };\n }\n }\n\n if (isNumber(x) && isNumber(y)) {\n return { x, y, width: 0, height: 0 };\n }\n\n if (isNumber(cx) && isNumber(cy)) {\n return {\n cx, cy,\n startAngle: startAngle || angle || 0,\n endAngle: endAngle || angle || 0,\n innerRadius: innerRadius || 0,\n outerRadius: outerRadius || radius || r || 0,\n clockWise,\n };\n }\n\n if (props.viewBox) {\n return props.viewBox;\n }\n\n return {};\n};\n\nconst parseLabel = (label, viewBox) => {\n if (!label) { return null; }\n\n if (label === true) {\n return <Label key=\"label-implicit\" viewBox={viewBox} />;\n }\n\n if (isNumOrStr(label)) {\n return <Label key=\"label-implicit\" viewBox={viewBox} value={label} />;\n }\n\n if (isValidElement(label) || _.isFunction(label)) {\n return <Label key=\"label-implicit\" content={label} viewBox={viewBox} />;\n }\n\n if (_.isObject(label)) {\n return <Label viewBox={viewBox} {...label} key=\"label-implicit\" />;\n }\n\n return null;\n};\n\nconst renderCallByParent = (parentProps, viewBox, ckeckPropsLabel = true) => {\n if (!parentProps || (!parentProps.children && (ckeckPropsLabel && !parentProps.label))) {\n return null;\n }\n const { children } = parentProps;\n const parentViewBox = parseViewBox(parentProps);\n\n const explicitChilren = findAllByType(children, Label).map((child, index) => cloneElement(child, {\n viewBox: viewBox || parentViewBox,\n key: `label-${index}`,\n })\n );\n\n if (!ckeckPropsLabel) { return explicitChilren; }\n const implicitLabel = parseLabel(parentProps.label, viewBox || parentViewBox);\n\n return [implicitLabel, ...explicitChilren];\n};\n\nLabel.parseViewBox = parseViewBox;\nLabel.renderCallByParent = renderCallByParent;\n\nexport default Label;\n","import React, { cloneElement } from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport Label from './Label';\nimport Layer from '../container/Layer';\nimport { getPresentationAttributes, findAllByType } from '../util/ReactUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\n\nconst propTypes = {\n id: PropTypes.string,\n data: PropTypes.arrayOf(PropTypes.object),\n valueAccessor: PropTypes.func,\n clockWise: PropTypes.bool,\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),\n};\n\nconst defaultProps = {\n valueAccessor: entry => (_.isArray(entry.value) ? _.last(entry.value) : entry.value),\n};\n\nfunction LabelList(props) {\n const { data, valueAccessor, dataKey, clockWise, id, ...others } = props;\n\n if (!data || !data.length) { return null; }\n\n return (\n <Layer className=\"recharts-label-list\">\n {\n data.map((entry, index) => {\n const value = _.isNil(dataKey) ?\n valueAccessor(entry, index) :\n getValueByDataKey(entry && entry.payload, dataKey);\n const idProps = _.isNil(id) ? {} : {\n id: `${id}-${index}`,\n };\n\n return (\n <Label\n {...getPresentationAttributes(entry)}\n {...others}\n {...idProps}\n index={index}\n value={value}\n viewBox={Label.parseViewBox(_.isNil(clockWise) ? entry : { ...entry, clockWise })}\n key={`label-${index}`}\n />\n );\n })\n }\n </Layer>\n );\n}\n\nLabelList.propTypes = propTypes;\nLabelList.displayName = 'LabelList';\n\nconst parseLabelList = (label, data) => {\n if (!label) { return null; }\n\n if (label === true) {\n return <LabelList key=\"labelList-implicit\" data={data} />;\n }\n\n if (React.isValidElement(label) || _.isFunction(label)) {\n return <LabelList key=\"labelList-implicit\" data={data} content={label} />;\n }\n\n if (_.isObject(label)) {\n return <LabelList data={data} {...label} key=\"labelList-implicit\" />;\n }\n\n return null;\n};\n\nconst renderCallByParent = (parentProps, data, ckeckPropsLabel = true) => {\n if (!parentProps || (!parentProps.children && (ckeckPropsLabel && !parentProps.label))) {\n return null;\n }\n const { children } = parentProps;\n\n const explicitChilren = findAllByType(children, LabelList).map((child, index) => cloneElement(child, {\n data,\n key: `labelList-${index}`,\n })\n );\n if (!ckeckPropsLabel) { return explicitChilren; }\n\n const implicitLabelList = parseLabelList(parentProps.label, data);\n\n return [implicitLabelList, ...explicitChilren];\n};\n\nLabelList.renderCallByParent = renderCallByParent;\nLabelList.defaultProps = defaultProps;\n\nexport default LabelList;\n","/**\n * @fileOverview Sector\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport pureRender from '../util/PureRender';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes,\n filterEventAttributes } from '../util/ReactUtils';\nimport { polarToCartesian, RADIAN } from '../util/PolarUtils';\nimport { getPercentValue, mathSign } from '../util/DataUtils';\n\nconst getDeltaAngle = (startAngle, endAngle) => {\n const sign = mathSign(endAngle - startAngle);\n const deltaAngle = Math.min(Math.abs(endAngle - startAngle), 359.999);\n\n return sign * deltaAngle;\n};\n\nconst getTangentCircle = ({ cx, cy, radius, angle, sign, isExternal,\n cornerRadius }) => {\n const centerRadius = cornerRadius * (isExternal ? 1 : -1) + radius;\n const theta = Math.asin(cornerRadius / centerRadius) / RADIAN;\n const centerAngle = angle + sign * theta;\n const center = polarToCartesian(cx, cy, centerRadius, centerAngle);\n // The coordinate of point which is tangent to the circle\n const circleTangency = polarToCartesian(cx, cy, radius, centerAngle);\n // The coordinate of point which is tangent to the radius line\n const lineTangency = polarToCartesian(\n cx, cy, centerRadius * Math.cos(theta * RADIAN), angle);\n\n return { center, circleTangency, lineTangency, theta };\n};\n\nconst getSectorPath = ({ cx, cy, innerRadius, outerRadius, startAngle, endAngle }) => {\n const angle = getDeltaAngle(startAngle, endAngle);\n\n // When the angle of sector equals to 360, star point and end point coincide\n const tempEndAngle = startAngle + angle;\n const outerStartPoint = polarToCartesian(cx, cy, outerRadius, startAngle);\n const outerEndPoint = polarToCartesian(cx, cy, outerRadius, tempEndAngle);\n\n let path = `M ${outerStartPoint.x},${outerStartPoint.y}\n A ${outerRadius},${outerRadius},0,\n ${+(Math.abs(angle) > 180)},${+(startAngle > tempEndAngle)},\n ${outerEndPoint.x},${outerEndPoint.y}\n `;\n\n if (innerRadius > 0) {\n const innerStartPoint = polarToCartesian(cx, cy, innerRadius, startAngle);\n const innerEndPoint = polarToCartesian(cx, cy, innerRadius, tempEndAngle);\n path += `L ${innerEndPoint.x},${innerEndPoint.y}\n A ${innerRadius},${innerRadius},0,\n ${+(Math.abs(angle) > 180)},${+(startAngle <= tempEndAngle)},\n ${innerStartPoint.x},${innerStartPoint.y} Z`;\n } else {\n path += `L ${cx},${cy} Z`;\n }\n\n return path;\n};\n\nconst getSectorWithCorner = ({ cx, cy, innerRadius, outerRadius, cornerRadius, startAngle,\n endAngle }) => {\n const sign = mathSign(endAngle - startAngle);\n const { circleTangency: soct, lineTangency: solt, theta: sot } =\n getTangentCircle({\n cx, cy, radius: outerRadius, angle: startAngle, sign, cornerRadius,\n });\n const { circleTangency: eoct, lineTangency: eolt, theta: eot } =\n getTangentCircle({\n cx, cy, radius: outerRadius, angle: endAngle, sign: -sign, cornerRadius,\n });\n const outerArcAngle = Math.abs(startAngle - endAngle) - sot - eot;\n\n if (outerArcAngle < 0) {\n return getSectorPath({\n cx, cy, innerRadius, outerRadius, startAngle, endAngle,\n });\n }\n\n let path = `M ${solt.x},${solt.y}\n A${cornerRadius},${cornerRadius},0,0,${+(sign < 0)},${soct.x},${soct.y}\n A${outerRadius},${outerRadius},0,${+(outerArcAngle > 180)},${+(sign < 0)},${eoct.x},${eoct.y}\n A${cornerRadius},${cornerRadius},0,0,${+(sign < 0)},${eolt.x},${eolt.y}\n `;\n\n if (innerRadius > 0) {\n const { circleTangency: sict, lineTangency: silt, theta: sit } =\n getTangentCircle({\n cx, cy, radius: innerRadius, angle: startAngle, sign, isExternal: true, cornerRadius,\n });\n const { circleTangency: eict, lineTangency: eilt, theta: eit } =\n getTangentCircle({\n cx, cy, radius: innerRadius, angle: endAngle, sign: -sign, isExternal: true, cornerRadius,\n });\n const innerArcAngle = Math.abs(startAngle - endAngle) - sit - eit;\n\n if (innerArcAngle < 0) {\n return `${path}L${cx},${cy}Z`;\n }\n\n path += `L${eilt.x},${eilt.y}\n A${cornerRadius},${cornerRadius},0,0,${+(sign < 0)},${eict.x},${eict.y}\n A${innerRadius},${innerRadius},0,${+(innerArcAngle > 180)},${+(sign > 0)},${sict.x},${sict.y}\n A${cornerRadius},${cornerRadius},0,0,${+(sign < 0)},${silt.x},${silt.y}Z`;\n\n } else {\n path += `L${cx},${cy}Z`;\n }\n\n return path;\n};\n\n@pureRender\nclass Sector extends Component {\n\n static displayName = 'Sector';\n\n static propTypes = {\n ...PRESENTATION_ATTRIBUTES,\n className: PropTypes.string,\n cx: PropTypes.number,\n cy: PropTypes.number,\n innerRadius: PropTypes.number,\n outerRadius: PropTypes.number,\n startAngle: PropTypes.number,\n endAngle: PropTypes.number,\n cornerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n };\n\n static defaultProps = {\n cx: 0,\n cy: 0,\n innerRadius: 0,\n outerRadius: 0,\n startAngle: 0,\n endAngle: 0,\n cornerRadius: 0,\n };\n\n render() {\n const { cx, cy, innerRadius, outerRadius, cornerRadius, startAngle, endAngle,\n className } = this.props;\n\n if (outerRadius < innerRadius || startAngle === endAngle) { return null; }\n\n const layerClass = classNames('recharts-sector', className);\n const deltaRadius = outerRadius - innerRadius;\n const cr = getPercentValue(cornerRadius, deltaRadius, 0, true);\n let path;\n\n if (cr > 0 && Math.abs(startAngle - endAngle) < 360) {\n path = getSectorWithCorner({\n cx, cy, innerRadius, outerRadius,\n cornerRadius: Math.min(cr, deltaRadius / 2),\n startAngle, endAngle,\n });\n } else {\n path = getSectorPath({ cx, cy, innerRadius, outerRadius, startAngle, endAngle });\n }\n\n return (\n <path\n {...getPresentationAttributes(this.props)}\n {...filterEventAttributes(this.props)}\n className={layerClass}\n d={path}\n />\n );\n }\n}\n\nexport default Sector;\n","/**\n * @fileOverview Curve\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { line as shapeLine, area as shapeArea, curveBasisClosed, curveBasisOpen,\n curveBasis, curveLinearClosed, curveLinear, curveMonotoneX, curveMonotoneY,\n curveNatural, curveStep, curveStepAfter, curveStepBefore } from 'd3-shape';\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport pureRender from '../util/PureRender';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes,\n filterEventAttributes } from '../util/ReactUtils';\nimport { isNumber } from '../util/DataUtils';\n\nconst CURVE_FACTORIES = {\n curveBasisClosed, curveBasisOpen, curveBasis, curveLinearClosed, curveLinear,\n curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter,\n curveStepBefore,\n};\n\nconst defined = p => p.x === +p.x && p.y === +p.y;\nconst getX = p => p.x;\nconst getY = p => p.y;\n\nconst getCurveFactory = (type, layout) => {\n if (_.isFunction(type)) { return type; }\n\n const name = `curve${type.slice(0, 1).toUpperCase()}${type.slice(1)}`;\n\n if (name === 'curveMonotone' && layout) {\n return CURVE_FACTORIES[`${name}${layout === 'vertical' ? 'Y' : 'X'}`];\n }\n return CURVE_FACTORIES[name] || curveLinear;\n};\n\n@pureRender\nclass Curve extends Component {\n\n static displayName = 'Curve';\n\n static propTypes = {\n ...PRESENTATION_ATTRIBUTES,\n className: PropTypes.string,\n type: PropTypes.oneOfType([PropTypes.oneOf([\n 'basis', 'basisClosed', 'basisOpen', 'linear', 'linearClosed', 'natural',\n 'monotoneX', 'monotoneY', 'monotone', 'step', 'stepBefore', 'stepAfter',\n ]), PropTypes.func]),\n layout: PropTypes.oneOf(['horizontal', 'vertical']),\n baseLine: PropTypes.oneOfType([\n PropTypes.number, PropTypes.array,\n ]),\n points: PropTypes.arrayOf(PropTypes.object),\n connectNulls: PropTypes.bool,\n path: PropTypes.string,\n pathRef: PropTypes.func,\n };\n\n static defaultProps = {\n type: 'linear',\n points: [],\n connectNulls: false,\n };\n\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n getPath() {\n const { type, points, baseLine, layout, connectNulls } = this.props;\n const curveFactory = getCurveFactory(type, layout);\n const formatPoints = connectNulls ? points.filter(entry => defined(entry)) : points;\n let lineFunction;\n\n if (_.isArray(baseLine)) {\n const formatBaseLine = connectNulls ? baseLine.filter(base => defined(base)) : baseLine;\n const areaPoints = formatPoints.map((entry, index) => (\n { ...entry, base: formatBaseLine[index] }\n ));\n if (layout === 'vertical') {\n lineFunction = shapeArea().y(getY).x1(getX).x0(d => d.base.x);\n } else {\n lineFunction = shapeArea().x(getX).y1(getY).y0(d => d.base.y);\n }\n lineFunction.defined(defined).curve(curveFactory);\n\n return lineFunction(areaPoints);\n } if (layout === 'vertical' && isNumber(baseLine)) {\n lineFunction = shapeArea().y(getY).x1(getX).x0(baseLine);\n } else if (isNumber(baseLine)) {\n lineFunction = shapeArea().x(getX).y1(getY).y0(baseLine);\n } else {\n lineFunction = shapeLine().x(getX).y(getY);\n }\n\n lineFunction.defined(defined)\n .curve(curveFactory);\n\n return lineFunction(formatPoints);\n }\n\n render() {\n const { className, points, path, pathRef } = this.props;\n\n if ((!points || !points.length) && !path) { return null; }\n\n const realPath = (points && points.length) ?\n this.getPath() : path;\n\n return (\n <path\n {...getPresentationAttributes(this.props)}\n {...filterEventAttributes(this.props, null, true)}\n className={classNames('recharts-curve', className)}\n d={realPath}\n ref={pathRef}\n />\n );\n }\n}\n\nexport default Curve;\n","/**\n * @fileOverview Polygon\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport pureRender from '../util/PureRender';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes,\n filterEventAttributes } from '../util/ReactUtils';\n\nconst getPolygonPoints = points => (\n points.reduce((result, entry) => {\n if (entry.x === +entry.x && entry.y === +entry.y) {\n result.push([entry.x, entry.y]);\n }\n\n return result;\n }, []).join(' ')\n);\n\n@pureRender\nclass Polygon extends Component {\n\n static displayName = 'Polygon';\n\n static propTypes = {\n ...PRESENTATION_ATTRIBUTES,\n className: PropTypes.string,\n points: PropTypes.arrayOf(PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n })),\n };\n\n render() {\n const { points, className } = this.props;\n\n if (!points || !points.length) { return null; }\n\n const layerClass = classNames('recharts-polygon', className);\n\n return (\n <polygon\n {...getPresentationAttributes(this.props)}\n {...filterEventAttributes(this.props)}\n className={layerClass}\n points={getPolygonPoints(points)}\n />\n );\n }\n}\n\nexport default Polygon;\n","/**\n * @fileOverview Cross\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport pureRender from '../util/PureRender';\nimport { isNumber } from '../util/DataUtils';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes } from '../util/ReactUtils';\n\n@pureRender\nclass Cross extends Component {\n\n static displayName = 'Cross';\n\n static propTypes = {\n ...PRESENTATION_ATTRIBUTES,\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n top: PropTypes.number,\n left: PropTypes.number,\n className: PropTypes.string,\n };\n\n static defaultProps = {\n x: 0,\n y: 0,\n top: 0,\n left: 0,\n width: 0,\n height: 0,\n };\n\n static getPath(x, y, width, height, top, left) {\n return `M${x},${top}v${height}M${left},${y}h${width}`;\n }\n\n render() {\n const { x, y, width, height, top, left,\n className } = this.props;\n\n if (!isNumber(x) || !isNumber(y) || !isNumber(width) ||\n !isNumber(height) || !isNumber(top) || !isNumber(left)) {\n return null;\n }\n\n return (\n <path\n {...getPresentationAttributes(this.props)}\n className={classNames('recharts-cross', className)}\n d={this.constructor.getPath(x, y, width, height, top, left)}\n />\n );\n }\n}\n\nexport default Cross;\n","/**\n * @fileOverview Polar Grid\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport pureRender from '../util/PureRender';\nimport { polarToCartesian } from '../util/PolarUtils';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes } from '../util/ReactUtils';\n\n@pureRender\nclass PolarGrid extends Component {\n\n static displayName = 'PolarGrid';\n\n static propTypes = {\n ...PRESENTATION_ATTRIBUTES,\n cx: PropTypes.number,\n cy: PropTypes.number,\n innerRadius: PropTypes.number,\n outerRadius: PropTypes.number,\n\n polarAngles: PropTypes.arrayOf(PropTypes.number),\n polarRadius: PropTypes.arrayOf(PropTypes.number),\n gridType: PropTypes.oneOf(['polygon', 'circle']),\n };\n\n static defaultProps = {\n cx: 0,\n cy: 0,\n innerRadius: 0,\n outerRadius: 0,\n gridType: 'polygon',\n };\n\n getPolygonPath(radius) {\n const { cx, cy, polarAngles } = this.props;\n\n let path = '';\n\n polarAngles.forEach((angle, i) => {\n const point = polarToCartesian(cx, cy, radius, angle);\n\n if (i) {\n path += `L ${point.x},${point.y}`;\n } else {\n path += `M ${point.x},${point.y}`;\n }\n });\n path += 'Z';\n\n return path;\n }\n\n /**\n * Draw axis of radial line\n * @return {[type]} The lines\n */\n renderPolarAngles() {\n const { cx, cy, innerRadius, outerRadius, polarAngles } = this.props;\n\n if (!polarAngles || !polarAngles.length) { return null; }\n const props = {\n stroke: '#ccc',\n ...getPresentationAttributes(this.props),\n };\n\n return (\n <g className=\"recharts-polar-grid-angle\">\n {\n polarAngles.map((entry, i) => {\n const start = polarToCartesian(cx, cy, innerRadius, entry);\n const end = polarToCartesian(cx, cy, outerRadius, entry);\n\n return (\n <line\n {...props}\n key={`line-${i}`}\n x1={start.x}\n y1={start.y}\n x2={end.x}\n y2={end.y}\n />\n );\n })\n }\n </g>\n );\n }\n\n /**\n * Draw concentric circles\n * @param {Number} radius The radius of circle\n * @param {Number} index The index of circle\n * @param {Object} extraProps Extra props\n * @return {ReactElement} circle\n */\n renderConcentricCircle(radius, index, extraProps) {\n const { cx, cy } = this.props;\n const props = {\n stroke: '#ccc',\n ...getPresentationAttributes(this.props),\n fill: 'none',\n ...extraProps,\n };\n\n return (\n <circle\n {...props}\n className=\"recharts-polar-grid-concentric-circle\"\n key={`circle-${index}`}\n cx={cx}\n cy={cy}\n r={radius}\n />\n );\n }\n\n /**\n * Draw concentric polygons\n * @param {Number} radius The radius of polygon\n * @param {Number} index The index of polygon\n * @param {Object} extraProps Extra props\n * @return {ReactElement} polygon\n */\n renderConcentricPolygon(radius, index, extraProps) {\n const props = {\n stroke: '#ccc',\n ...getPresentationAttributes(this.props),\n fill: 'none',\n ...extraProps,\n };\n\n return (\n <path\n {...props}\n className=\"recharts-polar-grid-concentric-polygon\"\n key={`path-${index}`}\n d={this.getPolygonPath(radius)}\n />\n );\n }\n\n /**\n * Draw concentric axis\n * @return {ReactElement} Concentric axis\n * @todo Optimize the name\n */\n renderConcentricPath() {\n const { polarRadius, gridType } = this.props;\n\n if (!polarRadius || !polarRadius.length) { return null; }\n\n return (\n <g className=\"recharts-polar-grid-concentric\">\n {\n polarRadius.map((entry, i) => (\n gridType === 'circle' ?\n this.renderConcentricCircle(entry, i) :\n this.renderConcentricPolygon(entry, i)\n ))\n }\n </g>\n );\n }\n\n render() {\n const { outerRadius } = this.props;\n\n if (outerRadius <= 0) { return null; }\n\n return (\n <g className=\"recharts-polar-grid\">\n {this.renderPolarAngles()}\n {this.renderConcentricPath()}\n </g>\n );\n }\n}\n\nexport default PolarGrid;\n","/**\n * @fileOverview The axis of polar coordinate system\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport pureRender from '../util/PureRender';\nimport Text from '../component/Text';\nimport Label from '../component/Label';\nimport Layer from '../container/Layer';\nimport { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, getPresentationAttributes,\n filterEventsOfChild } from '../util/ReactUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\n\n@pureRender\nclass PolarRadiusAxis extends Component {\n\n static displayName = 'PolarRadiusAxis';\n\n static axisType = 'radiusAxis';\n\n static propTypes = {\n ...PRESENTATION_ATTRIBUTES,\n ...EVENT_ATTRIBUTES,\n type: PropTypes.oneOf(['number', 'category']),\n cx: PropTypes.number,\n cy: PropTypes.number,\n hide: PropTypes.bool,\n radiusAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n angle: PropTypes.number,\n tickCount: PropTypes.number,\n ticks: PropTypes.arrayOf(PropTypes.shape({\n value: PropTypes.any,\n coordinate: PropTypes.number,\n })),\n orientation: PropTypes.oneOf(['left', 'right', 'middle']),\n axisLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n tick: PropTypes.oneOfType([\n PropTypes.bool, PropTypes.object, PropTypes.element, PropTypes.func,\n ]),\n stroke: PropTypes.string,\n tickFormatter: PropTypes.func,\n domain: PropTypes.arrayOf(PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.oneOf(['auto', 'dataMin', 'dataMax']),\n ])),\n scale: PropTypes.oneOfType([\n PropTypes.oneOf(['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time',\n 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential',\n 'threshold']),\n PropTypes.func,\n ]),\n allowDataOverflow: PropTypes.bool,\n allowDuplicatedCategory: PropTypes.bool,\n };\n\n static 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 domain: [0, 'auto'],\n allowDataOverflow: false,\n scale: 'auto',\n allowDuplicatedCategory: true,\n };\n\n /**\n * Calculate the coordinate of tick\n * @param {Number} coordinate The radius of tick\n * @return {Object} (x, y)\n */\n getTickValueCoord({ coordinate }) {\n const { angle, cx, cy } = this.props;\n\n return polarToCartesian(cx, cy, coordinate, angle);\n }\n\n getTickTextAnchor() {\n const { orientation } = this.props;\n let textAnchor;\n\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\n return textAnchor;\n }\n\n getViewBox() {\n const { cx, cy, angle, ticks } = this.props;\n const maxRadiusTick = _.maxBy(ticks, entry => (entry.coordinate || 0));\n const minRadiusTick = _.minBy(ticks, entry => (entry.coordinate || 0));\n\n return {\n cx, cy,\n startAngle: angle,\n endAngle: angle,\n innerRadius: minRadiusTick.coordinate || 0,\n outerRadius: maxRadiusTick.coordinate || 0,\n };\n }\n\n renderAxisLine() {\n const { cx, cy, angle, ticks, axisLine, ...others } = this.props;\n const extent = ticks.reduce((result, entry) => [\n Math.min(result[0], entry.coordinate),\n Math.max(result[1], entry.coordinate),\n ], [Infinity, -Infinity]);\n const point0 = polarToCartesian(cx, cy, extent[0], angle);\n const point1 = polarToCartesian(cx, cy, extent[1], angle);\n\n const props = {\n ...getPresentationAttributes(others),\n fill: 'none',\n ...getPresentationAttributes(axisLine),\n x1: point0.x,\n y1: point0.y,\n x2: point1.x,\n y2: point1.y,\n };\n\n return <line className=\"recharts-polar-radius-axis-line\" {...props} />;\n }\n\n static renderTickItem(option, props, value) {\n let tickItem;\n\n if (React.isValidElement(option)) {\n tickItem = React.cloneElement(option, props);\n } else if (_.isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = (\n <Text\n {...props}\n className=\"recharts-polar-radius-axis-tick-value\"\n >\n {value}\n </Text>\n );\n }\n\n return tickItem;\n }\n\n renderTicks() {\n const { ticks, tick, angle, tickFormatter, stroke, ...others } = this.props;\n const textAnchor = this.getTickTextAnchor();\n const axisProps = getPresentationAttributes(others);\n const customTickProps = getPresentationAttributes(tick);\n\n const items = ticks.map((entry, i) => {\n const coord = this.getTickValueCoord(entry);\n const tickProps = {\n textAnchor,\n transform: `rotate(${90 - angle}, ${coord.x}, ${coord.y})`,\n ...axisProps,\n stroke: 'none', fill: stroke,\n ...customTickProps,\n index: i,\n ...coord,\n payload: entry,\n };\n\n return (\n <Layer\n className=\"recharts-polar-radius-axis-tick\"\n key={`tick-${i}`}\n {...filterEventsOfChild(this.props, entry, i)}\n >\n {this.constructor.renderTickItem(\n tick, tickProps, tickFormatter ? tickFormatter(entry.value) : entry.value\n )}\n </Layer>\n );\n });\n\n return <Layer className=\"recharts-polar-radius-axis-ticks\">{items}</Layer>;\n }\n\n render() {\n const { ticks, axisLine, tick } = this.props;\n\n if (!ticks || !ticks.length) { return null; }\n\n return (\n <Layer className=\"recharts-polar-radius-axis\">\n {axisLine && this.renderAxisLine()}\n {tick && this.renderTicks()}\n {Label.renderCallByParent(this.props, this.getViewBox())}\n </Layer>\n );\n }\n}\n\nexport default PolarRadiusAxis;\n","/**\n * @fileOverview Axis of radial direction\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport pureRender from '../util/PureRender';\nimport Layer from '../container/Layer';\nimport { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, SCALE_TYPES,\n getPresentationAttributes, filterEventsOfChild } from '../util/ReactUtils';\nimport Dot from '../shape/Dot';\nimport Polygon from '../shape/Polygon';\nimport Text from '../component/Text';\nimport { polarToCartesian } from '../util/PolarUtils';\n\nconst RADIAN = Math.PI / 180;\nconst eps = 1e-5;\n\n@pureRender\nclass PolarAngleAxis extends Component {\n\n static displayName = 'PolarAngleAxis';\n\n static axisType = 'angleAxis';\n\n static propTypes = {\n ...PRESENTATION_ATTRIBUTES,\n ...EVENT_ATTRIBUTES,\n type: PropTypes.oneOf(['number', 'category']),\n angleAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n dataKey: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.func]),\n cx: PropTypes.number,\n cy: PropTypes.number,\n radius: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n hide: PropTypes.bool,\n scale: PropTypes.oneOfType([PropTypes.oneOf(SCALE_TYPES), PropTypes.func]),\n\n axisLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n axisLineType: PropTypes.oneOf(['polygon', 'circle']),\n tickLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n tick: PropTypes.oneOfType([\n PropTypes.bool, PropTypes.func, PropTypes.object, PropTypes.element,\n ]),\n\n ticks: PropTypes.arrayOf(PropTypes.shape({\n value: PropTypes.any,\n coordinate: PropTypes.number,\n })),\n stroke: PropTypes.string,\n orientation: PropTypes.oneOf(['inner', 'outer']),\n tickFormatter: PropTypes.func,\n allowDuplicatedCategory: PropTypes.bool,\n };\n\n static defaultProps = {\n type: 'category',\n angleAxisId: 0,\n scale: 'auto',\n cx: 0,\n cy: 0,\n domain: [0, 'auto'],\n orientation: 'outer',\n axisLine: true,\n tickLine: true,\n tick: true,\n hide: false,\n allowDuplicatedCategory: true,\n };\n\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 getTickLineCoord(data) {\n const { cx, cy, radius, orientation, tickLine } = this.props;\n const tickLineSize = (tickLine && tickLine.size) || 8;\n const p1 = polarToCartesian(cx, cy, radius, data.coordinate);\n const p2 = polarToCartesian(\n cx, cy,\n radius + (orientation === 'inner' ? -1 : 1) * tickLineSize, data.coordinate\n );\n\n return { x1: p1.x, y1: p1.y, x2: p2.x, y2: p2.y };\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 getTickTextAnchor(data) {\n const { orientation } = this.props;\n const cos = Math.cos(-data.coordinate * RADIAN);\n let textAnchor;\n\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\n return textAnchor;\n }\n\n renderAxisLine() {\n const { cx, cy, radius, axisLine, axisLineType } = this.props;\n const props = {\n ...getPresentationAttributes(this.props),\n fill: 'none',\n ...getPresentationAttributes(axisLine),\n };\n\n if (axisLineType === 'circle') {\n return (\n <Dot\n className=\"recharts-polar-angle-axis-line\"\n {...props}\n cx={cx}\n cy={cy}\n r={radius}\n />\n );\n }\n const { ticks } = this.props;\n const points = ticks.map(entry => polarToCartesian(cx, cy, radius, entry.coordinate));\n\n return <Polygon className=\"recharts-polar-angle-axis-line\" {...props} points={points} />;\n }\n\n static renderTickItem(option, props, value) {\n let tickItem;\n\n if (React.isValidElement(option)) {\n tickItem = React.cloneElement(option, props);\n } else if (_.isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = (\n <Text\n {...props}\n className=\"recharts-polar-angle-axis-tick-value\"\n >\n {value}\n </Text>\n );\n }\n\n return tickItem;\n }\n\n renderTicks() {\n const { ticks, tick, tickLine, tickFormatter, stroke } = this.props;\n const axisProps = getPresentationAttributes(this.props);\n const customTickProps = getPresentationAttributes(tick);\n const tickLineProps = {\n ...axisProps, fill: 'none', ...getPresentationAttributes(tickLine),\n };\n\n const items = ticks.map((entry, i) => {\n const lineCoord = this.getTickLineCoord(entry);\n const textAnchor = this.getTickTextAnchor(entry);\n const tickProps = {\n textAnchor,\n ...axisProps,\n stroke: 'none', fill: stroke,\n ...customTickProps,\n index: i, payload: entry,\n x: lineCoord.x2, y: lineCoord.y2,\n };\n\n return (\n <Layer\n className=\"recharts-polar-angle-axis-tick\"\n key={`tick-${i}`}\n {...filterEventsOfChild(this.props, entry, i)}\n >\n {tickLine && (\n <line\n className=\"recharts-polar-angle-axis-tick-line\"\n {...tickLineProps}\n {...lineCoord}\n />\n )}\n {tick && this.constructor.renderTickItem(\n tick, tickProps, tickFormatter ? tickFormatter(entry.value) : entry.value\n )}\n </Layer>\n );\n });\n\n return <Layer className=\"recharts-polar-angle-axis-ticks\">{items}</Layer>;\n }\n\n render() {\n const { ticks, radius, axisLine } = this.props;\n\n if (radius <= 0 || !ticks || !ticks.length) { return null; }\n\n return (\n <Layer className=\"recharts-polar-angle-axis\">\n {axisLine && this.renderAxisLine()}\n {this.renderTicks()}\n </Layer>\n );\n }\n}\n\nexport default PolarAngleAxis;\n","/**\n * @fileOverview Render sectors of a pie\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Animate from 'react-smooth';\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport pureRender from '../util/PureRender';\nimport Layer from '../container/Layer';\nimport Sector from '../shape/Sector';\nimport Curve from '../shape/Curve';\nimport Text from '../component/Text';\nimport Label from '../component/Label';\nimport LabelList from '../component/LabelList';\nimport Cell from '../component/Cell';\nimport { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, LEGEND_TYPES,\n getPresentationAttributes, findAllByType, filterEventsOfChild, isSsr } from '../util/ReactUtils';\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';\n\n@pureRender\nclass Pie extends Component {\n\n static displayName = 'Pie';\n\n static propTypes = {\n ...PRESENTATION_ATTRIBUTES,\n ...EVENT_ATTRIBUTES,\n className: PropTypes.string,\n animationId: PropTypes.number,\n cx: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n cy: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n startAngle: PropTypes.number,\n endAngle: PropTypes.number,\n paddingAngle: PropTypes.number,\n innerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n outerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n cornerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]).isRequired,\n nameKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),\n valueKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),\n data: PropTypes.arrayOf(PropTypes.object),\n blendStroke: PropTypes.bool,\n minAngle: PropTypes.number,\n legendType: PropTypes.oneOf(LEGEND_TYPES),\n maxRadius: PropTypes.number,\n\n sectors: PropTypes.arrayOf(PropTypes.object),\n hide: PropTypes.bool,\n labelLine: PropTypes.oneOfType([\n PropTypes.object, PropTypes.func, PropTypes.element, PropTypes.bool,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.shape({\n offsetRadius: PropTypes.number,\n }),\n PropTypes.func, PropTypes.element, PropTypes.bool,\n ]),\n activeShape: PropTypes.oneOfType([\n PropTypes.object, PropTypes.func, PropTypes.element,\n ]),\n activeIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.number)]),\n\n isAnimationActive: PropTypes.bool,\n animationBegin: PropTypes.number,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf([\n 'ease',\n 'ease-in',\n 'ease-out',\n 'ease-in-out',\n 'spring',\n 'linear',\n ]),\n id: PropTypes.string,\n };\n\n static defaultProps = {\n stroke: '#fff',\n fill: '#808080',\n legendType: 'rect',\n // The abscissa of pole\n cx: '50%',\n // The ordinate of pole\n cy: '50%',\n // The start angle of first sector\n startAngle: 0,\n // The direction of drawing sectors\n endAngle: 360,\n // The inner radius of sectors\n innerRadius: 0,\n // The outer radius of sectors\n outerRadius: '80%',\n paddingAngle: 0,\n labelLine: true,\n hide: false,\n minAngle: 0,\n isAnimationActive: !isSsr(),\n animationBegin: 400,\n animationDuration: 1500,\n animationEasing: 'ease',\n nameKey: 'name',\n // Match each sector's stroke color to it's fill color\n blendStroke: false\n };\n\n static parseDeltaAngle = ({ startAngle, endAngle }) => {\n const sign = mathSign(endAngle - startAngle);\n const deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n\n return sign * deltaAngle;\n };\n\n static getRealPieData = (item) => {\n const { data, children } = item.props;\n const presentationProps = getPresentationAttributes(item.props);\n const cells = findAllByType(children, Cell);\n\n if (data && data.length) {\n return data.map((entry, index) => ({\n payload: entry,\n ...presentationProps,\n ...entry,\n ...(cells && cells[index] && cells[index].props),\n }));\n }\n\n if (cells && cells.length) {\n return cells.map(cell => ({ ...presentationProps, ...cell.props }));\n }\n\n return [];\n };\n\n static parseCoordinateOfPie = (item, offset) => {\n const { top, left, width, height } = offset;\n const maxPieRadius = getMaxRadius(width, height);\n const cx = left + getPercentValue(item.props.cx, width, width / 2);\n const cy = top + getPercentValue(item.props.cy, height, height / 2);\n const innerRadius = getPercentValue(item.props.innerRadius, maxPieRadius, 0);\n const outerRadius = getPercentValue(item.props.outerRadius, maxPieRadius, maxPieRadius * 0.8);\n const maxRadius = item.props.maxRadius || Math.sqrt(width * width + height * height) / 2;\n\n return { cx, cy, innerRadius, outerRadius, maxRadius };\n }\n\n static getComposedData = ({ item, offset, onItemMouseLeave, onItemMouseEnter }) => {\n const pieData = Pie.getRealPieData(item);\n if (!pieData || !pieData.length) { return []; }\n\n const { cornerRadius, startAngle, endAngle, paddingAngle, dataKey, nameKey,\n valueKey } = item.props;\n const minAngle = Math.abs(item.props.minAngle);\n const coordinate = Pie.parseCoordinateOfPie(item, offset);\n const len = pieData.length;\n const deltaAngle = Pie.parseDeltaAngle({ startAngle, endAngle });\n const absDeltaAngle = Math.abs(deltaAngle);\n const totalPadingAngle = (absDeltaAngle >= 360 ? len : (len - 1)) * paddingAngle;\n const realTotalAngle = absDeltaAngle - len * minAngle - totalPadingAngle;\n let realDataKey = dataKey;\n\n if (_.isNil(dataKey) && _.isNil(valueKey)) {\n warn(false,\n `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,\n `Use \"dataKey\" to specify the value of pie,\n the props \"valueKey\" will be deprecated in 1.1.0`);\n realDataKey = valueKey;\n }\n\n const sum = pieData.reduce((result, entry) => {\n const val = getValueByDataKey(entry, realDataKey, 0);\n return result + (isNumber(val) ? val : 0);\n }, 0);\n let sectors;\n\n if (sum > 0) {\n let prev;\n sectors = pieData.map((entry, i) => {\n const val = getValueByDataKey(entry, realDataKey, 0);\n const name = getValueByDataKey(entry, nameKey, i);\n const percent = (isNumber(val) ? val : 0) / sum;\n let tempStartAngle;\n\n if (i) {\n tempStartAngle = prev.endAngle + mathSign(deltaAngle) * paddingAngle;\n } else {\n tempStartAngle = startAngle;\n }\n\n const tempEndAngle = tempStartAngle + mathSign(deltaAngle) *\n (minAngle + percent * realTotalAngle);\n const midAngle = (tempStartAngle + tempEndAngle) / 2;\n const middleRadius = (coordinate.innerRadius + coordinate.outerRadius) / 2;\n const tooltipPayload = [{ name, value: val, payload: entry }];\n const tooltipPosition = polarToCartesian(\n coordinate.cx, coordinate.cy, middleRadius, midAngle\n );\n\n prev = {\n percent, cornerRadius, name, tooltipPayload, midAngle, middleRadius, tooltipPosition,\n ...entry,\n ...coordinate,\n value: getValueByDataKey(entry, realDataKey),\n startAngle: tempStartAngle,\n endAngle: tempEndAngle,\n payload: entry,\n paddingAngle: mathSign(deltaAngle) * paddingAngle,\n };\n\n return prev;\n });\n }\n\n return {\n ...coordinate,\n sectors,\n data: pieData,\n onMouseLeave: onItemMouseLeave,\n onMouseEnter: onItemMouseEnter,\n };\n }\n\n state = { isAnimationFinished: false };\n\n componentWillReceiveProps(nextProps) {\n const { animationId, sectors } = this.props;\n\n if (nextProps.isAnimationActive !== this.props.isAnimationActive) {\n this.cachePrevData([]);\n } else if (nextProps.animationId !== animationId) {\n this.cachePrevData(sectors);\n }\n }\n\n static getTextAnchor(x, cx) {\n if (x > cx) {\n return 'start';\n } if (x < cx) {\n return 'end';\n }\n\n return 'middle';\n }\n\n id = uniqueId('recharts-pie-');\n\n cachePrevData = (sectors) => {\n this.setState({ prevSectors: sectors });\n };\n\n isActiveIndex(i) {\n const { activeIndex } = this.props;\n\n if (Array.isArray(activeIndex)) {\n return activeIndex.indexOf(i) !== -1;\n }\n\n return i === activeIndex;\n }\n\n handleAnimationEnd = () => {\n const { onAnimationEnd } = this.props;\n\n this.setState({\n isAnimationFinished: true,\n });\n\n if (_.isFunction(onAnimationEnd)) {\n onAnimationEnd();\n }\n };\n\n handleAnimationStart = () => {\n const { onAnimationStart } = this.props;\n\n this.setState({\n isAnimationFinished: false,\n });\n\n if (_.isFunction(onAnimationStart)) {\n onAnimationStart();\n }\n }\n\n static renderLabelLineItem(option, props) {\n if (React.isValidElement(option)) {\n return React.cloneElement(option, props);\n } if (_.isFunction(option)) {\n return option(props);\n }\n\n return <Curve {...props} type=\"linear\" className=\"recharts-pie-label-line\" />;\n }\n\n static renderLabelItem(option, props, value) {\n if (React.isValidElement(option)) {\n return React.cloneElement(option, props);\n }\n let label = value;\n if (_.isFunction(option)) {\n label = option(props);\n if (React.isValidElement(label)) {\n return label;\n }\n }\n\n return (\n <Text\n {...props}\n alignmentBaseline=\"middle\"\n className=\"recharts-pie-label-text\"\n >\n {label}\n </Text>\n );\n }\n\n renderLabels(sectors) {\n const { isAnimationActive } = this.props;\n\n if (isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n const { label, labelLine, dataKey, valueKey } = this.props;\n const pieProps = getPresentationAttributes(this.props);\n const customLabelProps = getPresentationAttributes(label);\n const customLabelLineProps = getPresentationAttributes(labelLine);\n const offsetRadius = (label && label.offsetRadius) || 20;\n\n const labels = sectors.map((entry, i) => {\n const midAngle = (entry.startAngle + entry.endAngle) / 2;\n const endPoint = polarToCartesian(\n entry.cx, entry.cy, entry.outerRadius + offsetRadius, midAngle\n );\n const labelProps = {\n ...pieProps,\n ...entry,\n stroke: 'none',\n ...customLabelProps,\n index: i,\n textAnchor: this.constructor.getTextAnchor(endPoint.x, entry.cx),\n ...endPoint,\n };\n const lineProps = {\n ...pieProps,\n ...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 };\n let 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\n return (\n <Layer key={`label-${i}`}>\n {labelLine && this.constructor.renderLabelLineItem(labelLine, lineProps)}\n {this.constructor.renderLabelItem(\n label,\n labelProps,\n getValueByDataKey(entry, realDataKey)\n )}\n </Layer>\n );\n });\n\n return <Layer className=\"recharts-pie-labels\">{labels}</Layer>;\n }\n\n static renderSectorItem(option, props) {\n if (React.isValidElement(option)) {\n return React.cloneElement(option, props);\n } if (_.isFunction(option)) {\n return option(props);\n } if (_.isPlainObject(option)) {\n return <Sector {...props} {...option} />;\n }\n\n return <Sector {...props} />;\n }\n\n renderSectorsStatically(sectors) {\n const { activeShape, blendStroke } = this.props;\n\n return sectors.map((entry, i) => {\n const sectorOptions = this.isActiveIndex(i) ? activeShape : null;\n const sectorProps = {\n ...entry,\n stroke: blendStroke ? entry.fill : entry.stroke\n };\n\n return (\n <Layer\n className=\"recharts-pie-sector\"\n {...filterEventsOfChild(this.props, entry, i)}\n key={`sector-${i}`}\n >\n {this.constructor.renderSectorItem(sectorOptions, sectorProps)}\n </Layer>\n );\n });\n }\n\n renderSectorsWithAnimation() {\n const { sectors, isAnimationActive, animationBegin, animationDuration,\n animationEasing, animationId } = this.props;\n const { prevSectors } = this.state;\n\n return (\n <Animate\n begin={animationBegin}\n duration={animationDuration}\n isActive={isAnimationActive}\n easing={animationEasing}\n from={{ t: 0 }}\n to={{ t: 1 }}\n key={`pie-${animationId}`}\n onAnimationStart={this.handleAnimationStart}\n onAnimationEnd={this.handleAnimationEnd}\n >\n {\n ({ t }) => {\n const stepData = [];\n const first = sectors && sectors[0];\n let curAngle = first.startAngle;\n\n sectors.forEach((entry, index) => {\n const prev = prevSectors && prevSectors[index];\n const paddingAngle = index > 0 ? entry.paddingAngle : 0;\n\n if (prev) {\n const angleIp = interpolateNumber(\n prev.endAngle - prev.startAngle,\n entry.endAngle - entry.startAngle\n );\n const latest = {\n ...entry,\n startAngle: curAngle + paddingAngle,\n endAngle: curAngle + angleIp(t) + paddingAngle,\n };\n\n stepData.push(latest);\n curAngle = latest.endAngle;\n } else {\n const { endAngle, startAngle } = entry;\n const interpolatorAngle = interpolateNumber(0, endAngle - startAngle);\n const deltaAngle = interpolatorAngle(t);\n const latest = {\n ...entry,\n startAngle: curAngle + paddingAngle,\n endAngle: curAngle + deltaAngle + paddingAngle,\n };\n\n stepData.push(latest);\n curAngle = latest.endAngle;\n }\n });\n\n return (\n <Layer>\n {this.renderSectorsStatically(stepData)}\n </Layer>\n );\n }\n }\n </Animate>\n );\n }\n\n renderSectors() {\n const { sectors, isAnimationActive } = this.props;\n const { prevSectors } = this.state;\n\n if (isAnimationActive && sectors && sectors.length &&\n (!prevSectors || !_.isEqual(prevSectors, sectors))) {\n return this.renderSectorsWithAnimation();\n }\n return this.renderSectorsStatically(sectors);\n }\n\n render() {\n const { hide, sectors, className, label, cx, cy, innerRadius,\n outerRadius, isAnimationActive, prevSectors, id } = this.props;\n\n if (hide || !sectors || !sectors.length || !isNumber(cx) ||\n !isNumber(cy) || !isNumber(innerRadius) ||\n !isNumber(outerRadius)) {\n return null;\n }\n\n const layerClass = classNames('recharts-pie', className);\n\n return (\n <Layer className={layerClass}>\n <g clipPath={`url(#${_.isNil(id) ? this.id : id})`}>\n {this.renderSectors()}\n </g>\n {label && this.renderLabels(sectors)}\n {Label.renderCallByParent(this.props, null, false)}\n {(!isAnimationActive || (prevSectors && _.isEqual(prevSectors, sectors))) &&\n LabelList.renderCallByParent(this.props, sectors, false)}\n </Layer>\n );\n }\n}\n\nexport default Pie;\n","/**\n * @fileOverview Radar\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Animate from 'react-smooth';\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport { interpolateNumber } from '../util/DataUtils';\nimport pureRender from '../util/PureRender';\nimport { PRESENTATION_ATTRIBUTES, LEGEND_TYPES, filterEventAttributes,\n getPresentationAttributes, isSsr } from '../util/ReactUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport Polygon from '../shape/Polygon';\nimport Dot from '../shape/Dot';\nimport Layer from '../container/Layer';\nimport LabelList from '../component/LabelList';\n\n@pureRender\nclass Radar extends Component {\n\n static displayName = 'Radar';\n\n static propTypes = {\n ...PRESENTATION_ATTRIBUTES,\n className: PropTypes.string,\n dataKey: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.func]).isRequired,\n angleAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n radiusAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n points: PropTypes.arrayOf(PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n cx: PropTypes.number,\n cy: PropTypes.number,\n angle: PropTypes.number,\n radius: PropTypes.number,\n value: PropTypes.number,\n payload: PropTypes.object,\n })),\n shape: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n activeDot: PropTypes.oneOfType([\n PropTypes.object, PropTypes.element, PropTypes.func, PropTypes.bool,\n ]),\n // whether have dot in poly line\n dot: PropTypes.oneOfType([\n PropTypes.object, PropTypes.element, PropTypes.func, PropTypes.bool,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.element, PropTypes.func, PropTypes.object, PropTypes.bool,\n ]),\n legendType: PropTypes.oneOf(LEGEND_TYPES),\n hide: PropTypes.bool,\n\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onClick: PropTypes.func,\n isAnimationActive: PropTypes.bool,\n animationId: PropTypes.number,\n animationBegin: PropTypes.number,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']),\n };\n\n static defaultProps = {\n angleAxisId: 0,\n radiusAxisId: 0,\n hide: false,\n activeDot: true,\n dot: false,\n legendType: 'rect',\n isAnimationActive: !isSsr(),\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease',\n };\n\n static getComposedData = ({ radiusAxis, angleAxis, displayedData, dataKey, bandSize }) => {\n const { cx, cy } = angleAxis;\n const points = displayedData.map((entry, i) => {\n const name = getValueByDataKey(entry, angleAxis.dataKey, i);\n const value = getValueByDataKey(entry, dataKey, 0);\n const angle = angleAxis.scale(name) + (bandSize || 0);\n const radius = radiusAxis.scale(value);\n return {\n ...polarToCartesian(cx, cy, radius, angle),\n name, value, cx, cy, radius, angle,\n payload: entry,\n };\n });\n\n return { points };\n };\n\n state = { isAnimationFinished: false };\n\n componentWillReceiveProps(nextProps) {\n const { animationId, points } = this.props;\n\n if (nextProps.animationId !== animationId) {\n this.cachePrevData(points);\n }\n }\n\n cachePrevData = (points) => {\n this.setState({ prevPoints: points });\n };\n\n handleAnimationEnd = () => {\n this.setState({ isAnimationFinished: true });\n };\n\n handleAnimationStart = () => {\n this.setState({ isAnimationFinished: false });\n };\n\n handleMouseEnter = (e) => {\n const { onMouseEnter } = this.props;\n\n if (onMouseEnter) {\n onMouseEnter(this.props, e);\n }\n };\n\n handleMouseLeave = (e) => {\n const { onMouseLeave } = this.props;\n\n if (onMouseLeave) {\n onMouseLeave(this.props, e);\n }\n };\n\n static renderDotItem(option, props) {\n let dotItem;\n\n if (React.isValidElement(option)) {\n dotItem = React.cloneElement(option, props);\n } else if (_.isFunction(option)) {\n dotItem = option(props);\n } else {\n dotItem = <Dot {...props} className=\"recharts-radar-dot\" />;\n }\n\n return dotItem;\n }\n\n renderDots(points) {\n const { dot, dataKey } = this.props;\n const baseProps = getPresentationAttributes(this.props);\n const customDotProps = getPresentationAttributes(dot);\n\n const dots = points.map((entry, i) => {\n const dotProps = {\n key: `dot-${i}`,\n r: 3,\n ...baseProps,\n ...customDotProps,\n dataKey,\n cx: entry.x,\n cy: entry.y,\n index: i,\n payload: entry,\n };\n\n return this.constructor.renderDotItem(dot, dotProps);\n });\n\n return <Layer className=\"recharts-radar-dots\">{dots}</Layer>;\n }\n\n renderPolygonStatically(points) {\n const { shape, dot } = this.props;\n\n let radar;\n if (React.isValidElement(shape)) {\n radar = React.cloneElement(shape, { ...this.props, points });\n } else if (_.isFunction(shape)) {\n radar = shape({ ...this.props, points });\n } else {\n radar = (\n <Polygon\n {...filterEventAttributes(this.props)}\n onMouseEnter={this.handleMouseEnter}\n onMouseLeave={this.handleMouseLeave}\n {...getPresentationAttributes(this.props)}\n points={points}\n />\n );\n }\n\n return (\n <Layer className=\"recharts-radar-polygon\">\n {radar}\n {dot ? this.renderDots(points) : null}\n </Layer>\n );\n }\n\n renderPolygonWithAnimation() {\n const { points, isAnimationActive, animationBegin, animationDuration,\n animationEasing, animationId } = this.props;\n const { prevPoints } = this.state;\n\n return (\n <Animate\n begin={animationBegin}\n duration={animationDuration}\n isActive={isAnimationActive}\n easing={animationEasing}\n from={{ t: 0 }}\n to={{ t: 1 }}\n key={`radar-${animationId}`}\n onAnimationEnd={this.handleAnimationEnd}\n onAnimationStart={this.handleAnimationStart}\n >\n {\n ({ t }) => {\n const stepData = points.map((entry, index) => {\n const prev = prevPoints && prevPoints[index];\n\n if (prev) {\n const interpolatorX = interpolateNumber(prev.x, entry.x);\n const interpolatorY = interpolateNumber(prev.y, entry.y);\n\n return {\n ...entry,\n x: interpolatorX(t),\n y: interpolatorY(t),\n };\n }\n\n const interpolatorX = interpolateNumber(entry.cx, entry.x);\n const interpolatorY = interpolateNumber(entry.cy, entry.y);\n\n return {\n ...entry,\n x: interpolatorX(t),\n y: interpolatorY(t),\n };\n });\n\n return this.renderPolygonStatically(stepData);\n }\n }\n </Animate>\n );\n }\n\n renderPolygon() {\n const { points, isAnimationActive } = this.props;\n const { prevPoints } = this.state;\n\n if (isAnimationActive && points && points.length &&\n (!prevPoints || !_.isEqual(prevPoints, points))) {\n return this.renderPolygonWithAnimation();\n }\n\n return this.renderPolygonStatically(points);\n }\n\n render() {\n const { hide, className, points, isAnimationActive } = this.props;\n\n if (hide || !points || !points.length) { return null; }\n\n const { isAnimationFinished } = this.state;\n const layerClass = classNames('recharts-radar', className);\n\n return (\n <Layer className={layerClass}>\n {this.renderPolygon()}\n {(!isAnimationActive || isAnimationFinished) &&\n LabelList.renderCallByParent(this.props, points)}\n </Layer>\n );\n }\n}\n\nexport default Radar;\n","/**\n * @fileOverview Render a group of radial bar\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport _ from 'lodash';\nimport Sector from '../shape/Sector';\nimport Layer from '../container/Layer';\nimport { PRESENTATION_ATTRIBUTES, LEGEND_TYPES, findAllByType,\n getPresentationAttributes, filterEventsOfChild, isSsr } from '../util/ReactUtils';\nimport pureRender from '../util/PureRender';\nimport LabelList from '../component/LabelList';\nimport Cell from '../component/Cell';\nimport { mathSign, interpolateNumber } from '../util/DataUtils';\nimport { getCateCoordinateOfBar, findPositionOfBar, getValueByDataKey,\n truncateByDomain, getBaseValueOfBar } from '../util/ChartUtils';\n\n@pureRender\nclass RadialBar extends Component {\n\n static displayName = 'RadialBar';\n\n static propTypes = {\n ...PRESENTATION_ATTRIBUTES,\n className: PropTypes.string,\n angleAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n radiusAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n shape: PropTypes.oneOfType([PropTypes.func, PropTypes.element]),\n activeShape: PropTypes.oneOfType([\n PropTypes.object, PropTypes.func, PropTypes.element,\n ]),\n activeIndex: PropTypes.number,\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]).isRequired,\n\n cornerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n minPointSize: PropTypes.number,\n maxBarSize: PropTypes.number,\n data: PropTypes.arrayOf(PropTypes.shape({\n cx: PropTypes.number,\n cy: PropTypes.number,\n innerRadius: PropTypes.number,\n outerRadius: PropTypes.number,\n value: PropTypes.value,\n })),\n legendType: PropTypes.oneOf(LEGEND_TYPES),\n label: PropTypes.oneOfType([\n PropTypes.bool, PropTypes.func, PropTypes.element, PropTypes.object,\n ]),\n background: PropTypes.oneOfType([\n PropTypes.bool, PropTypes.func, PropTypes.object, PropTypes.element,\n ]),\n hide: PropTypes.bool,\n\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onClick: PropTypes.func,\n\n isAnimationActive: PropTypes.bool,\n animationBegin: PropTypes.number,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf([\n 'ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear', 'spring',\n ]),\n };\n\n static defaultProps = {\n angleAxisId: 0,\n radiusAxisId: 0,\n minPointSize: 0,\n hide: false,\n legendType: 'rect',\n data: [],\n isAnimationActive: !isSsr(),\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease',\n };\n\n static getComposedData = ({ item, props, radiusAxis, radiusAxisTicks, angleAxis, angleAxisTicks,\n displayedData, dataKey, stackedData, barPosition, bandSize, dataStartIndex }) => {\n const pos = findPositionOfBar(barPosition, item);\n if (!pos) { return []; }\n\n const { cx, cy } = angleAxis;\n const { layout } = props;\n const { children, minPointSize } = item.props;\n const numericAxis = layout === 'radial' ? angleAxis : radiusAxis;\n const stackedDomain = stackedData ? numericAxis.scale.domain() : null;\n const baseValue = getBaseValueOfBar({ props, numericAxis });\n const cells = findAllByType(children, Cell);\n const sectors = displayedData.map((entry, index) => {\n let value, innerRadius, outerRadius, startAngle, endAngle, backgroundSector;\n\n if (stackedData) {\n value = truncateByDomain(stackedData[dataStartIndex + index], stackedDomain);\n } else {\n value = getValueByDataKey(entry, dataKey);\n if (!_.isArray(value)) { value = [baseValue, value]; }\n }\n\n if (layout === 'radial') {\n innerRadius = getCateCoordinateOfBar({\n axis: radiusAxis,\n ticks: radiusAxisTicks,\n bandSize,\n offset: pos.offset,\n entry,\n index,\n });\n endAngle = angleAxis.scale(value[1]);\n startAngle = angleAxis.scale(value[0]);\n outerRadius = innerRadius + pos.size;\n const deltaAngle = endAngle - startAngle;\n\n if (Math.abs(minPointSize) > 0 && Math.abs(deltaAngle) < Math.abs(minPointSize)) {\n const delta = mathSign(deltaAngle || minPointSize) *\n (Math.abs(minPointSize) - Math.abs(deltaAngle));\n\n endAngle += delta;\n }\n backgroundSector = {\n background: {\n cx, cy, innerRadius, outerRadius, startAngle: props.startAngle,\n endAngle: props.endAngle,\n },\n };\n } else {\n innerRadius = radiusAxis.scale(value[0]);\n outerRadius = radiusAxis.scale(value[1]);\n startAngle = getCateCoordinateOfBar({\n axis: angleAxis,\n ticks: angleAxisTicks,\n bandSize,\n offset: pos.offset,\n entry,\n index,\n });\n endAngle = startAngle + pos.size;\n const deltaRadius = outerRadius - innerRadius;\n\n if (Math.abs(minPointSize) > 0 && Math.abs(deltaRadius) < Math.abs(minPointSize)) {\n const delta = mathSign(deltaRadius || minPointSize) *\n (Math.abs(minPointSize) - Math.abs(deltaRadius));\n outerRadius += delta;\n }\n }\n\n return {\n ...entry,\n ...backgroundSector,\n payload: entry,\n value: stackedData ? value : value[1],\n cx, cy, innerRadius, outerRadius, startAngle, endAngle,\n ...(cells && cells[index] && cells[index].props),\n };\n });\n\n return { data: sectors, layout };\n };\n\n state = {\n isAnimationFinished: false,\n };\n\n componentWillReceiveProps(nextProps) {\n const { animationId, data } = this.props;\n\n if (nextProps.animationId !== animationId) {\n this.cachePrevData(data);\n }\n }\n\n getDeltaAngle() {\n const { startAngle, endAngle } = this.props;\n const sign = mathSign(endAngle - startAngle);\n const deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n\n return sign * deltaAngle;\n }\n\n cachePrevData = (data) => {\n this.setState({ prevData: data });\n };\n\n handleAnimationEnd = () => {\n this.setState({ isAnimationFinished: true });\n };\n\n handleAnimationStart = () => {\n this.setState({ isAnimationFinished: false });\n };\n\n static renderSectorShape(shape, props) {\n let sectorShape;\n\n if (React.isValidElement(shape)) {\n sectorShape = React.cloneElement(shape, props);\n } else if (_.isFunction(shape)) {\n sectorShape = shape(props);\n } else {\n sectorShape = React.createElement(Sector, props);\n }\n\n return sectorShape;\n }\n\n renderSectorsStatically(sectors) {\n const { shape, activeShape, activeIndex, cornerRadius, ...others } = this.props;\n const baseProps = getPresentationAttributes(others);\n\n return sectors.map((entry, i) => {\n const props = {\n ...baseProps,\n cornerRadius,\n ...entry,\n ...filterEventsOfChild(this.props, entry, i),\n key: `sector-${i}`,\n className: 'recharts-radial-bar-sector',\n };\n\n return this.constructor.renderSectorShape(i === activeIndex ? activeShape : shape, props);\n });\n }\n\n renderSectorsWithAnimation() {\n const { data, isAnimationActive, animationBegin, animationDuration,\n animationEasing, animationId } = this.props;\n const { prevData } = this.state;\n\n return (\n <Animate\n begin={animationBegin}\n duration={animationDuration}\n isActive={isAnimationActive}\n easing={animationEasing}\n from={{ t: 0 }}\n to={{ t: 1 }}\n key={`radialBar-${animationId}`}\n onAnimationStart={this.handleAnimationStart}\n onAnimationEnd={this.handleAnimationEnd}\n >\n {\n ({ t }) => {\n const stepData = data.map((entry, index) => {\n const prev = prevData && prevData[index];\n\n if (prev) {\n const interpolatorStartAngle = interpolateNumber(\n prev.startAngle, entry.startAngle\n );\n const interpolatorEndAngle = interpolateNumber(\n prev.endAngle, entry.endAngle\n );\n\n return {\n ...entry,\n startAngle: interpolatorStartAngle(t),\n endAngle: interpolatorEndAngle(t),\n };\n }\n const { endAngle, startAngle } = entry;\n const interpolator = interpolateNumber(startAngle, endAngle);\n\n return { ...entry, endAngle: interpolator(t) };\n });\n\n return (\n <Layer>\n {this.renderSectorsStatically(stepData)}\n </Layer>\n );\n }\n }\n </Animate>\n );\n }\n\n renderSectors() {\n const { data, isAnimationActive } = this.props;\n const { prevData } = this.state;\n\n if (isAnimationActive && data && data.length &&\n (!prevData || !_.isEqual(prevData, data))) {\n return this.renderSectorsWithAnimation();\n }\n\n return this.renderSectorsStatically(data);\n }\n\n renderBackground(sectors) {\n const { cornerRadius } = this.props;\n const backgroundProps = getPresentationAttributes(this.props.background);\n\n return sectors.map((entry, i) => {\n // eslint-disable-next-line no-unused-vars\n const { value, background, ...rest } = entry;\n\n if (!background) { return null; }\n\n const props = {\n cornerRadius,\n ...rest,\n fill: '#eee',\n ...background,\n ...backgroundProps,\n ...filterEventsOfChild(this.props, entry, i),\n index: i,\n key: `sector-${i}`,\n className: 'recharts-radial-bar-background-sector',\n };\n\n return this.constructor.renderSectorShape(background, props);\n });\n }\n\n render() {\n const { hide, data, className, background, isAnimationActive } = this.props;\n\n if (hide || !data || !data.length) { return null; }\n\n const { isAnimationFinished } = this.state;\n const layerClass = classNames('recharts-area', className);\n\n return (\n <Layer className={layerClass}>\n {\n background && (\n <Layer className=\"recharts-radial-bar-background\">\n {this.renderBackground(data)}\n </Layer>\n )\n }\n\n <Layer className=\"recharts-radial-bar-sectors\">\n {this.renderSectors(data)}\n </Layer>\n\n {(!isAnimationActive || isAnimationFinished) &&\n LabelList.renderCallByParent({\n ...this.props,\n clockWise: this.getDeltaAngle() < 0,\n }, data)\n }\n </Layer>\n );\n }\n}\n\nexport default RadialBar;\n","const PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\n\nexport const generatePrefixStyle = (name, value) => {\n if (!name) { return null; }\n\n const camelName = name.replace(/(\\w)/, v => v.toUpperCase());\n const result = PREFIX_LIST.reduce((res, entry) => (\n {\n ...res,\n [entry + camelName]: value,\n }\n ), {});\n\n result[name] = value;\n\n return result;\n};\n","/**\n * @fileOverview Brush\n */\nimport React, { Component, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { scalePoint } from 'd3-scale';\nimport _ from 'lodash';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport pureRender from '../util/PureRender';\nimport Layer from '../container/Layer';\nimport Text from '../component/Text';\nimport { isNumber } from '../util/DataUtils';\nimport { generatePrefixStyle } from '../util/CssPrefixUtils';\n\n@pureRender\nclass Brush extends Component {\n\n static displayName = 'Brush';\n\n static propTypes = {\n className: PropTypes.string,\n\n fill: PropTypes.string,\n stroke: PropTypes.string,\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number.isRequired,\n travellerWidth: PropTypes.number,\n gap: PropTypes.number,\n padding: PropTypes.shape({\n top: PropTypes.number,\n right: PropTypes.number,\n bottom: PropTypes.number,\n left: PropTypes.number,\n }),\n\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),\n data: PropTypes.array,\n startIndex: PropTypes.number,\n endIndex: PropTypes.number,\n tickFormatter: PropTypes.func,\n\n children: PropTypes.node,\n\n onChange: PropTypes.func,\n updateId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n };\n\n static defaultProps = {\n height: 40,\n travellerWidth: 5,\n gap: 1,\n fill: '#fff',\n stroke: '#666',\n padding: { top: 1, right: 1, bottom: 1, left: 1 },\n };\n\n constructor(props) {\n super(props);\n\n this.travellerDragStartHandlers = {\n startX: this.handleTravellerDragStart.bind(this, 'startX'),\n endX: this.handleTravellerDragStart.bind(this, 'endX'),\n };\n\n this.state = props.data && props.data.length ? this.updateScale(props) : {};\n }\n\n componentWillReceiveProps(nextProps) {\n const { data, width, x, travellerWidth, updateId } = this.props;\n\n if (\n (nextProps.data !== data || nextProps.updateId !== updateId) &&\n nextProps.data &&\n nextProps.data.length\n ) {\n this.setState(this.updateScale(nextProps));\n } else if (\n nextProps.width !== width ||\n nextProps.x !== x ||\n nextProps.travellerWidth !== travellerWidth\n ) {\n this.scale.range([nextProps.x, nextProps.x + nextProps.width - nextProps.travellerWidth]);\n this.scaleValues = this.scale.domain().map(entry => this.scale(entry));\n\n this.setState({\n startX: this.scale(nextProps.startIndex),\n endX: this.scale(nextProps.endIndex),\n });\n }\n }\n\n componentWillUnmount() {\n this.scale = null;\n this.scaleValues = null;\n\n if (this.leaveTimer) {\n clearTimeout(this.leaveTimer);\n this.leaveTimer = null;\n }\n }\n\n static getIndexInRange(range, x) {\n const len = range.length;\n let start = 0;\n let end = len - 1;\n\n while (end - start > 1) {\n const middle = Math.floor((start + end) / 2);\n\n if (range[middle] > x) {\n end = middle;\n } else {\n start = middle;\n }\n }\n\n return x >= range[end] ? end : start;\n }\n\n getIndex({ startX, endX }) {\n const { gap, data } = this.props;\n const lastIndex = data.length - 1;\n const min = Math.min(startX, endX);\n const max = Math.max(startX, endX);\n const minIndex = this.constructor.getIndexInRange(this.scaleValues, min);\n const maxIndex = this.constructor.getIndexInRange(this.scaleValues, max);\n return {\n startIndex: minIndex - minIndex % gap,\n endIndex: maxIndex === lastIndex ? lastIndex : maxIndex - maxIndex % gap,\n };\n }\n\n getTextOfTick(index) {\n const { data, tickFormatter, dataKey } = this.props;\n const text = getValueByDataKey(data[index], dataKey, index);\n\n return _.isFunction(tickFormatter) ? tickFormatter(text) : text;\n }\n\n handleDrag = (e) => {\n if (this.leaveTimer) {\n clearTimeout(this.leaveTimer);\n this.leaveTimer = null;\n }\n\n if (this.state.isTravellerMoving) {\n this.handleTravellerMove(e);\n } else if (this.state.isSlideMoving) {\n this.handleSlideDrag(e);\n }\n };\n\n handleTouchMove = (e) => {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n this.handleDrag(e.changedTouches[0]);\n }\n };\n\n handleDragEnd = () => {\n this.setState({\n isTravellerMoving: false,\n isSlideMoving: false,\n });\n };\n\n handleLeaveWrapper = () => {\n if (this.state.isTravellerMoving || this.state.isSlideMoving) {\n this.leaveTimer = setTimeout(this.handleDragEnd, 1000);\n }\n };\n\n handleEnterSlideOrTraveller = () => {\n this.setState({\n isTextActive: true,\n });\n };\n\n handleLeaveSlideOrTraveller = () => {\n this.setState({\n isTextActive: false,\n });\n };\n\n handleSlideDragStart = (e) => {\n const event = e.changedTouches && e.changedTouches.length ? e.changedTouches[0] : e;\n\n this.setState({\n isTravellerMoving: false,\n isSlideMoving: true,\n slideMoveStartX: event.pageX,\n });\n };\n\n handleSlideDrag(e) {\n const { slideMoveStartX, startX, endX } = this.state;\n const { x, width, travellerWidth, startIndex, endIndex, onChange } = this.props;\n let delta = e.pageX - slideMoveStartX;\n\n if (delta > 0) {\n delta = Math.min(\n delta,\n x + width - travellerWidth - endX,\n x + width - travellerWidth - startX\n );\n } else if (delta < 0) {\n delta = Math.max(delta, x - startX, x - endX);\n }\n const newIndex = this.getIndex({\n startX: startX + delta,\n endX: endX + delta,\n });\n\n if ((newIndex.startIndex !== startIndex || newIndex.endIndex !== endIndex) && onChange) {\n onChange(newIndex);\n }\n\n this.setState({\n startX: startX + delta,\n endX: endX + delta,\n slideMoveStartX: e.pageX,\n });\n }\n\n handleTravellerDragStart(id, e) {\n const event = e.changedTouches && e.changedTouches.length ? e.changedTouches[0] : e;\n\n this.setState({\n isSlideMoving: false,\n isTravellerMoving: true,\n movingTravellerId: id,\n brushMoveStartX: event.pageX,\n });\n }\n\n handleTravellerMove(e) {\n const { brushMoveStartX, movingTravellerId, endX, startX } = this.state;\n const prevValue = this.state[movingTravellerId];\n\n const { x, width, travellerWidth, onChange, gap, data } = this.props;\n const params = { startX: this.state.startX, endX: this.state.endX };\n\n let 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\n params[movingTravellerId] = prevValue + delta;\n\n const newIndex = this.getIndex(params);\n const { startIndex, endIndex } = newIndex;\n const isFullGap = () => {\n const lastIndex = data.length - 1;\n if ((movingTravellerId === 'startX' &&\n (endX > startX ? startIndex % gap === 0 : endIndex % gap === 0)) ||\n (endX < startX && endIndex === lastIndex) ||\n (movingTravellerId === 'endX' &&\n (endX > startX ? endIndex % gap === 0 : startIndex % gap === 0) ||\n (endX > startX && endIndex === lastIndex))) {\n return true;\n }\n return false;\n };\n\n this.setState({\n [movingTravellerId]: prevValue + delta,\n brushMoveStartX: e.pageX,\n }, () => {\n if (onChange) {\n if (isFullGap()) {\n onChange(newIndex);\n }\n }\n });\n }\n\n updateScale(props) {\n const { data, startIndex, endIndex, x, width, travellerWidth } = props;\n const len = data.length;\n this.scale = scalePoint()\n .domain(_.range(0, len))\n .range([x, x + width - travellerWidth]);\n this.scaleValues = this.scale.domain().map(entry => this.scale(entry));\n return {\n isTextActive: false,\n isSlideMoving: false,\n isTravellerMoving: false,\n startX: this.scale(startIndex),\n endX: this.scale(endIndex),\n };\n }\n\n renderBackground() {\n const { x, y, width, height, fill, stroke } = this.props;\n\n return (\n <rect\n stroke={stroke}\n fill={fill}\n x={x}\n y={y}\n width={width}\n height={height}\n />\n );\n }\n\n renderPanorama() {\n const { x, y, width, height, data, children, padding } = this.props;\n const chartElement = Children.only(children);\n\n if (!chartElement) { return null; }\n\n return React.cloneElement(chartElement, {\n x,\n y,\n width,\n height,\n margin: padding,\n compact: true,\n data,\n });\n }\n\n renderTraveller(travellerX, id) {\n const { y, travellerWidth, height, stroke } = this.props;\n const lineY = Math.floor(y + height / 2) - 1;\n const x = Math.max(travellerX, this.props.x);\n\n return (\n <Layer\n className=\"recharts-brush-traveller\"\n onMouseEnter={this.handleEnterSlideOrTraveller}\n onMouseLeave={this.handleLeaveSlideOrTraveller}\n onMouseDown={this.travellerDragStartHandlers[id]}\n onTouchStart={this.travellerDragStartHandlers[id]}\n style={{ cursor: 'col-resize' }}\n >\n <rect\n x={x}\n y={y}\n width={travellerWidth}\n height={height}\n fill={stroke}\n stroke=\"none\"\n />\n <line\n x1={x + 1}\n y1={lineY}\n x2={x + travellerWidth - 1}\n y2={lineY}\n fill=\"none\"\n stroke=\"#fff\"\n />\n <line\n x1={x + 1}\n y1={lineY + 2}\n x2={x + travellerWidth - 1}\n y2={lineY + 2}\n fill=\"none\"\n stroke=\"#fff\"\n />\n </Layer>\n );\n }\n\n renderSlide(startX, endX) {\n const { y, height, stroke } = this.props;\n\n return (\n <rect\n className=\"recharts-brush-slide\"\n onMouseEnter={this.handleEnterSlideOrTraveller}\n onMouseLeave={this.handleLeaveSlideOrTraveller}\n onMouseDown={this.handleSlideDragStart}\n onTouchStart={this.handleSlideDragStart}\n style={{ cursor: 'move' }}\n stroke=\"none\"\n fill={stroke}\n fillOpacity={0.2}\n x={Math.min(startX, endX)}\n y={y}\n width={Math.abs(endX - startX)}\n height={height}\n />\n );\n }\n\n renderText() {\n const { startIndex, endIndex, y, height, travellerWidth,\n stroke } = this.props;\n const { startX, endX } = this.state;\n const offset = 5;\n const attrs = {\n pointerEvents: 'none',\n fill: stroke,\n };\n\n return (\n <Layer className=\"recharts-brush-texts\">\n <Text\n textAnchor=\"end\"\n verticalAnchor=\"middle\"\n x={Math.min(startX, endX) - offset}\n y={y + height / 2}\n {...attrs}\n >\n {this.getTextOfTick(startIndex)}\n </Text>\n <Text\n textAnchor=\"start\"\n verticalAnchor=\"middle\"\n x={Math.max(startX, endX) + travellerWidth + offset}\n y={y + height / 2}\n {...attrs}\n >\n {this.getTextOfTick(endIndex)}\n </Text>\n </Layer>\n );\n }\n\n render() {\n const { data, className, children, x, y, width, height } = this.props;\n const { startX, endX, isTextActive, isSlideMoving, isTravellerMoving } = this.state;\n\n if (!data || !data.length || !isNumber(x) || !isNumber(y) || !isNumber(width) ||\n !isNumber(height) || width <= 0 || height <= 0) { return null; }\n\n const layerClass = classNames('recharts-brush', className);\n const isPanoramic = React.Children.count(children) === 1;\n const style = generatePrefixStyle('userSelect', 'none');\n\n return (\n <Layer\n className={layerClass}\n onMouseMove={this.handleDrag}\n onMouseLeave={this.handleLeaveWrapper}\n onMouseUp={this.handleDragEnd}\n onTouchEnd={this.handleDragEnd}\n onTouchMove={this.handleTouchMove}\n style={style}\n >\n {this.renderBackground()}\n {isPanoramic && this.renderPanorama()}\n {this.renderSlide(startX, endX)}\n {this.renderTraveller(startX, 'startX')}\n {this.renderTraveller(endX, 'endX')}\n {(isTextActive || isSlideMoving || isTravellerMoving) && this.renderText()}\n </Layer>\n );\n }\n}\n\nexport default Brush;\n","/**\n * @fileOverview Cartesian Axis\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport classNames from 'classnames';\nimport { shallowEqual } from '../util/PureRender';\nimport { getStringSize } from '../util/DOMUtils';\nimport Layer from '../container/Layer';\nimport Text from '../component/Text';\nimport Label from '../component/Label';\nimport { isSsr, PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, getPresentationAttributes,\n filterEventsOfChild } from '../util/ReactUtils';\nimport { isNumber, mathSign } from '../util/DataUtils';\n\nclass CartesianAxis extends Component {\n\n static displayName = 'CartesianAxis';\n\n static propTypes = {\n ...PRESENTATION_ATTRIBUTES,\n ...EVENT_ATTRIBUTES,\n className: PropTypes.string,\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n orientation: PropTypes.oneOf(['top', 'bottom', 'left', 'right']),\n // The viewBox of svg\n viewBox: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n }),\n tick: PropTypes.oneOfType([\n PropTypes.bool, PropTypes.func, PropTypes.object, PropTypes.element,\n ]),\n axisLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n tickLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n mirror: PropTypes.bool,\n tickMargin: PropTypes.number.isRequired,\n\n minTickGap: PropTypes.number,\n ticks: PropTypes.array,\n tickSize: PropTypes.number,\n stroke: PropTypes.string,\n tickFormatter: PropTypes.func,\n ticksGenerator: PropTypes.func,\n interval: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf([\n 'preserveStart', 'preserveEnd', 'preserveStartEnd',\n ])]),\n };\n\n static defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n viewBox: { x: 0, y: 0, width: 0, height: 0 },\n // The orientation of axis\n orientation: 'bottom',\n // The ticks\n ticks: [],\n\n stroke: '#666',\n tickLine: true,\n axisLine: true,\n tick: true,\n mirror: false,\n\n minTickGap: 5,\n // The width or height of tick\n tickSize: 6,\n tickMargin: 2,\n interval: 'preserveEnd',\n };\n\n static getTicks(props) {\n const { tick, ticks, viewBox, minTickGap, orientation, interval, tickFormatter, unit } = props;\n\n if (!ticks || !ticks.length || !tick) { return []; }\n\n if (isNumber(interval) || isSsr()) {\n return CartesianAxis.getNumberIntervalTicks(ticks, isNumber(interval) ? interval : 0);\n }\n\n if (interval === 'preserveStartEnd') {\n return CartesianAxis.getTicksStart({\n ticks, tickFormatter, viewBox, orientation, minTickGap, unit,\n }, true);\n } if (interval === 'preserveStart') {\n return CartesianAxis.getTicksStart({\n ticks, tickFormatter, viewBox, orientation, minTickGap, unit,\n });\n }\n\n return CartesianAxis.getTicksEnd({\n ticks, tickFormatter, viewBox, orientation, minTickGap, unit,\n });\n }\n\n static getNumberIntervalTicks(ticks, interval) {\n return ticks.filter((entry, i) => (i % (interval + 1) === 0));\n }\n\n static getTicksStart({\n ticks, tickFormatter, viewBox, orientation, minTickGap, unit,\n }, preserveEnd) {\n const { x, y, width, height } = viewBox;\n const sizeKey = (orientation === 'top' || orientation === 'bottom') ? 'width' : 'height';\n const result = (ticks || []).slice();\n const unitSize = unit ? getStringSize(unit)[sizeKey] : 0;\n const len = result.length;\n const sign = len >= 2 ? mathSign(result[1].coordinate - result[0].coordinate) : 1;\n\n let start, end;\n\n if (sign === 1) {\n start = sizeKey === 'width' ? x : y;\n end = sizeKey === 'width' ? x + width : y + height;\n } else {\n start = sizeKey === 'width' ? x + width : y + height;\n end = sizeKey === 'width' ? x : y;\n }\n\n if (preserveEnd) {\n // Try to guarantee the tail to be displayed\n let tail = ticks[len - 1];\n const tailContent = _.isFunction(tickFormatter) ? tickFormatter(tail.value) : tail.value;\n const tailSize = getStringSize(tailContent)[sizeKey] + unitSize;\n const tailGap = sign * (tail.coordinate + sign * tailSize / 2 - end);\n result[len - 1] = tail = {\n ...tail,\n tickCoord: tailGap > 0 ? tail.coordinate - tailGap * sign : tail.coordinate,\n };\n\n const isTailShow = (sign * (tail.tickCoord - sign * tailSize / 2 - start) >= 0) &&\n (sign * (tail.tickCoord + sign * tailSize / 2 - end)) <= 0;\n\n if (isTailShow) {\n end = tail.tickCoord - sign * (tailSize / 2 + minTickGap);\n result[len - 1] = { ...tail, isShow: true };\n }\n }\n\n const count = preserveEnd ? len - 1 : len;\n for (let i = 0; i < count; i++) {\n let entry = result[i];\n const content = _.isFunction(tickFormatter) ? tickFormatter(entry.value) : entry.value;\n const size = getStringSize(content)[sizeKey] + unitSize;\n\n if (i === 0) {\n const gap = sign * (entry.coordinate - sign * size / 2 - start);\n result[i] = entry = {\n ...entry,\n tickCoord: gap < 0 ? entry.coordinate - gap * sign : entry.coordinate,\n };\n } else {\n result[i] = entry = { ...entry, tickCoord: entry.coordinate };\n }\n\n const isShow = (sign * (entry.tickCoord - sign * size / 2 - start) >= 0) &&\n (sign * (entry.tickCoord + sign * size / 2 - end)) <= 0;\n\n if (isShow) {\n start = entry.tickCoord + sign * (size / 2 + minTickGap);\n result[i] = { ...entry, isShow: true };\n }\n }\n\n return result.filter(entry => entry.isShow);\n }\n\n static getTicksEnd({ ticks, tickFormatter, viewBox, orientation, minTickGap, unit }) {\n const { x, y, width, height } = viewBox;\n const sizeKey = (orientation === 'top' || orientation === 'bottom') ? 'width' : 'height';\n const unitSize = unit ? getStringSize(unit)[sizeKey] : 0;\n const result = (ticks || []).slice();\n const len = result.length;\n const sign = len >= 2 ? mathSign(result[1].coordinate - result[0].coordinate) : 1;\n\n let start, end;\n\n if (sign === 1) {\n start = sizeKey === 'width' ? x : y;\n end = sizeKey === 'width' ? x + width : y + height;\n } else {\n start = sizeKey === 'width' ? x + width : y + height;\n end = sizeKey === 'width' ? x : y;\n }\n\n for (let i = len - 1; i >= 0; i--) {\n let entry = result[i];\n const content = _.isFunction(tickFormatter) ? tickFormatter(entry.value) : entry.value;\n const size = getStringSize(content)[sizeKey] + unitSize;\n\n if (i === len - 1) {\n const gap = sign * (entry.coordinate + sign * size / 2 - end);\n result[i] = entry = {\n ...entry,\n tickCoord: gap > 0 ? entry.coordinate - gap * sign : entry.coordinate,\n };\n } else {\n result[i] = entry = { ...entry, tickCoord: entry.coordinate };\n }\n\n const isShow = (sign * (entry.tickCoord - sign * size / 2 - start) >= 0) &&\n (sign * (entry.tickCoord + sign * size / 2 - end)) <= 0;\n\n if (isShow) {\n end = entry.tickCoord - sign * (size / 2 + minTickGap);\n result[i] = { ...entry, isShow: true };\n }\n }\n\n return result.filter(entry => entry.isShow);\n }\n\n shouldComponentUpdate({ viewBox, ...restProps }, state) {\n // props.viewBox is sometimes generated every time -\n // check that specially as object equality is likely to fail\n const { viewBox: viewBoxOld, ...restPropsOld } = this.props;\n return !shallowEqual(viewBox, viewBoxOld) ||\n !shallowEqual(restProps, restPropsOld) || !shallowEqual(state, this.state);\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 getTickLineCoord(data) {\n const { x, y, width, height, orientation, tickSize, mirror, tickMargin } = this.props;\n let x1, x2, y1, y2, tx, ty;\n\n const sign = mirror ? -1 : 1;\n const finalTickSize = data.tickSize || tickSize;\n const tickCoord = isNumber(data.tickCoord) ? data.tickCoord : data.coordinate;\n\n switch (orientation) {\n case 'top':\n x1 = x2 = data.coordinate;\n y2 = y + (!mirror) * height;\n y1 = y2 - sign * finalTickSize;\n ty = y1 - sign * tickMargin;\n tx = tickCoord;\n break;\n 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\n return { line: { x1, y1, x2, y2 }, tick: { x: tx, y: ty } };\n }\n\n getTickTextAnchor() {\n const { orientation, mirror } = this.props;\n let textAnchor;\n\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\n return textAnchor;\n }\n\n getTickVerticalAnchor() {\n const { orientation, mirror } = this.props;\n let verticalAnchor = 'end';\n\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\n return verticalAnchor;\n }\n\n renderAxisLine() {\n const { x, y, width, height, orientation, axisLine, mirror } = this.props;\n let props = {\n ...getPresentationAttributes(this.props),\n fill: 'none',\n ...getPresentationAttributes(axisLine),\n };\n\n if (orientation === 'top' || orientation === 'bottom') {\n const needHeight = (orientation === 'top' && !mirror) || (orientation === 'bottom' && mirror);\n props = {\n ...props,\n x1: x,\n y1: y + needHeight * height,\n x2: x + width,\n y2: y + needHeight * height,\n };\n } else {\n const needWidth = (orientation === 'left' && !mirror) || (orientation === 'right' && mirror);\n props = {\n ...props,\n x1: x + needWidth * width,\n y1: y,\n x2: x + needWidth * width,\n y2: y + height,\n };\n }\n\n return <line className=\"recharts-cartesian-axis-line\" {...props} />;\n }\n\n static renderTickItem(option, props, value) {\n let tickItem;\n\n if (React.isValidElement(option)) {\n tickItem = React.cloneElement(option, props);\n } else if (_.isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = (\n <Text\n {...props}\n className=\"recharts-cartesian-axis-tick-value\"\n >\n {value}\n </Text>\n );\n }\n\n return tickItem;\n }\n\n /**\n * render the ticks\n * @param {Array} ticks The ticks to actually render (overrides what was passed in props)\n * @return {ReactComponent} renderedTicks\n */\n renderTicks(ticks) {\n const { tickLine, stroke, tick, tickFormatter, unit } = this.props;\n const finalTicks = CartesianAxis.getTicks({ ...this.props, ticks });\n const textAnchor = this.getTickTextAnchor();\n const verticalAnchor = this.getTickVerticalAnchor();\n const axisProps = getPresentationAttributes(this.props);\n const customTickProps = getPresentationAttributes(tick);\n const tickLineProps = {\n ...axisProps, fill: 'none', ...getPresentationAttributes(tickLine),\n };\n const items = finalTicks.map((entry, i) => {\n const { line: lineCoord, tick: tickCoord } = this.getTickLineCoord(entry);\n const tickProps = {\n textAnchor,\n verticalAnchor,\n ...axisProps,\n stroke: 'none', fill: stroke,\n ...customTickProps,\n ...tickCoord,\n index: i, payload: entry,\n visibleTicksCount: finalTicks.length,\n };\n\n return (\n <Layer\n className=\"recharts-cartesian-axis-tick\"\n key={`tick-${i}`}\n {...filterEventsOfChild(this.props, entry, i)}\n >\n {tickLine && (\n <line\n className=\"recharts-cartesian-axis-tick-line\"\n {...tickLineProps}\n {...lineCoord}\n />\n )}\n {tick && this.constructor.renderTickItem(\n tick,\n tickProps,\n `${_.isFunction(tickFormatter) ? tickFormatter(entry.value) : entry.value}${unit || ''}`\n )}\n </Layer>\n );\n });\n\n return (\n <g className=\"recharts-cartesian-axis-ticks\">\n {items}\n </g>\n );\n }\n\n render() {\n const { axisLine, width, height, ticksGenerator, className, hide } = this.props;\n\n if (hide) { return null; }\n\n const { ticks, ...noTicksProps } = this.props;\n let finalTicks = ticks;\n\n if (_.isFunction(ticksGenerator)) {\n finalTicks = (ticks && ticks.length > 0) ? ticksGenerator(this.props) :\n ticksGenerator(noTicksProps);\n }\n\n if (width <= 0 || height <= 0 || !finalTicks || !finalTicks.length) {\n return null;\n }\n\n return (\n <Layer className={classNames('recharts-cartesian-axis', className)}>\n {axisLine && this.renderAxisLine()}\n {this.renderTicks(finalTicks)}\n {Label.renderCallByParent(this.props)}\n </Layer>\n );\n }\n}\n\nexport default CartesianAxis;\n","/**\n * @fileOverview Cartesian Grid\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport _ from 'lodash';\nimport pureRender from '../util/PureRender';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes } from '../util/ReactUtils';\nimport { isNumber } from '../util/DataUtils';\n\n@pureRender\nclass CartesianGrid extends Component {\n\n static displayName = 'CartesianGrid';\n\n static propTypes = {\n ...PRESENTATION_ATTRIBUTES,\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n horizontal: PropTypes.oneOfType([\n PropTypes.object, PropTypes.element, PropTypes.func, PropTypes.bool,\n ]),\n vertical: PropTypes.oneOfType([\n PropTypes.object, PropTypes.element, PropTypes.func, PropTypes.bool,\n ]),\n horizontalPoints: PropTypes.arrayOf(PropTypes.number),\n verticalPoints: PropTypes.arrayOf(PropTypes.number),\n horizontalCoordinatesGenerator: PropTypes.func,\n verticalCoordinatesGenerator: PropTypes.func,\n xAxis: PropTypes.object,\n yAxis: PropTypes.object,\n offset: PropTypes.object,\n chartWidth: PropTypes.number,\n chartHeight: PropTypes.number,\n verticalFill: PropTypes.arrayOf(PropTypes.string),\n horizontalFill: PropTypes.arrayOf(PropTypes.string),\n };\n\n static defaultProps = {\n horizontal: true,\n vertical: true,\n // The ordinates of horizontal grid lines\n horizontalPoints: [],\n // The abscissas of vertical grid lines\n verticalPoints: [],\n\n stroke: '#ccc',\n fill: 'none',\n // The fill of colors of grid lines\n verticalFill: [],\n horizontalFill: [],\n };\n\n static renderLineItem(option, props) {\n let lineItem;\n\n if (React.isValidElement(option)) {\n lineItem = React.cloneElement(option, props);\n } else if (_.isFunction(option)) {\n lineItem = option(props);\n } else {\n const { x1, y1, x2, y2, key, ...others } = props;\n\n lineItem = (\n <line\n {...getPresentationAttributes(others)}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n fill=\"none\"\n key={key}\n />\n );\n }\n\n return lineItem;\n }\n\n /**\n * Draw the horizontal grid lines\n * @param {Array} horizontalPoints either passed in as props or generated from function\n * @return {Group} Horizontal lines\n */\n renderHorizontal(horizontalPoints) {\n const { x, width, horizontal } = this.props;\n\n if (!horizontalPoints || !horizontalPoints.length) { return null; }\n\n const items = horizontalPoints.map((entry, i) => {\n const props = {\n ...this.props,\n x1: x,\n y1: entry,\n x2: x + width,\n y2: entry,\n key: `line-${i}`,\n index: i,\n };\n\n return this.constructor.renderLineItem(horizontal, props);\n });\n\n return <g className=\"recharts-cartesian-grid-horizontal\">{items}</g>;\n }\n\n /**\n * Draw vertical grid lines\n * @param {Array} verticalPoints either passed in as props or generated from function\n * @return {Group} Vertical lines\n */\n renderVertical(verticalPoints) {\n const { y, height, vertical } = this.props;\n\n if (!verticalPoints || !verticalPoints.length) { return null; }\n\n const items = verticalPoints.map((entry, i) => {\n const props = {\n ...this.props,\n x1: entry,\n y1: y,\n x2: entry,\n y2: y + height,\n key: `line-${i}`,\n index: i,\n };\n\n return this.constructor.renderLineItem(vertical, props);\n });\n\n return <g className=\"recharts-cartesian-grid-vertical\">{items}</g>;\n }\n\n /**\n * Draw vertical grid stripes filled by colors\n * @param {Array} verticalPoints either passed in as props or generated from function\n * @return {Group} Vertical stripes\n */\n renderVerticalStripes(verticalPoints) {\n const { verticalFill } = this.props;\n if (!verticalFill || !verticalFill.length) { return null; }\n\n const { fillOpacity, x, y, width, height } = this.props;\n const verticalPointsUpdated = verticalPoints.slice().sort((a, b) => ((a - b) > 0));\n\n if (x !== verticalPointsUpdated[0]) {\n verticalPointsUpdated.unshift(0);\n }\n\n const items = verticalPointsUpdated.map((entry, i) => {\n const lineWidth = verticalPointsUpdated[i + 1] ?\n verticalPointsUpdated[i + 1] - entry : (x + width - entry);\n if (lineWidth <= 0) { return null; }\n const colorIndex = i % verticalFill.length;\n return (\n <rect\n key={`react-${i}`}\n x={Math.round(entry + x - x)}\n y={y}\n width={lineWidth}\n height={height}\n stroke=\"none\"\n fill={verticalFill[colorIndex]}\n fillOpacity={fillOpacity}\n className=\"recharts-cartesian-grid-bg\"\n />\n );\n });\n\n return <g className=\"recharts-cartesian-gridstripes-vertical\">{items}</g>;\n }\n\n /**\n * Draw horizontal grid stripes filled by colors\n * @param {Array} horizontalPoints either passed in as props or generated from function\n * @return {Group} Horizontal stripes\n */\n renderHorizontalStripes(horizontalPoints) {\n const { horizontalFill } = this.props;\n if (!horizontalFill || !horizontalFill.length) { return null; }\n\n const { fillOpacity, x, y, width, height } = this.props;\n const horizontalPointsUpdated = horizontalPoints.slice().sort((a, b) => ((a - b) > 0));\n if (y !== horizontalPointsUpdated[0]) {\n horizontalPointsUpdated.unshift(0);\n }\n\n const items = horizontalPointsUpdated.map((entry, i) => {\n const lineHeight = horizontalPointsUpdated[i + 1] ?\n horizontalPointsUpdated[i + 1] - entry : (y + height - entry);\n if (lineHeight <= 0) { return null; }\n const colorIndex = i % horizontalFill.length;\n return (\n <rect\n key={`react-${i}`}\n y={Math.round(entry + y - y)}\n x={x}\n height={lineHeight}\n width={width}\n stroke=\"none\"\n fill={horizontalFill[colorIndex]}\n fillOpacity={fillOpacity}\n className=\"recharts-cartesian-grid-bg\"\n />\n );\n });\n\n return <g className=\"recharts-cartesian-gridstripes-horizontal\">{items}</g>;\n }\n\n\n renderBackground() {\n const { fill } = this.props;\n\n if (!fill || fill === 'none') { return null; }\n\n const { fillOpacity, x, y, width, height } = this.props;\n\n return (\n <rect\n x={x}\n y={y}\n width={width}\n height={height}\n stroke=\"none\"\n fill={fill}\n fillOpacity={fillOpacity}\n className=\"recharts-cartesian-grid-bg\"\n />\n );\n }\n\n render() {\n const { x, y, width, height, horizontal, vertical, horizontalCoordinatesGenerator,\n verticalCoordinatesGenerator, xAxis, yAxis, offset, chartWidth, chartHeight } = this.props;\n\n if (!isNumber(width) || width <= 0 || !isNumber(height) || height <= 0 ||\n !isNumber(x) || x !== +x || !isNumber(y) || y !== +y) {\n return null;\n }\n\n let { horizontalPoints, verticalPoints } = this.props;\n\n // No horizontal points are specified\n if ((!horizontalPoints || !horizontalPoints.length) &&\n _.isFunction(horizontalCoordinatesGenerator)) {\n horizontalPoints = horizontalCoordinatesGenerator({ yAxis, width: chartWidth,\n height: chartHeight, offset });\n }\n\n // No vertical points are specified\n if ((!verticalPoints || !verticalPoints.length) &&\n _.isFunction(verticalCoordinatesGenerator)) {\n verticalPoints = verticalCoordinatesGenerator({ xAxis, width: chartWidth,\n height: chartHeight, offset });\n }\n\n return (\n <g className=\"recharts-cartesian-grid\">\n {this.renderBackground()}\n {horizontal && this.renderHorizontal(horizontalPoints)}\n {vertical && this.renderVertical(verticalPoints)}\n\n {horizontal && this.renderHorizontalStripes(horizontalPoints)}\n {vertical && this.renderVerticalStripes(verticalPoints)}\n </g>\n );\n }\n}\n\nexport default CartesianGrid;\n","/**\n * @fileOverview Line\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Animate from 'react-smooth';\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport pureRender from '../util/PureRender';\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 { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, LEGEND_TYPES, filterEventAttributes,\n getPresentationAttributes, isSsr, findAllByType } from '../util/ReactUtils';\nimport { getCateCoordinateOfLine, getValueByDataKey } from '../util/ChartUtils';\n\n@pureRender\nclass Line extends Component {\n\n static displayName = 'Line';\n\n static propTypes = {\n ...PRESENTATION_ATTRIBUTES,\n ...EVENT_ATTRIBUTES,\n className: PropTypes.string,\n type: PropTypes.oneOfType([PropTypes.oneOf([\n 'basis', 'basisClosed', 'basisOpen', 'linear', 'linearClosed', 'natural',\n 'monotoneX', 'monotoneY', 'monotone', 'step', 'stepBefore', 'stepAfter',\n ]), PropTypes.func]),\n unit: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n name: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n yAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n xAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n yAxis: PropTypes.object,\n xAxis: PropTypes.object,\n legendType: PropTypes.oneOf(LEGEND_TYPES),\n layout: PropTypes.oneOf(['horizontal', 'vertical']),\n connectNulls: PropTypes.bool,\n hide: PropTypes.bool,\n\n // whether have dot in line\n activeDot: PropTypes.oneOfType([\n PropTypes.object, PropTypes.element, PropTypes.func, PropTypes.bool,\n ]),\n dot: PropTypes.oneOfType([\n PropTypes.object, PropTypes.element, PropTypes.func, PropTypes.bool,\n ]),\n\n top: PropTypes.number,\n left: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n points: PropTypes.arrayOf(PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n value: PropTypes.value,\n })),\n onAnimationStart: PropTypes.func,\n onAnimationEnd: PropTypes.func,\n\n isAnimationActive: PropTypes.bool,\n animationBegin: PropTypes.number,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf([\n 'ease',\n 'ease-in',\n 'ease-out',\n 'ease-in-out',\n 'linear',\n ]),\n animationId: PropTypes.number,\n id: PropTypes.string,\n };\n\n static 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: !isSsr(),\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease',\n hide: false,\n\n onAnimationStart: () => {},\n onAnimationEnd: () => {},\n };\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 static getComposedData = ({ props, xAxis, yAxis, xAxisTicks, yAxisTicks, dataKey,\n bandSize, displayedData, offset }) => {\n const { layout } = props;\n\n const points = displayedData.map((entry, index) => {\n const value = getValueByDataKey(entry, dataKey);\n\n if (layout === 'horizontal') {\n return {\n x: getCateCoordinateOfLine({ axis: xAxis, ticks: xAxisTicks, bandSize, entry, index }),\n y: _.isNil(value) ? null : yAxis.scale(value),\n value,\n payload: entry,\n };\n }\n\n return {\n x: _.isNil(value) ? null : xAxis.scale(value),\n y: getCateCoordinateOfLine({ axis: yAxis, ticks: yAxisTicks, bandSize, entry, index }),\n value,\n payload: entry,\n };\n });\n\n return { points, layout, ...offset };\n };\n\n\n state = {\n isAnimationFinished: true,\n totalLength: 0,\n };\n\n /* eslint-disable react/no-did-mount-set-state */\n componentDidMount() {\n if (!this.props.isAnimationActive) { return; }\n\n const totalLength = this.getTotalLength();\n this.setState({ totalLength });\n }\n\n componentWillReceiveProps(nextProps) {\n const { animationId, points } = this.props;\n\n if (nextProps.animationId !== animationId) {\n this.cachePrevData(points);\n }\n }\n\n getTotalLength() {\n const curveDom = this.mainCurve;\n\n try {\n return (curveDom && curveDom.getTotalLength && curveDom.getTotalLength()) || 0;\n } catch (err) {\n return 0;\n }\n }\n\n getStrokeDasharray(length, totalLength, lines) {\n const lineLength = lines.reduce((pre, next) => pre + next);\n\n const count = parseInt(length / lineLength, 10);\n const remainLength = length % lineLength;\n const restLength = totalLength - length;\n\n let remainLines = [];\n for (let i = 0, sum = 0; ; sum += lines[i], ++i) {\n if (sum + lines[i] > remainLength) {\n remainLines = [...lines.slice(0, i), remainLength - sum];\n break;\n }\n }\n\n const emptyLines = remainLines.length % 2 === 0 ? [0, restLength] : [restLength];\n\n return [...this.constructor.repeat(lines, count), ...remainLines, ...emptyLines]\n .map(line => `${line}px`)\n .join(', ');\n }\n\n id = uniqueId('recharts-line-');\n\n cachePrevData = (points) => {\n this.setState({ prevPoints: points });\n };\n\n pathRef = (node) => {\n this.mainCurve = node;\n };\n\n static repeat(lines, count) {\n const linesUnit = lines.length % 2 !== 0 ? [...lines, 0] : lines;\n let result = [];\n\n for (let i = 0; i < count; ++i) {\n result = [...result, ...linesUnit];\n }\n\n return result;\n }\n\n handleAnimationEnd = () => {\n this.setState({ isAnimationFinished: true });\n this.props.onAnimationEnd();\n };\n\n handleAnimationStart = () => {\n this.setState({ isAnimationFinished: false });\n this.props.onAnimationStart();\n };\n\n renderErrorBar() {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) { return null; }\n\n const { points, xAxis, yAxis, layout, children } = this.props;\n const errorBarItems = findAllByType(children, ErrorBar);\n\n if (!errorBarItems) { return null; }\n\n function dataPointFormatter(dataPoint, dataKey) {\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: dataPoint.value,\n errorVal: getValueByDataKey(dataPoint.payload, dataKey),\n };\n }\n\n return errorBarItems.map((item, i) => React.cloneElement(item, {\n key: i,\n data: points,\n xAxis,\n yAxis,\n layout,\n dataPointFormatter,\n }));\n }\n\n static renderDotItem(option, props) {\n let dotItem;\n\n if (React.isValidElement(option)) {\n dotItem = React.cloneElement(option, props);\n } else if (_.isFunction(option)) {\n dotItem = option(props);\n } else {\n const className = classNames('recharts-line-dot', option ? option.className : '');\n dotItem = <Dot {...props} className={className} />;\n }\n\n return dotItem;\n }\n\n renderDots(needClip, clipPathId) {\n const { isAnimationActive } = this.props;\n\n if (isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n const { dot, points, dataKey } = this.props;\n const lineProps = getPresentationAttributes(this.props);\n const customDotProps = getPresentationAttributes(dot);\n const dotEvents = filterEventAttributes(dot);\n const dots = points.map((entry, i) => {\n const dotProps = {\n key: `dot-${i}`,\n r: 3,\n ...lineProps,\n ...customDotProps,\n ...dotEvents,\n value: entry.value,\n dataKey,\n cx: entry.x, cy: entry.y, index: i, payload: entry.payload,\n };\n\n return this.constructor.renderDotItem(dot, dotProps);\n });\n const dotsProps = {\n clipPath: needClip ? `url(#clipPath-${clipPathId})` : null,\n };\n\n return <Layer className=\"recharts-line-dots\" key=\"dots\" {...dotsProps}>{dots}</Layer>;\n }\n\n renderCurveStatically(points, needClip, clipPathId, props) {\n const { type, layout, connectNulls } = this.props;\n const curveProps = {\n ...getPresentationAttributes(this.props),\n ...filterEventAttributes(this.props),\n fill: 'none',\n className: 'recharts-line-curve',\n clipPath: needClip ? `url(#clipPath-${clipPathId})` : null,\n points,\n ...props,\n type, layout, connectNulls,\n };\n\n return <Curve {...curveProps} pathRef={this.pathRef} />;\n }\n\n renderCurveWithAnimation(needClip, clipPathId) {\n const { points, strokeDasharray, isAnimationActive, animationBegin,\n animationDuration, animationEasing, animationId, width, height\n } = this.props;\n const { prevPoints, totalLength } = this.state;\n\n return (\n <Animate\n begin={animationBegin}\n duration={animationDuration}\n isActive={isAnimationActive}\n easing={animationEasing}\n from={{ t: 0 }}\n to={{ t: 1 }}\n key={`line-${animationId}`}\n onAnimationEnd={this.handleAnimationEnd}\n onAnimationStart={this.handleAnimationStart}\n >\n {\n ({ t }) => {\n if (prevPoints) {\n const stepData = points.map((entry, index) => {\n if (prevPoints[index]) {\n const prev = prevPoints[index];\n const interpolatorX = interpolateNumber(prev.x, entry.x);\n const interpolatorY = interpolateNumber(prev.y, entry.y);\n\n return { ...entry, x: interpolatorX(t), y: interpolatorY(t) };\n }\n\n // magic number of faking previous x and y location\n const interpolatorX = interpolateNumber(width * 2, entry.x);\n const interpolatorY = interpolateNumber(height / 2, entry.y);\n return { ...entry, x: interpolatorX(t), y: interpolatorY(t) };\n });\n return this.renderCurveStatically(stepData, needClip, clipPathId);\n }\n const interpolator = interpolateNumber(0, totalLength);\n const curLength = interpolator(t);\n let currentStrokeDasharray;\n\n if (strokeDasharray) {\n const lines = strokeDasharray.split(/[,\\s]+/gim)\n .map(num => parseFloat(num));\n currentStrokeDasharray = this.getStrokeDasharray(\n curLength, totalLength, lines\n );\n } else {\n currentStrokeDasharray = `${curLength}px ${totalLength - curLength}px`;\n }\n\n return this.renderCurveStatically(points, needClip, clipPathId, {\n strokeDasharray: currentStrokeDasharray,\n });\n }\n }\n </Animate>\n );\n }\n\n renderCurve(needClip, clipPathId) {\n const { points, isAnimationActive } = this.props;\n const { prevPoints, totalLength } = this.state;\n\n if (isAnimationActive && points && points.length &&\n ((!prevPoints && totalLength > 0) || !_.isEqual(prevPoints, points))) {\n return this.renderCurveWithAnimation(needClip, clipPathId);\n }\n\n return this.renderCurveStatically(points, needClip, clipPathId);\n }\n\n render() {\n const { hide, dot, points, className, xAxis, yAxis, top, left,\n width, height, isAnimationActive, id } = this.props;\n\n if (hide || !points || !points.length) { return null; }\n\n const { isAnimationFinished } = this.state;\n const hasSinglePoint = points.length === 1;\n const layerClass = classNames('recharts-line', className);\n const needClip = (xAxis && xAxis.allowDataOverflow) || (yAxis && yAxis.allowDataOverflow);\n const clipPathId = _.isNil(id) ? this.id : id;\n\n return (\n <Layer className={layerClass}>\n {needClip ? (\n <defs>\n <clipPath id={`clipPath-${clipPathId}`}>\n <rect x={left} y={top} width={width} height={height} />\n </clipPath>\n </defs>\n ) : null}\n {!hasSinglePoint && this.renderCurve(needClip, clipPathId)}\n {this.renderErrorBar()}\n {(hasSinglePoint || dot) && this.renderDots(needClip, clipPathId)}\n {(!isAnimationActive || isAnimationFinished) &&\n LabelList.renderCallByParent(this.props, points)}\n </Layer>\n );\n }\n}\n\nexport default Line;\n","/**\n * @fileOverview Area\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport _ from 'lodash';\nimport Curve from '../shape/Curve';\nimport Dot from '../shape/Dot';\nimport Layer from '../container/Layer';\nimport LabelList from '../component/LabelList';\nimport pureRender from '../util/PureRender';\nimport { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, LEGEND_TYPES,\n getPresentationAttributes, isSsr, filterEventAttributes } from '../util/ReactUtils';\nimport { isNumber, uniqueId, interpolateNumber } from '../util/DataUtils';\nimport { getCateCoordinateOfLine, getValueByDataKey } from '../util/ChartUtils';\n\n\n@pureRender\nclass Area extends Component {\n\n static displayName = 'Area';\n\n static propTypes = {\n ...PRESENTATION_ATTRIBUTES,\n ...EVENT_ATTRIBUTES,\n className: PropTypes.string,\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]).isRequired,\n type: PropTypes.oneOfType([PropTypes.oneOf([\n 'basis', 'basisClosed', 'basisOpen', 'linear', 'linearClosed', 'natural',\n 'monotoneX', 'monotoneY', 'monotone', 'step', 'stepBefore', 'stepAfter',\n ]), PropTypes.func]),\n unit: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n name: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n yAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n xAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n yAxis: PropTypes.object,\n xAxis: PropTypes.object,\n stackId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n legendType: PropTypes.oneOf(LEGEND_TYPES),\n connectNulls: PropTypes.bool,\n\n activeDot: PropTypes.oneOfType([\n PropTypes.object, PropTypes.element, PropTypes.func, PropTypes.bool,\n ]),\n // dot configuration\n dot: PropTypes.oneOfType([\n PropTypes.func, PropTypes.element, PropTypes.object, PropTypes.bool,\n ]),\n label: PropTypes.oneOfType([\n PropTypes.func, PropTypes.element, PropTypes.object, PropTypes.bool,\n ]),\n hide: PropTypes.bool,\n // have curve configuration\n layout: PropTypes.oneOf(['horizontal', 'vertical']),\n baseLine: PropTypes.oneOfType([\n PropTypes.number, PropTypes.array,\n ]),\n isRange: PropTypes.bool,\n points: PropTypes.arrayOf(PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.array]),\n })),\n\n onAnimationStart: PropTypes.func,\n onAnimationEnd: PropTypes.func,\n animationId: PropTypes.number,\n isAnimationActive: PropTypes.bool,\n animationBegin: PropTypes.number,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']),\n\n id: PropTypes.string,\n };\n\n static 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\n isAnimationActive: !isSsr(),\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease',\n };\n\n static getBaseValue = (props, xAxis, yAxis) => {\n const { layout, baseValue } = props;\n\n if (isNumber(baseValue)) { return baseValue; }\n\n const numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n const domain = numericAxis.scale.domain();\n\n if (numericAxis.type === 'number') {\n const max = Math.max(domain[0], domain[1]);\n const min = Math.min(domain[0], domain[1]);\n\n if (baseValue === 'dataMin') { return min; }\n if (baseValue === 'dataMax') { return max; }\n\n return max < 0 ? max : Math.max(Math.min(domain[0], domain[1]), 0);\n }\n\n if (baseValue === 'dataMin') { return domain[0]; }\n if (baseValue === 'dataMax') { return domain[1]; }\n\n return domain[0];\n };\n\n static getComposedData = ({ props, xAxis, yAxis, xAxisTicks, yAxisTicks, bandSize,\n dataKey, stackedData, dataStartIndex, displayedData, offset }) => {\n const { layout } = props;\n const hasStack = stackedData && stackedData.length;\n const baseValue = Area.getBaseValue(props, xAxis, yAxis);\n let isRange = false;\n\n const points = displayedData.map((entry, index) => {\n let value;\n\n if (hasStack) {\n value = stackedData[dataStartIndex + index];\n } else {\n value = getValueByDataKey(entry, dataKey);\n\n if (!_.isArray(value)) {\n value = [baseValue, value];\n } else {\n isRange = true;\n }\n }\n\n if (layout === 'horizontal') {\n return {\n x: getCateCoordinateOfLine({ axis: xAxis, ticks: xAxisTicks, bandSize, entry, index }),\n y: _.isNil(value[1]) ? null : yAxis.scale(value[1]),\n value,\n payload: entry,\n };\n }\n\n return {\n x: _.isNil(value[1]) ? null : xAxis.scale(value[1]),\n y: getCateCoordinateOfLine({ axis: yAxis, ticks: yAxisTicks, bandSize, entry, index }),\n value,\n payload: entry,\n };\n });\n\n let baseLine;\n if (hasStack || isRange) {\n baseLine = points.map((entry) => {\n if (layout === 'horizontal') {\n return {\n x: entry.x,\n y: !_.isNil(_.get(entry, 'value[0]')) ? yAxis.scale(_.get(entry, 'value[0]')) : null,\n };\n }\n return {\n x: !_.isNil(_.get(entry, 'value[0]')) ? xAxis.scale(_.get(entry, 'value[0]')) : null,\n y: entry.y,\n };\n });\n } else if (layout === 'horizontal') {\n baseLine = yAxis.scale(baseValue);\n } else {\n baseLine = xAxis.scale(baseValue);\n }\n\n return { points, baseLine, layout, isRange, ...offset };\n };\n\n static renderDotItem = (option, props) => {\n let dotItem;\n\n if (React.isValidElement(option)) {\n dotItem = React.cloneElement(option, props);\n } else if (_.isFunction(option)) {\n dotItem = option(props);\n } else {\n dotItem = <Dot {...props} className=\"recharts-area-dot\" />;\n }\n\n return dotItem;\n };\n\n state = { isAnimationFinished: true };\n\n componentWillReceiveProps(nextProps) {\n const { animationId, points, baseLine } = this.props;\n\n if (nextProps.animationId !== animationId) {\n this.cachePrevData(points, baseLine);\n }\n }\n\n id = uniqueId('recharts-area-');\n\n cachePrevData = (points, baseLine) => {\n this.setState({\n prevPoints: points,\n prevBaseLine: baseLine,\n });\n };\n\n handleAnimationEnd = () => {\n const { onAnimationEnd } = this.props;\n\n this.setState({ isAnimationFinished: true });\n\n if (_.isFunction(onAnimationEnd)) {\n onAnimationEnd();\n }\n };\n\n handleAnimationStart = () => {\n const { onAnimationStart } = this.props;\n this.setState({ isAnimationFinished: false });\n\n if (_.isFunction(onAnimationStart)) {\n onAnimationStart();\n }\n };\n\n renderDots() {\n const { isAnimationActive } = this.props;\n const { isAnimationFinished } = this.state;\n\n if (isAnimationActive && !isAnimationFinished) { return null; }\n\n const { dot, points, dataKey } = this.props;\n const areaProps = getPresentationAttributes(this.props);\n const customDotProps = getPresentationAttributes(dot);\n const dotEvents = filterEventAttributes(dot);\n\n const dots = points.map((entry, i) => {\n const dotProps = {\n key: `dot-${i}`,\n r: 3,\n ...areaProps,\n ...customDotProps,\n ...dotEvents,\n dataKey,\n cx: entry.x,\n cy: entry.y,\n index: i,\n value: entry.value,\n payload: entry.payload,\n };\n\n return this.constructor.renderDotItem(dot, dotProps);\n });\n\n return <Layer className=\"recharts-area-dots\">{dots}</Layer>;\n }\n\n renderHorizontalRect(alpha) {\n const { baseLine, points, strokeWidth } = this.props;\n const startX = points[0].x;\n const endX = points[points.length - 1].x;\n const width = alpha * Math.abs(startX - endX);\n let maxY = Math.max.apply(null, points.map(entry => (entry.y || 0)));\n\n if (isNumber(baseLine)) {\n maxY = Math.max(baseLine, maxY);\n } else if (baseLine && _.isArray(baseLine) && baseLine.length) {\n maxY = Math.max(Math.max.apply(null, baseLine.map(entry => (entry.y || 0))), maxY);\n }\n\n if (isNumber(maxY)) {\n return (\n <rect\n x={startX < endX ? startX : startX - width}\n y={0}\n width={width}\n height={maxY + (strokeWidth || 1)}\n />\n );\n }\n\n return null;\n }\n\n renderVerticalRect(alpha) {\n const { baseLine, points, strokeWidth } = this.props;\n const startY = points[0].y;\n const endY = points[points.length - 1].y;\n const height = alpha * Math.abs(startY - endY);\n let maxX = Math.max.apply(null, points.map(entry => (entry.x || 0)));\n\n if (isNumber(baseLine)) {\n maxX = Math.max(baseLine, maxX);\n } else if (baseLine && _.isArray(baseLine) && baseLine.length) {\n maxX = Math.max(Math.max.apply(null, baseLine.map(entry => (entry.x || 0))), maxX);\n }\n\n if (isNumber(maxX)) {\n return (\n <rect\n x={0}\n y={startY < endY ? startY : startY - height}\n width={maxX + (strokeWidth || 1)}\n height={height}\n />\n );\n }\n\n return null;\n }\n\n renderClipRect(alpha) {\n const { layout } = this.props;\n\n if (layout === 'vertical') {\n return this.renderVerticalRect(alpha);\n }\n\n return this.renderHorizontalRect(alpha);\n }\n\n renderAreaStatically(points, baseLine, needClip) {\n const { layout, type, stroke, connectNulls, isRange } = this.props;\n\n return (\n <Layer clipPath={needClip ? `url(#clipPath-${this.id})` : null}>\n <Curve\n {...this.props}\n points={points}\n baseLine={baseLine}\n stroke=\"none\"\n className=\"recharts-area-area\"\n />\n {stroke !== 'none' && (\n <Curve\n {...getPresentationAttributes(this.props)}\n className=\"recharts-area-curve\"\n layout={layout}\n type={type}\n connectNulls={connectNulls}\n fill=\"none\"\n points={points}\n />\n )}\n {stroke !== 'none' && isRange && (\n <Curve\n {...getPresentationAttributes(this.props)}\n className=\"recharts-area-curve\"\n layout={layout}\n type={type}\n connectNulls={connectNulls}\n fill=\"none\"\n points={baseLine}\n />\n )}\n </Layer>\n );\n }\n\n renderAreaWithAnimation(needClip) {\n const { points, baseLine, isAnimationActive, animationBegin,\n animationDuration, animationEasing, animationId, id } = this.props;\n const { prevPoints, prevBaseLine } = this.state;\n const clipPathId = _.isNil(id) ? this.id : id;\n\n return (\n <Animate\n begin={animationBegin}\n duration={animationDuration}\n isActive={isAnimationActive}\n easing={animationEasing}\n from={{ t: 0 }}\n to={{ t: 1 }}\n key={`area-${animationId}`}\n onAnimationEnd={this.handleAnimationEnd}\n onAnimationStart={this.handleAnimationStart}\n >\n {\n ({ t }) => {\n if (prevPoints) {\n // update animtaion\n const stepPoints = points.map((entry, index) => {\n if (prevPoints[index]) {\n const prev = prevPoints[index];\n const interpolatorX = interpolateNumber(prev.x, entry.x);\n const interpolatorY = interpolateNumber(prev.y, entry.y);\n\n return { ...entry, x: interpolatorX(t), y: interpolatorY(t) };\n }\n\n return entry;\n });\n let stepBaseLine;\n\n if (isNumber(baseLine)) {\n const interpolator = interpolateNumber(prevBaseLine, baseLine);\n stepBaseLine = interpolator(t);\n } else if (_.isNil(baseLine) || _.isNaN(baseLine)) {\n const interpolator = interpolateNumber(prevBaseLine, 0);\n stepBaseLine = interpolator(t);\n } else {\n stepBaseLine = baseLine.map((entry, index) => {\n if (prevBaseLine[index]) {\n const prev = prevBaseLine[index];\n const interpolatorX = interpolateNumber(prev.x, entry.x);\n const interpolatorY = interpolateNumber(prev.y, entry.y);\n\n return { ...entry, x: interpolatorX(t), y: interpolatorY(t) };\n }\n\n return entry;\n });\n }\n\n return this.renderAreaStatically(stepPoints, stepBaseLine, needClip);\n }\n\n return (\n <Layer>\n <defs>\n <clipPath id={`animationClipPath-${clipPathId}`}>\n {this.renderClipRect(t)}\n </clipPath>\n </defs>\n <Layer clipPath={`url(#animationClipPath-${clipPathId})`}>\n {this.renderAreaStatically(points, baseLine, needClip)}\n </Layer>\n </Layer>\n );\n }\n }\n </Animate>\n );\n }\n\n renderArea(needClip) {\n const { points, baseLine, isAnimationActive } = this.props;\n const { prevPoints, prevBaseLine, totalLength } = this.state;\n\n if (isAnimationActive && points && points.length &&\n ((!prevPoints && totalLength > 0) || !_.isEqual(prevPoints, points) ||\n !_.isEqual(prevBaseLine, baseLine))) {\n return this.renderAreaWithAnimation(needClip);\n }\n\n return this.renderAreaStatically(points, baseLine, needClip);\n }\n\n render() {\n const { hide, dot, points, className, top, left, xAxis, yAxis,\n width, height, isAnimationActive, id } = this.props;\n\n if (hide || !points || !points.length) { return null; }\n\n const { isAnimationFinished } = this.state;\n const hasSinglePoint = points.length === 1;\n const layerClass = classNames('recharts-area', className);\n const needClip = (xAxis && xAxis.allowDataOverflow) || (yAxis && yAxis.allowDataOverflow);\n const clipPathId = _.isNil(id) ? this.id : id;\n\n return (\n <Layer className={layerClass}>\n {needClip ? (\n <defs>\n <clipPath id={`clipPath-${clipPathId}`}>\n <rect x={left} y={top} width={width} height={height} />\n </clipPath>\n </defs>\n ) : null}\n {!hasSinglePoint ? this.renderArea(needClip) : null}\n {(dot || hasSinglePoint) && this.renderDots()}\n {(!isAnimationActive || isAnimationFinished) &&\n LabelList.renderCallByParent(this.props, points)}\n </Layer>\n );\n }\n}\n\nexport default Area;\n","/**\n * @fileOverview Render a group of bar\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport _ from 'lodash';\nimport Rectangle from '../shape/Rectangle';\nimport Layer from '../container/Layer';\nimport ErrorBar from './ErrorBar';\nimport Cell from '../component/Cell';\nimport LabelList from '../component/LabelList';\nimport pureRender from '../util/PureRender';\nimport { uniqueId, mathSign, interpolateNumber } from '../util/DataUtils';\nimport { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, LEGEND_TYPES,\n findAllByType, getPresentationAttributes, filterEventsOfChild, isSsr } from '../util/ReactUtils';\nimport { getCateCoordinateOfBar, getValueByDataKey, truncateByDomain, getBaseValueOfBar,\n findPositionOfBar } from '../util/ChartUtils';\n\n@pureRender\nclass Bar extends Component {\n\n static displayName = 'Bar';\n\n static propTypes = {\n ...PRESENTATION_ATTRIBUTES,\n ...EVENT_ATTRIBUTES,\n className: PropTypes.string,\n layout: PropTypes.oneOf(['vertical', 'horizontal']),\n xAxisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n yAxisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n yAxis: PropTypes.object,\n xAxis: PropTypes.object,\n stackId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n barSize: PropTypes.number,\n unit: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n name: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]).isRequired,\n legendType: PropTypes.oneOf(LEGEND_TYPES),\n minPointSize: PropTypes.number,\n maxBarSize: PropTypes.number,\n hide: PropTypes.bool,\n\n shape: PropTypes.oneOfType([PropTypes.func, PropTypes.element]),\n data: PropTypes.arrayOf(PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n radius: PropTypes.oneOfType([PropTypes.number, PropTypes.array]),\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.array]),\n })),\n onAnimationStart: PropTypes.func,\n onAnimationEnd: PropTypes.func,\n\n animationId: PropTypes.number,\n isAnimationActive: PropTypes.bool,\n animationBegin: PropTypes.number,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']),\n id: PropTypes.string,\n };\n\n static defaultProps = {\n xAxisId: 0,\n yAxisId: 0,\n legendType: 'rect',\n minPointSize: 0,\n hide: false,\n // data of bar\n data: [],\n layout: 'vertical',\n isAnimationActive: !isSsr(),\n animationBegin: 0,\n animationDuration: 400,\n animationEasing: 'ease',\n\n onAnimationStart: () => {},\n onAnimationEnd: () => {},\n };\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 static getComposedData = ({ props, item, barPosition, bandSize, xAxis, yAxis,\n xAxisTicks, yAxisTicks, stackedData, dataStartIndex, displayedData, offset }) => {\n const pos = findPositionOfBar(barPosition, item);\n if (!pos) { return []; }\n\n const { layout } = props;\n const { dataKey, children, minPointSize } = item.props;\n const numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n const stackedDomain = stackedData ? numericAxis.scale.domain() : null;\n const baseValue = getBaseValueOfBar({ props, numericAxis });\n const cells = findAllByType(children, Cell);\n\n const rects = displayedData.map((entry, index) => {\n let value, x, y, width, height, background;\n\n if (stackedData) {\n value = truncateByDomain(stackedData[dataStartIndex + index], stackedDomain);\n } else {\n value = getValueByDataKey(entry, dataKey);\n\n if (!_.isArray(value)) {\n value = [baseValue, value];\n }\n }\n\n if (layout === 'horizontal') {\n x = getCateCoordinateOfBar({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize,\n offset: pos.offset,\n entry,\n index,\n });\n y = yAxis.scale(value[1]);\n width = pos.size;\n height = yAxis.scale(value[0]) - yAxis.scale(value[1]);\n background = { x, y: yAxis.y, width, height: yAxis.height };\n\n if (Math.abs(minPointSize) > 0 && Math.abs(height) < Math.abs(minPointSize)) {\n const delta = mathSign(height || minPointSize) *\n (Math.abs(minPointSize) - Math.abs(height));\n\n y -= delta;\n height += delta;\n }\n } else {\n x = xAxis.scale(value[0]);\n y = getCateCoordinateOfBar({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize,\n offset: pos.offset,\n entry,\n index,\n });\n width = xAxis.scale(value[1]) - xAxis.scale(value[0]);\n height = pos.size;\n background = { x: xAxis.x, y, width: xAxis.width, height };\n\n if (Math.abs(minPointSize) > 0 && Math.abs(width) < Math.abs(minPointSize)) {\n const delta = mathSign(width || minPointSize) *\n (Math.abs(minPointSize) - Math.abs(width));\n width += delta;\n }\n }\n\n return {\n ...entry,\n x, y, width, height, value: stackedData ? value : value[1],\n payload: entry,\n background,\n ...(cells && cells[index] && cells[index].props),\n };\n });\n\n return { data: rects, layout, ...offset };\n };\n\n state = { isAnimationFinished: false };\n\n componentWillReceiveProps(nextProps) {\n const { animationId, data } = this.props;\n\n if (nextProps.animationId !== animationId) {\n this.cachePrevData(data);\n }\n }\n\n id = uniqueId('recharts-bar-');\n\n cachePrevData = (data) => {\n this.setState({ prevData: data });\n };\n\n handleAnimationEnd = () => {\n this.setState({ isAnimationFinished: true });\n this.props.onAnimationEnd();\n };\n\n handleAnimationStart = () => {\n this.setState({ isAnimationFinished: false });\n this.props.onAnimationStart();\n };\n\n static renderRectangle(option, props) {\n let rectangle;\n\n if (React.isValidElement(option)) {\n rectangle = React.cloneElement(option, props);\n } else if (_.isFunction(option)) {\n rectangle = option(props);\n } else {\n rectangle = <Rectangle {...props} />;\n }\n\n return rectangle;\n }\n\n renderRectanglesStatically(data) {\n const { shape } = this.props;\n const baseProps = getPresentationAttributes(this.props);\n\n return data && data.map((entry, i) => {\n const props = { ...baseProps, ...entry, index: i };\n\n return (\n <Layer\n className=\"recharts-bar-rectangle\"\n {...filterEventsOfChild(this.props, entry, i)}\n key={`rectangle-${i}`}\n >\n {this.constructor.renderRectangle(shape, props)}\n </Layer>\n );\n });\n }\n\n renderRectanglesWithAnimation() {\n const { data, layout, isAnimationActive, animationBegin,\n animationDuration, animationEasing, animationId,\n } = this.props;\n const { prevData } = this.state;\n\n return (\n <Animate\n begin={animationBegin}\n duration={animationDuration}\n isActive={isAnimationActive}\n easing={animationEasing}\n from={{ t: 0 }}\n to={{ t: 1 }}\n key={`bar-${animationId}`}\n onAnimationEnd={this.handleAnimationEnd}\n onAnimationStart={this.handleAnimationStart}\n >\n {\n ({ t }) => {\n const stepData = data.map((entry, index) => {\n const prev = prevData && prevData[index];\n\n if (prev) {\n const interpolatorX = interpolateNumber(prev.x, entry.x);\n const interpolatorY = interpolateNumber(prev.y, entry.y);\n const interpolatorWidth = interpolateNumber(prev.width, entry.width);\n const interpolatorHeight = interpolateNumber(prev.height, entry.height);\n\n return {\n ...entry,\n x: interpolatorX(t),\n y: interpolatorY(t),\n width: interpolatorWidth(t),\n height: interpolatorHeight(t),\n };\n }\n\n if (layout === 'horizontal') {\n const interpolatorHeight = interpolateNumber(0, entry.height);\n const h = interpolatorHeight(t);\n\n return {\n ...entry,\n y: entry.y + entry.height - h,\n height: h,\n };\n }\n\n const interpolator = interpolateNumber(0, entry.width);\n const w = interpolator(t);\n\n return { ...entry, width: w };\n });\n\n return (\n <Layer>\n {this.renderRectanglesStatically(stepData)}\n </Layer>\n );\n }\n }\n </Animate>\n );\n }\n\n renderRectangles() {\n const { data, isAnimationActive } = this.props;\n const { prevData } = this.state;\n\n if (isAnimationActive && data && data.length &&\n (!prevData || !_.isEqual(prevData, data))) {\n return this.renderRectanglesWithAnimation();\n }\n\n return this.renderRectanglesStatically(data);\n }\n\n renderBackground() {\n const { data } = this.props;\n const backgroundProps = getPresentationAttributes(this.props.background);\n\n return data.map((entry, i) => {\n // eslint-disable-next-line no-unused-vars\n const { value, background, ...rest } = entry;\n\n if (!background) { return null; }\n\n const props = {\n ...rest,\n fill: '#eee',\n ...background,\n ...backgroundProps,\n ...filterEventsOfChild(this.props, entry, i),\n index: i,\n key: `background-bar-${i}`,\n className: 'recharts-bar-background-rectangle',\n };\n\n return this.constructor.renderRectangle(background, props);\n });\n }\n\n renderErrorBar() {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) { return null; }\n\n const { data, xAxis, yAxis, layout, children } = this.props;\n const errorBarItems = findAllByType(children, ErrorBar);\n\n if (!errorBarItems) { return null; }\n\n const offset = (layout === 'vertical') ? data[0].height / 2 : data[0].width / 2;\n\n function dataPointFormatter(dataPoint, dataKey) {\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: dataPoint.value,\n errorVal: getValueByDataKey(dataPoint, dataKey),\n };\n }\n\n return errorBarItems.map((item, i) => React.cloneElement(item, {\n key: `error-bar-${i}`,\n data,\n xAxis,\n yAxis,\n layout,\n offset,\n dataPointFormatter,\n }));\n }\n\n render() {\n const { hide, data, className, xAxis, yAxis, left, top,\n width, height, isAnimationActive, background, id } = this.props;\n if (hide || !data || !data.length) { return null; }\n\n const { isAnimationFinished } = this.state;\n const layerClass = classNames('recharts-bar', className);\n const needClip = (xAxis && xAxis.allowDataOverflow) || (yAxis && yAxis.allowDataOverflow);\n const clipPathId = _.isNil(id) ? this.id : id;\n\n return (\n <Layer className={layerClass}>\n {needClip ? (\n <defs>\n <clipPath id={`clipPath-${clipPathId}`}>\n <rect x={left} y={top} width={width} height={height} />\n </clipPath>\n </defs>\n ) : null}\n <Layer\n className=\"recharts-bar-rectangles\"\n clipPath={needClip ? `url(#clipPath-${clipPathId})` : null}\n >\n {background ? this.renderBackground() : null}\n {this.renderRectangles()}\n </Layer>\n {this.renderErrorBar()}\n {(!isAnimationActive || isAnimationFinished) &&\n LabelList.renderCallByParent(this.props, data)}\n </Layer>\n );\n }\n}\n\nexport default Bar;\n","/**\n * @fileOverview Z Axis\n */\nimport { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport pureRender from '../util/PureRender';\n\n@pureRender\nclass ZAxis extends Component {\n\n static displayName = 'ZAxis';\n\n static propTypes = {\n type: PropTypes.oneOf(['number', 'category']),\n // The name of data displayed in the axis\n name: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n // The unit of data displayed in the axis\n unit: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n // The unique id of z-axis\n zAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n // The key of data displayed in the axis\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),\n // The range of axis\n range: PropTypes.arrayOf(PropTypes.number),\n scale: PropTypes.oneOfType([\n PropTypes.oneOf(['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time',\n 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential',\n 'threshold']),\n PropTypes.func,\n ]),\n };\n\n static defaultProps = {\n zAxisId: 0,\n range: [64, 64],\n scale: 'auto',\n type: 'number',\n };\n\n render() {\n return null;\n }\n}\n\nexport default ZAxis;\n","/**\n * @fileOverview Render a group of scatters\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Animate from 'react-smooth';\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport pureRender from '../util/PureRender';\nimport Layer from '../container/Layer';\nimport LabelList from '../component/LabelList';\nimport { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, LEGEND_TYPES,\n getPresentationAttributes, filterEventsOfChild, isSsr, findAllByType } from '../util/ReactUtils';\nimport ZAxis from './ZAxis';\nimport Curve from '../shape/Curve';\nimport Symbols from '../shape/Symbols';\nimport ErrorBar from './ErrorBar';\nimport Cell from '../component/Cell';\nimport { uniqueId, interpolateNumber, getLinearRegression } from '../util/DataUtils';\nimport { getValueByDataKey, getCateCoordinateOfLine } from '../util/ChartUtils';\n\n@pureRender\nclass Scatter extends Component {\n\n static displayName = 'Scatter';\n\n static propTypes = {\n ...EVENT_ATTRIBUTES,\n ...PRESENTATION_ATTRIBUTES,\n\n xAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n yAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n zAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n line: PropTypes.oneOfType([\n PropTypes.bool, PropTypes.object, PropTypes.func, PropTypes.element,\n ]),\n lineType: PropTypes.oneOf(['fitting', 'joint']),\n lineJointType: PropTypes.oneOfType([PropTypes.oneOf([\n 'basis', 'basisClosed', 'basisOpen', 'linear', 'linearClosed', 'natural',\n 'monotoneX', 'monotoneY', 'monotone', 'step', 'stepBefore', 'stepAfter',\n ]), PropTypes.func]),\n legendType: PropTypes.oneOf(LEGEND_TYPES),\n className: PropTypes.string,\n name: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n\n activeIndex: PropTypes.number,\n activeShape: PropTypes.oneOfType([\n PropTypes.object, PropTypes.func, PropTypes.element,\n ]),\n shape: PropTypes.oneOfType([\n PropTypes.oneOf(['circle', 'cross', 'diamond', 'square', 'star', 'triangle', 'wye']),\n PropTypes.element,\n PropTypes.func,\n ]),\n points: PropTypes.arrayOf(PropTypes.shape({\n cx: PropTypes.number,\n cy: PropTypes.number,\n size: PropTypes.number,\n node: PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n z: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n }),\n payload: PropTypes.any,\n })),\n hide: PropTypes.bool,\n\n isAnimationActive: PropTypes.bool,\n animationId: PropTypes.number,\n animationBegin: PropTypes.number,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']),\n };\n\n static 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\n isAnimationActive: !isSsr(),\n animationBegin: 0,\n animationDuration: 400,\n animationEasing: 'linear',\n };\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 static getComposedData = ({ xAxis, yAxis, zAxis, item, displayedData, onItemMouseLeave,\n onItemMouseEnter, offset, xAxisTicks }) => {\n const cells = findAllByType(item.props.children, Cell);\n const xAxisDataKey = _.isNil(xAxis.dataKey) ? item.props.dataKey : xAxis.dataKey;\n const yAxisDataKey = _.isNil(yAxis.dataKey) ? item.props.dataKey : yAxis.dataKey;\n const zAxisDataKey = zAxis && zAxis.dataKey;\n const defaultRangeZ = zAxis ? zAxis.range : ZAxis.defaultProps.range;\n const defaultZ = defaultRangeZ && defaultRangeZ[0];\n const xBandSize = xAxis.scale.bandwidth ? xAxis.scale.bandwidth() : 0;\n const yBandSize = yAxis.scale.bandwidth ? yAxis.scale.bandwidth() : 0;\n const points = displayedData.map((entry, index) => {\n const x = entry[xAxisDataKey];\n const y = entry[yAxisDataKey];\n const z = (!_.isNil(zAxisDataKey) && entry[zAxisDataKey]) || '-';\n const tooltipPayload = [\n { name: xAxis.name || xAxis.dataKey, unit: xAxis.unit || '', value: x, payload: entry },\n { name: yAxis.name || yAxis.dataKey, unit: yAxis.unit || '', value: y, payload: entry },\n ];\n\n if (z !== '-') {\n tooltipPayload.push({\n name: zAxis.name || zAxis.dataKey, unit: zAxis.unit || '', value: z, payload: entry,\n });\n }\n const cx = getCateCoordinateOfLine({\n axis: xAxis, ticks: xAxisTicks, bandSize: xBandSize, entry, index,\n });\n const cy = getCateCoordinateOfLine({\n axis: yAxis, ticks: xAxisTicks, bandSize: yBandSize, entry, index,\n });\n const size = z !== '-' ? zAxis.scale(z) : defaultZ;\n const radius = Math.sqrt(Math.max(size, 0) / Math.PI);\n\n return {\n ...entry, cx, cy,\n x: cx - radius,\n y: cy - radius,\n xAxis, yAxis, zAxis,\n width: 2 * radius,\n height: 2 * radius,\n size,\n node: { x, y, z },\n tooltipPayload,\n tooltipPosition: { x: cx, y: cy },\n payload: entry,\n ...(cells && cells[index] && cells[index].props),\n };\n });\n\n return {\n onMouseLeave: onItemMouseLeave,\n onMouseEnter: onItemMouseEnter,\n points,\n ...offset,\n };\n };\n\n state = { isAnimationFinished: false };\n\n componentWillReceiveProps(nextProps) {\n const { animationId, points } = this.props;\n\n if (nextProps.animationId !== animationId) {\n this.cachePrevPoints(points);\n }\n }\n\n cachePrevPoints = (points) => {\n this.setState({ prevPoints: points });\n };\n\n handleAnimationEnd = () => {\n this.setState({ isAnimationFinished: true });\n };\n\n handleAnimationStart = () => {\n this.setState({ isAnimationFinished: false });\n };\n\n id = uniqueId('recharts-scatter-');\n\n static renderSymbolItem(option, props) {\n let symbol;\n\n if (React.isValidElement(option)) {\n symbol = React.cloneElement(option, props);\n } else if (_.isFunction(option)) {\n symbol = option(props);\n } else {\n symbol = <Symbols {...props} type={option} />;\n }\n\n return symbol;\n }\n\n renderSymbolsStatically(points) {\n const { shape, activeShape, activeIndex } = this.props;\n const baseProps = getPresentationAttributes(this.props);\n\n return points.map((entry, i) => {\n const props = { key: `symbol-${i}`, ...baseProps, ...entry };\n\n return (\n <Layer\n className=\"recharts-scatter-symbol\"\n {...filterEventsOfChild(this.props, entry, i)}\n key={`symbol-${i}`}\n >\n {this.constructor.renderSymbolItem(activeIndex === i ? activeShape : shape, props)}\n </Layer>\n );\n });\n }\n\n renderSymbolsWithAnimation() {\n const { points, isAnimationActive, animationBegin, animationDuration,\n animationEasing, animationId } = this.props;\n const { prevPoints } = this.state;\n\n return (\n <Animate\n begin={animationBegin}\n duration={animationDuration}\n isActive={isAnimationActive}\n easing={animationEasing}\n from={{ t: 0 }}\n to={{ t: 1 }}\n key={`pie-${animationId}`}\n onAnimationEnd={this.handleAnimationEnd}\n onAnimationStart={this.handleAnimationStart}\n >\n {\n ({ t }) => {\n const stepData = points.map((entry, index) => {\n const prev = prevPoints && prevPoints[index];\n\n if (prev) {\n const interpolatorCx = interpolateNumber(prev.cx, entry.cx);\n const interpolatorCy = interpolateNumber(prev.cy, entry.cy);\n const interpolatorSize = interpolateNumber(prev.size, entry.size);\n\n return {\n ...entry,\n cx: interpolatorCx(t),\n cy: interpolatorCy(t),\n size: interpolatorSize(t),\n };\n }\n\n const interpolator = interpolateNumber(0, entry.size);\n\n return { ...entry, size: interpolator(t) };\n });\n\n return (\n <Layer>\n {this.renderSymbolsStatically(stepData)}\n </Layer>\n );\n }\n }\n </Animate>\n );\n }\n\n renderSymbols() {\n const { points, isAnimationActive } = this.props;\n const { prevPoints } = this.state;\n\n if (isAnimationActive && points && points.length &&\n (!prevPoints || !_.isEqual(prevPoints, points))) {\n return this.renderSymbolsWithAnimation();\n }\n\n return this.renderSymbolsStatically(points);\n }\n\n renderErrorBar() {\n const { isAnimationActive } = this.props;\n if (isAnimationActive && !this.state.isAnimationFinished) { return null; }\n\n const { points, xAxis, yAxis, children } = this.props;\n const errorBarItems = findAllByType(children, ErrorBar);\n\n if (!errorBarItems) { return null; }\n\n function dataPointFormatterY(dataPoint, dataKey) {\n return {\n x: dataPoint.cx,\n y: dataPoint.cy,\n value: dataPoint.y,\n errorVal: getValueByDataKey(dataPoint, dataKey),\n };\n }\n\n function dataPointFormatterX(dataPoint, dataKey) {\n return {\n x: dataPoint.cx,\n y: dataPoint.cy,\n value: dataPoint.x,\n errorVal: getValueByDataKey(dataPoint, dataKey),\n };\n }\n\n return errorBarItems.map((item, i) => {\n const { direction } = item.props;\n\n return React.cloneElement(item, {\n key: i,\n data: points,\n xAxis,\n yAxis,\n layout: direction === 'x' ? 'vertical' : 'horizontal',\n dataPointFormatter: direction === 'x' ? dataPointFormatterX : dataPointFormatterY,\n });\n });\n }\n\n renderLine() {\n const { points, line, lineType, lineJointType } = this.props;\n const scatterProps = getPresentationAttributes(this.props);\n const customLineProps = getPresentationAttributes(line);\n let linePoints, lineItem;\n\n if (lineType === 'joint') {\n linePoints = points.map(entry => ({ x: entry.cx, y: entry.cy }));\n } else if (lineType === 'fitting') {\n const { xmin, xmax, a, b } = getLinearRegression(points);\n const linearExp = x => a * x + b;\n linePoints = [{ x: xmin, y: linearExp(xmin) }, { x: xmax, y: linearExp(xmax) }];\n }\n const lineProps = {\n ...scatterProps,\n fill: 'none',\n stroke: scatterProps && scatterProps.fill,\n ...customLineProps,\n points: linePoints,\n };\n\n if (React.isValidElement(line)) {\n lineItem = React.cloneElement(line, lineProps);\n } else if (_.isFunction(line)) {\n lineItem = line(lineProps);\n } else {\n lineItem = <Curve {...lineProps} type={lineJointType} />;\n }\n\n return (\n <Layer className=\"recharts-scatter-line\" key=\"recharts-scatter-line\">\n {lineItem}\n </Layer>\n );\n }\n\n render() {\n const { hide, points, line, className, xAxis, yAxis, left, top, width,\n height, id } = this.props;\n if (hide || !points || !points.length) { return null; }\n const { isAnimationActive, isAnimationFinished } = this.state;\n const layerClass = classNames('recharts-scatter', className);\n const needClip = (xAxis && xAxis.allowDataOverflow) || (yAxis && yAxis.allowDataOverflow);\n const clipPathId = _.isNil(id) ? this.id : id;\n\n return (\n <Layer\n className={layerClass}\n clipPath={needClip ? `url(#clipPath-${clipPathId})` : null}\n >\n {needClip ? (\n <defs>\n <clipPath id={`clipPath-${clipPathId}`}>\n <rect x={left} y={top} width={width} height={height} />\n </clipPath>\n </defs>\n ) : null}\n {line && this.renderLine()}\n {this.renderErrorBar()}\n <Layer key=\"recharts-scatter-symbols\">\n {this.renderSymbols()}\n </Layer>\n {(!isAnimationActive || isAnimationFinished) &&\n LabelList.renderCallByParent(this.props, points)}\n </Layer>\n );\n }\n}\n\nexport default Scatter;\n","/**\n * @fileOverview X Axis\n */\nimport { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport pureRender from '../util/PureRender';\nimport { SCALE_TYPES } from '../util/ReactUtils';\n\n@pureRender\nclass XAxis extends Component {\n\n static displayName = 'XAxis';\n\n static propTypes = {\n allowDecimals: PropTypes.bool,\n allowDuplicatedCategory: PropTypes.bool,\n hide: PropTypes.bool,\n // The name of data displayed in the axis\n name: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n // The unit of data displayed in the axis\n unit: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n // The unique id of x-axis\n xAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n domain: PropTypes.arrayOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.func,\n PropTypes.oneOf(['auto', 'dataMin', 'dataMax']),\n ])),\n // The key of data displayed in the axis\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),\n // The width of axis which is usually calculated internally\n width: PropTypes.number,\n // The height of axis, which need to be setted by user\n height: PropTypes.number,\n mirror: PropTypes.bool,\n // The orientation of axis\n orientation: PropTypes.oneOf(['top', 'bottom']),\n type: PropTypes.oneOf(['number', 'category']),\n // Ticks can be any type when the axis is the type of category\n // Ticks must be numbers when the axis is the type of number\n ticks: PropTypes.array,\n // The count of ticks\n tickCount: PropTypes.number,\n // The formatter function of tick\n tickFormatter: PropTypes.func,\n padding: PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number,\n }),\n allowDataOverflow: PropTypes.bool,\n scale: PropTypes.oneOfType([PropTypes.oneOf(SCALE_TYPES), PropTypes.func]),\n tick: PropTypes.oneOfType([\n PropTypes.bool, PropTypes.func, PropTypes.object, PropTypes.element,\n ]),\n axisLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n tickLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n minTickGap: PropTypes.number,\n tickSize: PropTypes.number,\n interval: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf([\n 'preserveStart', 'preserveEnd', 'preserveStartEnd',\n ])]),\n reversed: PropTypes.bool,\n };\n\n static defaultProps = {\n allowDecimals: true,\n hide: false,\n orientation: 'bottom',\n width: 0,\n height: 30,\n mirror: false,\n xAxisId: 0,\n tickCount: 5,\n type: 'category',\n domain: [0, 'auto'],\n padding: { left: 0, right: 0 },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false,\n allowDuplicatedCategory: true,\n };\n\n render() {\n return null;\n }\n}\n\nexport default XAxis;\n","/**\n * @fileOverview Y Axis\n */\nimport { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport pureRender from '../util/PureRender';\n\n@pureRender\nclass YAxis extends Component {\n\n static displayName = 'YAxis';\n\n static propTypes = {\n allowDecimals: PropTypes.bool,\n allowDuplicatedCategory: PropTypes.bool,\n hide: PropTypes.bool,\n // The name of data displayed in the axis\n name: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n // The unit of data displayed in the axis\n unit: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n // The unique id of y-axis\n yAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n domain: PropTypes.arrayOf(PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.number,\n PropTypes.func,\n PropTypes.oneOf(['auto', 'dataMin', 'dataMax']),\n ])),\n // The key of data displayed in the axis\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),\n // Ticks can be any type when the axis is the type of category\n // Ticks must be numbers when the axis is the type of number\n ticks: PropTypes.array,\n // The count of ticks\n tickCount: PropTypes.number,\n // The formatter function of tick\n tickFormatter: PropTypes.func,\n // The width of axis, which need to be setted by user\n width: PropTypes.number,\n // The height of axis which is usually calculated in Chart\n height: PropTypes.number,\n mirror: PropTypes.bool,\n // The orientation of axis\n orientation: PropTypes.oneOf(['left', 'right']),\n type: PropTypes.oneOf(['number', 'category']),\n padding: PropTypes.shape({\n top: PropTypes.number,\n bottom: PropTypes.number,\n }),\n allowDataOverflow: PropTypes.bool,\n scale: PropTypes.oneOfType([\n PropTypes.oneOf(['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time',\n 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential',\n 'threshold']),\n PropTypes.func,\n ]),\n tick: PropTypes.oneOfType([\n PropTypes.bool, PropTypes.func, PropTypes.object, PropTypes.element,\n ]),\n axisLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n tickLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n minTickGap: PropTypes.number,\n tickSize: PropTypes.number,\n interval: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf([\n 'preserveStart', 'preserveEnd', 'preserveStartEnd',\n ])]),\n reversed: PropTypes.bool,\n };\n\n static defaultProps = {\n allowDuplicatedCategory: true,\n allowDecimals: true,\n hide: false,\n orientation: 'left',\n width: 60,\n height: 0,\n mirror: false,\n yAxisId: 0,\n tickCount: 5,\n type: 'number',\n domain: [0, 'auto'],\n padding: { top: 0, bottom: 0 },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false,\n };\n\n render() {\n return null;\n }\n}\n\nexport default YAxis;\n","import EventEmitter from 'events';\n\nconst eventCenter = new EventEmitter();\n\nif (eventCenter.setMaxListeners) {\n eventCenter.setMaxListeners(10);\n}\n\nexport { eventCenter };\nexport const SYNC_EVENT = 'recharts.syncMouseEvents';\n","import React, { Component, cloneElement, isValidElement, createElement } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport Surface from '../container/Surface';\nimport Layer from '../container/Layer';\nimport Tooltip from '../component/Tooltip';\nimport Legend from '../component/Legend';\nimport Curve from '../shape/Curve';\nimport Cross from '../shape/Cross';\nimport Sector from '../shape/Sector';\nimport Dot from '../shape/Dot';\nimport Rectangle from '../shape/Rectangle';\n\nimport { findAllByType, findChildByType, getDisplayName, parseChildIndex,\n getPresentationAttributes, validateWidthHeight, isChildrenEqual,\n renderByOrder, getReactEventByType, filterEventAttributes } from '../util/ReactUtils';\n\nimport CartesianAxis from '../cartesian/CartesianAxis';\nimport Brush from '../cartesian/Brush';\nimport { getOffset, calculateChartCoordinate } from '../util/DOMUtils';\nimport { getAnyElementOfObject, hasDuplicate, uniqueId, isNumber, findEntryInArray } from '../util/DataUtils';\nimport { calculateActiveTickIndex, getMainColorOfGraphicItem, getBarSizeList,\n getBarPosition, appendOffsetOfLegend, getLegendProps, combineEventHandlers,\n getTicksOfAxis, getCoordinatesOfGrid, getStackedDataOfItem, parseErrorBarsOfAxis,\n getBandSizeOfAxis, getStackGroupsByAxisId, getValueByDataKey, isCategorialAxis,\n getDomainOfItemsWithSameAxis, getDomainOfStackGroups, getDomainOfDataByKey,\n detectReferenceElementsDomain, parseSpecifiedDomain, parseDomainOfCategoryAxis } from '../util/ChartUtils';\nimport { inRangeOfSector, polarToCartesian } from '../util/PolarUtils';\nimport { shallowEqual } from '../util/PureRender';\nimport { eventCenter, SYNC_EVENT } from '../util/Events';\n\nconst ORIENT_MAP = {\n xAxis: ['bottom', 'top'],\n yAxis: ['left', 'right'],\n};\n\nconst originCoordinate = { x: 0, y: 0 };\n\nconst generateCategoricalChart = ({\n chartName, GraphicalChild, eventType = 'axis', axisComponents, legendContent,\n formatAxisMap, defaultProps, propTypes,\n}) => {\n class CategoricalChartWrapper extends Component {\n static displayName = chartName;\n\n static propTypes = {\n syncId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n compact: PropTypes.bool,\n width: PropTypes.number,\n height: PropTypes.number,\n data: PropTypes.arrayOf(PropTypes.object),\n layout: PropTypes.oneOf(['horizontal', 'vertical']),\n stackOffset: PropTypes.oneOf(['sign', 'expand', 'none', 'wiggle', 'silhouette']),\n throttleDelay: PropTypes.number,\n margin: PropTypes.shape({\n top: PropTypes.number,\n right: PropTypes.number,\n bottom: PropTypes.number,\n left: PropTypes.number,\n }),\n barCategoryGap: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n barGap: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n barSize: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n maxBarSize: PropTypes.number,\n style: PropTypes.object,\n className: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n defaultShowTooltip: PropTypes.bool,\n onClick: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseMove: PropTypes.func,\n onMouseDown: PropTypes.func,\n onMouseUp: PropTypes.func,\n reverseStackOrder: PropTypes.bool,\n id: PropTypes.string,\n ...propTypes,\n };\n\n static defaultProps = {\n layout: 'horizontal',\n stackOffset: 'none',\n barCategoryGap: '10%',\n barGap: 4,\n margin: { top: 5, right: 5, bottom: 5, left: 5 },\n reverseStackOrder: false,\n ...defaultProps,\n };\n\n /**\n * Returns default, reset state for the categorical chart.\n * @param {Object} props Props object to use when creating the default state\n * @return {Object} Whole new state\n */\n static createDefaultState = (props) => {\n const { children, defaultShowTooltip } = props;\n const brushItem = findChildByType(children, Brush);\n const startIndex = (brushItem && brushItem.props && brushItem.props.startIndex) || 0;\n const endIndex = (brushItem && brushItem.props && brushItem.props.endIndex) ||\n ((props.data && (props.data.length - 1)) || 0);\n return {\n chartX: 0,\n chartY: 0,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n activeTooltipIndex: -1,\n isTooltipActive: !_.isNil(defaultShowTooltip) ? defaultShowTooltip : false,\n };\n };\n\n static hasBar = (graphicalItems) => {\n if (!graphicalItems || !graphicalItems.length) { return false; }\n\n return graphicalItems.some((item) => {\n const name = getDisplayName(item && item.type);\n\n return name && name.indexOf('Bar') >= 0;\n });\n };\n\n static getDisplayedData = (props, { graphicalItems, dataStartIndex, dataEndIndex }, item) => {\n const itemsData = (graphicalItems || []).reduce((result, child) => {\n const itemData = child.props.data;\n\n if (itemData && itemData.length) {\n return [...result, ...itemData];\n }\n\n return result;\n }, []);\n if (itemsData && itemsData.length > 0) {\n return itemsData;\n }\n\n if (item && item.props && item.props.data && item.props.data.length > 0) {\n return item.props.data;\n }\n\n const { data } = props;\n\n if (data && data.length && isNumber(dataStartIndex) && isNumber(dataEndIndex)) {\n return data.slice(dataStartIndex, dataEndIndex + 1);\n }\n\n return [];\n };\n\n constructor(props) {\n super(props);\n\n const defaultState = this.constructor.createDefaultState(props);\n const updateId = 0;\n this.state = { ...defaultState, updateId: 0,\n ...this.updateStateOfAxisMapsOffsetAndStackGroups({ props, ...defaultState, updateId }) };\n\n this.uniqueChartId = _.isNil(props.id) ? uniqueId('recharts') : props.id;\n this.clipPathId = `${this.uniqueChartId}-clip`;\n\n if (props.throttleDelay) {\n this.triggeredAfterMouseMove = _.throttle(this.triggeredAfterMouseMove,\n props.throttleDelay);\n }\n }\n\n /* eslint-disable react/no-did-mount-set-state */\n componentDidMount() {\n if (!_.isNil(this.props.syncId)) {\n this.addListener();\n }\n }\n\n componentWillReceiveProps(nextProps) {\n const { data, children, width, height, layout, stackOffset, margin } = this.props;\n const { updateId } = this.state;\n\n if (nextProps.data !== data || nextProps.width !== width ||\n nextProps.height !== height || nextProps.layout !== layout ||\n nextProps.stackOffset !== stackOffset || !shallowEqual(nextProps.margin, margin)) {\n const defaultState = this.constructor.createDefaultState(nextProps);\n this.setState({ ...defaultState, updateId: updateId + 1,\n ...this.updateStateOfAxisMapsOffsetAndStackGroups(\n { props: nextProps, ...defaultState, updateId: updateId + 1 }) }\n );\n } else if (!isChildrenEqual(nextProps.children, children)) {\n // update configuration in chilren\n const hasGlobalData = !_.isNil(nextProps.data);\n const newUpdateId = hasGlobalData ? updateId : updateId + 1;\n\n this.setState(prevState => ({\n updateId: newUpdateId,\n ...this.updateStateOfAxisMapsOffsetAndStackGroups({\n props: nextProps,\n ...prevState,\n updateId: newUpdateId,\n }),\n }));\n }\n // add syncId\n if (_.isNil(this.props.syncId) && !_.isNil(nextProps.syncId)) {\n this.addListener();\n }\n // remove syncId\n if (!_.isNil(this.props.syncId) && _.isNil(nextProps.syncId)) {\n this.removeListener();\n }\n }\n\n componentWillUnmount() {\n if (!_.isNil(this.props.syncId)) {\n this.removeListener();\n }\n if (typeof this.triggeredAfterMouseMove.cancel === 'function') {\n this.triggeredAfterMouseMove.cancel();\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 {Array} graphicalItems The instances of item\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n getAxisMap(props, { axisType = 'xAxis', AxisComp, graphicalItems, stackGroups, dataStartIndex,\n dataEndIndex }) {\n const { children } = props;\n const axisIdKey = `${axisType}Id`;\n // Get all the instance of Axis\n const axes = findAllByType(children, AxisComp);\n\n let axisMap = {};\n\n if (axes && axes.length) {\n axisMap = this.getAxisMapByAxes(props, { axes, graphicalItems, axisType, axisIdKey,\n stackGroups, dataStartIndex, dataEndIndex });\n } else if (graphicalItems && graphicalItems.length) {\n axisMap = this.getAxisMapByItems(props, {\n Axis: AxisComp,\n graphicalItems, axisType, axisIdKey, stackGroups, dataStartIndex, dataEndIndex });\n }\n\n return axisMap;\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 */\n getAxisMapByAxes(props, { axes, graphicalItems, axisType, axisIdKey,\n stackGroups, dataStartIndex, dataEndIndex }) {\n const { layout, children, stackOffset } = props;\n const isCategorial = isCategorialAxis(layout, axisType);\n\n // Eliminate duplicated axes\n const axisMap = axes.reduce((result, child) => {\n const { type, dataKey, allowDataOverflow, allowDuplicatedCategory,\n scale, ticks } = child.props;\n const axisId = child.props[axisIdKey];\n const displayedData = this.constructor.getDisplayedData(props, {\n graphicalItems: graphicalItems.filter(item => item.props[axisIdKey] === axisId),\n dataStartIndex,\n dataEndIndex,\n });\n const len = displayedData.length;\n\n if (!result[axisId]) {\n let domain, duplicateDomain, categoricalDomain;\n\n if (dataKey) {\n domain = getDomainOfDataByKey(displayedData, dataKey, type);\n\n if (type === 'category' && isCategorial) {\n const duplicate = hasDuplicate(domain);\n\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(child.props.domain, domain, child)\n .reduce((finalDomain, entry) => (\n finalDomain.indexOf(entry) >= 0 ? finalDomain : [...finalDomain, entry]\n ), []);\n }\n } else if (type === 'category') {\n if (!allowDuplicatedCategory) {\n domain = parseDomainOfCategoryAxis(child.props.domain, domain, child)\n .reduce((finalDomain, entry) => (\n (finalDomain.indexOf(entry) >= 0 || entry === '' || _.isNil(entry)) ?\n finalDomain : [...finalDomain, entry]\n ), []);\n } else {\n // eliminate undefined or null or empty string\n domain = domain.filter(entry => (entry !== '' && !_.isNil(entry)));\n }\n } else if (type === 'number') {\n const errorBarsDomain = parseErrorBarsOfAxis(\n displayedData,\n graphicalItems.filter(item => (\n item.props[axisIdKey] === axisId && !item.props.hide\n )),\n dataKey,\n axisType,\n );\n\n if (errorBarsDomain) {\n domain = errorBarsDomain;\n }\n }\n\n if (isCategorial && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n } else if (isCategorial) {\n domain = _.range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack &&\n type === 'number') {\n // when stackOffset is 'expand', the domain may be calculated as [0, 1.000000000002]\n domain = stackOffset === 'expand' ? [0, 1] : getDomainOfStackGroups(\n stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex\n );\n } else {\n domain = getDomainOfItemsWithSameAxis(\n displayedData,\n graphicalItems.filter(item => (\n item.props[axisIdKey] === axisId && !item.props.hide\n )),\n type,\n true\n );\n }\n if (type === 'number') {\n // To detect wether there is any reference lines whose props alwaysShow is true\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType, ticks);\n\n if (child.props.domain) {\n domain = parseSpecifiedDomain(child.props.domain, domain, allowDataOverflow);\n }\n }\n\n return {\n ...result,\n [axisId]: {\n ...child.props,\n axisType,\n domain,\n categoricalDomain,\n duplicateDomain,\n originalDomain: child.props.domain,\n isCategorial,\n layout,\n },\n };\n }\n\n return result;\n }, {});\n return axisMap;\n }\n\n /**\n * Get the configuration of axis by the options of item,\n * this kind of axis does not display in chart\n * @param {Object} props Latest props\n * @param {Array} graphicalItems The instances of item\n * @param {ReactElement} Axis Axis Component\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n getAxisMapByItems(props, { graphicalItems, Axis, axisType, axisIdKey,\n stackGroups, dataStartIndex, dataEndIndex }) {\n const { layout, children } = props;\n const displayedData = this.constructor.getDisplayedData(props, {\n graphicalItems, dataStartIndex, dataEndIndex,\n });\n const len = displayedData.length;\n const isCategorial = isCategorialAxis(layout, axisType);\n let 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 const axisMap = graphicalItems.reduce((result, child) => {\n const axisId = child.props[axisIdKey];\n\n if (!result[axisId]) {\n index++;\n let domain;\n\n if (isCategorial) {\n domain = _.range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack) {\n domain = getDomainOfStackGroups(\n stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex\n );\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n } else {\n domain = parseSpecifiedDomain(Axis.defaultProps.domain,\n getDomainOfItemsWithSameAxis(\n displayedData,\n graphicalItems.filter(item => (\n item.props[axisIdKey] === axisId && !item.props.hide\n )),\n 'number'\n ),\n Axis.defaultProps.allowDataOverflow\n );\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n }\n\n return {\n ...result,\n [axisId]: {\n axisType,\n ...Axis.defaultProps,\n hide: true,\n orientation: ORIENT_MAP[axisType] && ORIENT_MAP[axisType][index % 2],\n domain,\n originalDomain: Axis.defaultProps.domain,\n isCategorial,\n layout,\n // specify scale when no Axis\n // scale: isCategorial ? 'band' : 'linear',\n },\n };\n }\n\n return result;\n }, {});\n\n return axisMap;\n }\n\n getActiveCoordinate(tooltipTicks, activeIndex, rangeObj) {\n const { layout } = this.props;\n const entry = tooltipTicks.find(tick => tick && (tick.index === activeIndex));\n\n if (entry) {\n if (layout === 'horizontal') {\n return { x: entry.coordinate, y: rangeObj.y };\n } if (layout === 'vertical') {\n return { x: rangeObj.x, y: entry.coordinate };\n } if (layout === 'centric') {\n const angle = entry.coordinate;\n const { radius } = rangeObj;\n\n return {\n ...rangeObj,\n ...polarToCartesian(rangeObj.cx, rangeObj.cy, radius, angle),\n angle, radius,\n };\n }\n\n const radius = entry.coordinate;\n const { angle } = rangeObj;\n\n return {\n ...rangeObj,\n ...polarToCartesian(rangeObj.cx, rangeObj.cy, radius, angle),\n angle, radius,\n };\n }\n\n return originCoordinate;\n }\n\n /**\n * Get the information of mouse in chart, return null when the mouse is not in the chart\n * @param {Object} event The event object\n * @return {Object} Mouse data\n */\n getMouseInfo(event) {\n if (!this.container) { return null; }\n\n const containerOffset = getOffset(this.container);\n const e = calculateChartCoordinate(event, containerOffset);\n const rangeObj = this.inRange(e.chartX, e.chartY);\n if (!rangeObj) { return null; }\n\n const { xAxisMap, yAxisMap } = this.state;\n\n if (eventType !== 'axis' && xAxisMap && yAxisMap) {\n const xScale = getAnyElementOfObject(xAxisMap).scale;\n const yScale = getAnyElementOfObject(yAxisMap).scale;\n const xValue = xScale && xScale.invert ? xScale.invert(e.chartX) : null;\n const yValue = yScale && yScale.invert ? yScale.invert(e.chartY) : null;\n\n return { ...e, xValue, yValue };\n }\n\n const { orderedTooltipTicks: ticks, tooltipAxis: axis, tooltipTicks } = this.state;\n const pos = this.calculateTooltipPos(rangeObj);\n const activeIndex = calculateActiveTickIndex(pos, ticks, tooltipTicks, axis);\n\n if (activeIndex >= 0 && tooltipTicks) {\n const activeLabel = tooltipTicks[activeIndex] && tooltipTicks[activeIndex].value;\n const activePayload = this.getTooltipContent(activeIndex, activeLabel);\n const activeCoordinate = this.getActiveCoordinate(ticks, activeIndex, rangeObj);\n\n return {\n ...e,\n activeTooltipIndex: activeIndex,\n activeLabel, activePayload, activeCoordinate,\n };\n }\n\n return null;\n }\n\n /**\n * Get the content to be displayed in the tooltip\n * @param {Number} activeIndex Active index of data\n * @param {String} activeLabel Active label of data\n * @return {Array} The content of tooltip\n */\n getTooltipContent(activeIndex, activeLabel) {\n const { graphicalItems, tooltipAxis } = this.state;\n const displayedData = this.constructor.getDisplayedData(this.props, this.state);\n\n if (activeIndex < 0 || !graphicalItems || !graphicalItems.length ||\n activeIndex >= displayedData.length) {\n return null;\n }\n\n // get data by activeIndex when the axis don't allow duplicated category\n return graphicalItems.reduce((result, child) => {\n const { hide } = child.props;\n\n if (hide) { return result; }\n\n const { dataKey, name, unit, formatter, data } = child.props;\n let payload;\n\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // graphic child has data props\n payload = findEntryInArray(data || displayedData, tooltipAxis.dataKey, activeLabel);\n } else {\n payload = displayedData[activeIndex];\n }\n\n if (!payload) { return result; }\n return [...result, {\n ...getPresentationAttributes(child),\n dataKey, unit, formatter,\n name: name || dataKey,\n color: getMainColorOfGraphicItem(child),\n value: getValueByDataKey(payload, dataKey),\n payload,\n }];\n }, []);\n }\n\n getFormatItems(props, currentState) {\n const { graphicalItems, stackGroups, offset, updateId, dataStartIndex,\n dataEndIndex } = currentState;\n const { barSize, layout, barGap, barCategoryGap, maxBarSize: globalMaxBarSize } = props;\n const { numericAxisName, cateAxisName } = this.constructor.getAxisNameByLayout(layout);\n const hasBar = this.constructor.hasBar(graphicalItems);\n const sizeList = hasBar && getBarSizeList({ barSize, stackGroups });\n const formatedItems = [];\n\n graphicalItems.forEach((item, index) => {\n const displayedData = this.constructor.getDisplayedData(\n props, { dataStartIndex, dataEndIndex }, item\n );\n const { dataKey, maxBarSize: childMaxBarSize } = item.props;\n const numericAxisId = item.props[`${numericAxisName}Id`];\n const cateAxisId = item.props[`${cateAxisName}Id`];\n const axisObj = axisComponents.reduce((result, entry) => {\n const axisMap = currentState[`${entry.axisType}Map`];\n const id = item.props[`${entry.axisType}Id`];\n const axis = axisMap && axisMap[id];\n\n return {\n ...result,\n [entry.axisType]: axis,\n [`${entry.axisType}Ticks`]: getTicksOfAxis(axis),\n };\n }, {});\n const cateAxis = axisObj[cateAxisName];\n const cateTicks = axisObj[`${cateAxisName}Ticks`];\n const stackedData = stackGroups && stackGroups[numericAxisId] &&\n stackGroups[numericAxisId].hasStack &&\n getStackedDataOfItem(item, stackGroups[numericAxisId].stackGroups);\n const bandSize = getBandSizeOfAxis(cateAxis, cateTicks);\n const maxBarSize = _.isNil(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n const barPosition = hasBar && getBarPosition({\n barGap, barCategoryGap, bandSize, sizeList: sizeList[cateAxisId], maxBarSize,\n });\n const componsedFn = item && item.type && item.type.getComposedData;\n\n if (componsedFn) {\n formatedItems.push({\n props: {\n ...componsedFn({\n ...axisObj, displayedData, props, dataKey, item, bandSize,\n barPosition, offset, stackedData, layout, dataStartIndex, dataEndIndex,\n onItemMouseLeave: combineEventHandlers(\n this.handleItemMouseLeave, null, item.props.onMouseLeave\n ),\n onItemMouseEnter: combineEventHandlers(\n this.handleItemMouseEnter, null, item.props.onMouseEnter\n ),\n }),\n key: item.key || `item-${index}`,\n [numericAxisName]: axisObj[numericAxisName],\n [cateAxisName]: axisObj[cateAxisName],\n animationId: updateId,\n },\n childIndex: parseChildIndex(item, props.children),\n item,\n });\n }\n });\n\n return formatedItems;\n }\n\n getCursorRectangle() {\n const { layout } = this.props;\n const { activeCoordinate, offset, tooltipAxisBandSize } = this.state;\n const halfSize = tooltipAxisBandSize / 2;\n\n return {\n stroke: 'none',\n fill: '#ccc',\n x: layout === 'horizontal' ? activeCoordinate.x - halfSize : offset.left + 0.5,\n y: layout === 'horizontal' ? offset.top + 0.5 : activeCoordinate.y - halfSize,\n width: layout === 'horizontal' ? tooltipAxisBandSize : offset.width - 1,\n height: layout === 'horizontal' ? offset.height - 1 : tooltipAxisBandSize,\n };\n }\n\n getCursorPoints() {\n const { layout } = this.props;\n const { activeCoordinate, offset } = this.state;\n let x1, y1, x2, y2;\n\n if (layout === 'horizontal') {\n x1 = activeCoordinate.x;\n x2 = x1;\n y1 = offset.top;\n y2 = offset.top + offset.height;\n } else if (layout === 'vertical') {\n y1 = activeCoordinate.y;\n y2 = y1;\n x1 = offset.left;\n x2 = offset.left + offset.width;\n } else if (!_.isNil(activeCoordinate.cx) || !_.isNil(activeCoordinate.cy)) {\n if (layout === 'centric') {\n const { cx, cy, innerRadius, outerRadius, angle } = activeCoordinate;\n const innerPoint = polarToCartesian(cx, cy, innerRadius, angle);\n const 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 const { cx, cy, radius, startAngle, endAngle } = activeCoordinate;\n const startPoint = polarToCartesian(cx, cy, radius, startAngle);\n const endPoint = polarToCartesian(cx, cy, radius, endAngle);\n\n return {\n points: [startPoint, endPoint],\n cx, cy, radius, startAngle, endAngle,\n };\n }\n }\n\n return [{ x: x1, y: y1 }, { x: x2, y: y2 }];\n }\n\n static getAxisNameByLayout(layout) {\n if (layout === 'horizontal') {\n return { numericAxisName: 'yAxis', cateAxisName: 'xAxis' };\n } if (layout === 'vertical') {\n return { numericAxisName: 'xAxis', cateAxisName: 'yAxis' };\n } if (layout === 'centric') {\n return { numericAxisName: 'radiusAxis', cateAxisName: 'angleAxis' };\n }\n\n return { numericAxisName: 'angleAxis', cateAxisName: 'radiusAxis' };\n }\n\n calculateTooltipPos(rangeObj) {\n const { layout } = this.props;\n\n if (layout === 'horizontal') { return rangeObj.x; }\n if (layout === 'vertical') { return rangeObj.y; }\n if (layout === 'centric') { return rangeObj.angle; }\n\n return rangeObj.radius;\n }\n\n inRange(x, y) {\n const { layout } = this.props;\n\n if (layout === 'horizontal' || layout === 'vertical') {\n const { offset } = this.state;\n const isInRange = x >= offset.left && x <= (offset.left + offset.width) &&\n y >= offset.top && y <= offset.top + offset.height;\n\n return isInRange ? { x, y } : null;\n }\n\n const { angleAxisMap, radiusAxisMap } = this.state;\n\n if (angleAxisMap && radiusAxisMap) {\n const angleAxis = getAnyElementOfObject(angleAxisMap);\n\n return inRangeOfSector({ x, y }, angleAxis);\n }\n\n return null;\n }\n\n parseEventsOfWrapper() {\n const { children } = this.props;\n const tooltipItem = findChildByType(children, Tooltip);\n const tooltipEvents = tooltipItem && eventType === 'axis' ? {\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 const outerEvents = filterEventAttributes(this.props, this.handleOuterEvent);\n\n return {\n ...outerEvents,\n ...tooltipEvents,\n };\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 * @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 * @param {Number} updateId The update id\n * @return {Object} state New state to set\n */\n updateStateOfAxisMapsOffsetAndStackGroups({ props, dataStartIndex, dataEndIndex, updateId }) {\n if (!validateWidthHeight({ props })) { return null; }\n\n const { children, layout, stackOffset, data, reverseStackOrder } = props;\n const { numericAxisName, cateAxisName } = this.constructor.getAxisNameByLayout(layout);\n const graphicalItems = findAllByType(children, GraphicalChild);\n const stackGroups = getStackGroupsByAxisId(\n data, graphicalItems, `${numericAxisName}Id`, `${cateAxisName}Id`, stackOffset, reverseStackOrder\n );\n const axisObj = axisComponents.reduce((result, entry) => {\n const name = `${entry.axisType}Map`;\n\n return {\n ...result,\n [name]: this.getAxisMap(props, {\n ...entry,\n graphicalItems,\n stackGroups: entry.axisType === numericAxisName && stackGroups,\n dataStartIndex,\n dataEndIndex,\n }),\n };\n }, {});\n\n const offset = this.calculateOffset({ ...axisObj, props, graphicalItems });\n\n Object.keys(axisObj).forEach((key) => {\n axisObj[key] = formatAxisMap(\n props, axisObj[key], offset, key.replace('Map', ''), chartName\n );\n });\n const cateAxisMap = axisObj[`${cateAxisName}Map`];\n const ticksObj = this.tooltipTicksGenerator(cateAxisMap);\n\n const formatedGraphicalItems = this.getFormatItems(props, {\n ...axisObj, dataStartIndex, dataEndIndex, updateId,\n graphicalItems, stackGroups, offset,\n });\n\n return {\n formatedGraphicalItems, graphicalItems, offset, stackGroups,\n ...ticksObj, ...axisObj,\n };\n }\n\n /* eslint-disable no-underscore-dangle */\n addListener() {\n eventCenter.on(SYNC_EVENT, this.handleReceiveSyncEvent);\n\n if (eventCenter.setMaxListeners && eventCenter._maxListeners) {\n eventCenter.setMaxListeners(eventCenter._maxListeners + 1);\n }\n }\n\n removeListener() {\n eventCenter.removeListener(SYNC_EVENT, this.handleReceiveSyncEvent);\n\n if (eventCenter.setMaxListeners && eventCenter._maxListeners) {\n eventCenter.setMaxListeners(eventCenter._maxListeners - 1);\n }\n }\n\n /**\n * Calculate the offset of main part in the svg element\n * @param {Object} props Latest props\n * @param {Array} graphicalItems The instances of item\n * @param {Object} xAxisMap The configuration of x-axis\n * @param {Object} yAxisMap The configuration of y-axis\n * @return {Object} The offset of main part in the svg element\n */\n calculateOffset({ props, graphicalItems, xAxisMap = {}, yAxisMap = {} }) {\n const { width, height, children } = props;\n const margin = props.margin || {};\n const brushItem = findChildByType(children, Brush);\n const legendItem = findChildByType(children, Legend);\n\n const offsetH = Object.keys(yAxisMap).reduce((result, id) => {\n const entry = yAxisMap[id];\n const { orientation } = entry;\n\n if (!entry.mirror && !entry.hide) {\n return { ...result, [orientation]: result[orientation] + entry.width };\n }\n\n return result;\n }, { left: margin.left || 0, right: margin.right || 0 });\n\n const offsetV = Object.keys(xAxisMap).reduce((result, id) => {\n const entry = xAxisMap[id];\n const { orientation } = entry;\n\n if (!entry.mirror && !entry.hide) {\n return { ...result, [orientation]: result[orientation] + entry.height };\n }\n\n return result;\n }, { top: margin.top || 0, bottom: margin.bottom || 0 });\n\n let offset = { ...offsetV, ...offsetH };\n\n const brushBottom = offset.bottom;\n\n if (brushItem) {\n offset.bottom += brushItem.props.height || Brush.defaultProps.height;\n }\n\n if (legendItem && this.legendInstance) {\n const legendBox = this.legendInstance.getBBox();\n\n offset = appendOffsetOfLegend(offset, graphicalItems, props, legendBox);\n }\n\n return {\n brushBottom,\n ...offset,\n width: width - offset.left - offset.right,\n height: height - offset.top - offset.bottom,\n };\n }\n\n handleLegendBBoxUpdate = (box) => {\n if (box && this.legendInstance) {\n const { dataStartIndex, dataEndIndex, updateId } = this.state;\n\n this.setState(\n this.updateStateOfAxisMapsOffsetAndStackGroups({\n props: this.props, dataStartIndex, dataEndIndex, updateId,\n })\n );\n }\n };\n\n handleReceiveSyncEvent = (cId, chartId, data) => {\n const { syncId, layout } = this.props;\n const { updateId } = this.state;\n\n if (syncId === cId && chartId !== this.uniqueChartId) {\n const { dataStartIndex, dataEndIndex } = data;\n\n if (!_.isNil(data.dataStartIndex) || !_.isNil(data.dataEndIndex)) {\n this.setState({\n dataStartIndex,\n dataEndIndex,\n ...this.updateStateOfAxisMapsOffsetAndStackGroups(\n { props: this.props, dataStartIndex, dataEndIndex, updateId }\n ),\n });\n } else if (!_.isNil(data.activeTooltipIndex)) {\n const { chartX, chartY, activeTooltipIndex } = data;\n const { offset, tooltipTicks } = this.state;\n if (!offset) { return; }\n const viewBox = { ...offset, x: offset.left, y: offset.top };\n // When a categotical chart is combined with another chart, the value of chartX\n // and chartY may beyond the boundaries.\n const validateChartX = Math.min(chartX, viewBox.x + viewBox.width);\n const validateChartY = Math.min(chartY, viewBox.y + viewBox.height);\n const activeLabel = tooltipTicks[activeTooltipIndex] &&\n tooltipTicks[activeTooltipIndex].value;\n const activePayload = this.getTooltipContent(activeTooltipIndex);\n const activeCoordinate = tooltipTicks[activeTooltipIndex] ? {\n x: layout === 'horizontal' ? tooltipTicks[activeTooltipIndex].coordinate : validateChartX,\n y: layout === 'horizontal' ? validateChartY : tooltipTicks[activeTooltipIndex].coordinate,\n } : originCoordinate;\n\n this.setState({ ...data, activeLabel, activeCoordinate, activePayload });\n } else {\n this.setState(data);\n }\n }\n };\n\n handleBrushChange = ({ startIndex, 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 const { updateId } = this.state;\n\n this.setState(() => ({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n ...this.updateStateOfAxisMapsOffsetAndStackGroups(\n { props: this.props, dataStartIndex: startIndex, dataEndIndex: endIndex, updateId }\n ),\n }));\n\n this.triggerSyncEvent({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n });\n }\n };\n\n /**\n * The handler of mouse entering chart\n * @param {Object} e Event object\n * @return {Null} null\n */\n handleMouseEnter = (e) => {\n const { onMouseEnter } = this.props;\n const mouse = this.getMouseInfo(e);\n\n if (mouse) {\n const nextState = { ...mouse, isTooltipActive: true };\n this.setState(nextState);\n this.triggerSyncEvent(nextState);\n\n if (_.isFunction(onMouseEnter)) {\n onMouseEnter(nextState, e);\n }\n }\n };\n\n triggeredAfterMouseMove = (e) => {\n const { onMouseMove } = this.props;\n const mouse = this.getMouseInfo(e);\n const nextState = mouse ? { ...mouse, isTooltipActive: true } : { isTooltipActive: false };\n\n this.setState(nextState);\n this.triggerSyncEvent(nextState);\n\n if (_.isFunction(onMouseMove)) {\n onMouseMove(nextState, e);\n }\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 handleItemMouseEnter = (el) => {\n this.setState(() => ({\n isTooltipActive: true,\n activeItem: el,\n activePayload: el.tooltipPayload,\n activeCoordinate: el.tooltipPosition || { x: el.cx, y: el.cy },\n }));\n };\n\n /**\n * The handler of mouse leaving a scatter\n * @return {Object} no return\n */\n handleItemMouseLeave = () => {\n this.setState(() => ({\n isTooltipActive: false,\n }));\n };\n\n /**\n * The handler of mouse moving in chart\n * @param {Object} e Event object\n * @return {Null} no return\n */\n handleMouseMove = (e) => {\n if (e && _.isFunction(e.persist)) {\n e.persist();\n }\n this.triggeredAfterMouseMove(e);\n }\n\n /**\n * The handler if mouse leaving chart\n * @param {Object} e Event object\n * @return {Null} no return\n */\n handleMouseLeave = (e) => {\n const { onMouseLeave } = this.props;\n const nextState = { isTooltipActive: false };\n\n this.setState(nextState);\n this.triggerSyncEvent(nextState);\n\n if (_.isFunction(onMouseLeave)) {\n onMouseLeave(nextState, e);\n }\n };\n\n handleOuterEvent = (e) => {\n const eventName = getReactEventByType(e);\n\n if (eventName && _.isFunction(this.props[eventName])) {\n const mouse = this.getMouseInfo(e);\n const handler = this.props[eventName];\n\n handler(mouse, e);\n }\n };\n\n handleClick = (e) => {\n const { onClick } = this.props;\n\n if (_.isFunction(onClick)) {\n const mouse = this.getMouseInfo(e);\n\n onClick(mouse, e);\n }\n };\n\n handleMouseDown = (e) => {\n const { onMouseDown } = this.props;\n\n if (_.isFunction(onMouseDown)) {\n const mouse = this.getMouseInfo(e);\n\n onMouseDown(mouse, e);\n }\n };\n\n handleMouseUp = (e) => {\n const { onMouseUp } = this.props;\n\n if (_.isFunction(onMouseUp)) {\n const mouse = this.getMouseInfo(e);\n\n onMouseUp(mouse, e);\n }\n };\n\n handleTouchMove = (e) => {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n this.handleMouseMove(e.changedTouches[0]);\n }\n };\n\n handleTouchStart = (e) => {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n this.handleMouseDown(e.changedTouches[0]);\n }\n };\n\n handleTouchEnd = (e) => {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n this.handleMouseUp(e.changedTouches[0]);\n }\n };\n\n triggerSyncEvent(data) {\n const { syncId } = this.props;\n\n if (!_.isNil(syncId)) {\n eventCenter.emit(SYNC_EVENT, syncId, this.uniqueChartId, data);\n }\n }\n\n verticalCoordinatesGenerator = ({ xAxis, width, height, offset }) => getCoordinatesOfGrid(CartesianAxis.getTicks({\n ...CartesianAxis.defaultProps,\n ...xAxis,\n ticks: getTicksOfAxis(xAxis, true),\n viewBox: { x: 0, y: 0, width, height },\n }), offset.left, offset.left + offset.width);\n\n horizontalCoordinatesGenerator = ({ yAxis, width, height, offset }) => getCoordinatesOfGrid(CartesianAxis.getTicks({\n ...CartesianAxis.defaultProps, ...yAxis,\n ticks: getTicksOfAxis(yAxis, true),\n viewBox: { x: 0, y: 0, width, height },\n }), offset.top, offset.top + offset.height);\n\n axesTicksGenerator = axis => getTicksOfAxis(axis, true);\n\n tooltipTicksGenerator = (axisMap) => {\n const axis = getAnyElementOfObject(axisMap);\n const tooltipTicks = getTicksOfAxis(axis, false, true);\n\n return {\n tooltipTicks,\n orderedTooltipTicks: _.sortBy(tooltipTicks, o => o.coordinate),\n tooltipAxis: axis,\n tooltipAxisBandSize: getBandSizeOfAxis(axis),\n };\n }\n\n filterFormatItem(item, displayName, childIndex) {\n const { formatedGraphicalItems } = this.state;\n\n for (let i = 0, len = formatedGraphicalItems.length; i < len; i++) {\n const entry = formatedGraphicalItems[i];\n\n if (entry.item === item || entry.props.key === item.key || (\n displayName === getDisplayName(entry.item.type) && childIndex === entry.childIndex\n )) {\n return entry;\n }\n }\n\n return null;\n }\n\n renderCursor = (element) => {\n const { isTooltipActive, activeCoordinate, activePayload, offset } = this.state;\n\n if (!element || !element.props.cursor || !isTooltipActive || !activeCoordinate) {\n return null;\n }\n const { layout } = this.props;\n let restProps;\n let cursorComp = Curve;\n\n if (chartName === 'ScatterChart') {\n restProps = activeCoordinate;\n cursorComp = Cross;\n } else if (chartName === 'BarChart') {\n restProps = this.getCursorRectangle();\n cursorComp = Rectangle;\n } else if (layout === 'radial') {\n const { cx, cy, radius, startAngle, endAngle } = this.getCursorPoints();\n restProps = {\n cx, cy, startAngle, endAngle, innerRadius: radius, outerRadius: radius,\n };\n cursorComp = Sector;\n } else {\n restProps = { points: this.getCursorPoints() };\n cursorComp = Curve;\n }\n const key = element.key || '_recharts-cursor';\n const cursorProps = {\n stroke: '#ccc',\n pointerEvents: 'none',\n ...offset,\n ...restProps,\n ...getPresentationAttributes(element.props.cursor),\n payload: activePayload,\n key,\n className: 'recharts-tooltip-cursor',\n };\n\n return isValidElement(element.props.cursor) ?\n cloneElement(element.props.cursor, cursorProps) :\n createElement(cursorComp, cursorProps);\n };\n\n renderPolarAxis = (element, displayName, index) => {\n const { type: { axisType } } = element;\n const axisMap = this.state[`${axisType}Map`];\n const axisOption = axisMap[element.props[`${axisType}Id`]];\n\n return cloneElement(element, {\n ...axisOption,\n className: axisType,\n key: element.key || `${displayName}-${index}`,\n ticks: getTicksOfAxis(axisOption, true),\n });\n };\n\n renderXAxis = (element, displayName, index) => {\n const { xAxisMap } = this.state;\n const axisObj = xAxisMap[element.props.xAxisId];\n\n return this.renderAxis(axisObj, element, displayName, index);\n };\n\n renderYAxis = (element, displayName, index) => {\n const { yAxisMap } = this.state;\n const axisObj = yAxisMap[element.props.yAxisId];\n\n return this.renderAxis(axisObj, element, displayName, index);\n };\n\n /**\n * Draw axis\n * @param {Object} axisOptions The options of axis\n * @param {Object} element The axis element\n * @param {String} displayName The display name of axis\n * @param {Number} index The index of element\n * @return {ReactElement} The instance of x-axes\n */\n renderAxis(axisOptions, element, displayName, index) {\n const { width, height } = this.props;\n\n return (\n <CartesianAxis\n {...axisOptions}\n className={`recharts-${axisOptions.axisType} ${axisOptions.axisType}`}\n key={element.key || `${displayName}-${index}`}\n viewBox={{ x: 0, y: 0, width, height }}\n ticksGenerator={this.axesTicksGenerator}\n />\n );\n }\n\n /**\n * Draw grid\n * @param {ReactElement} element the grid item\n * @return {ReactElement} The instance of grid\n */\n renderGrid = (element) => {\n const { xAxisMap, yAxisMap, offset } = this.state;\n const { width, height } = this.props;\n const xAxis = getAnyElementOfObject(xAxisMap);\n const yAxis = getAnyElementOfObject(yAxisMap);\n const props = element.props || {};\n\n return cloneElement(element, {\n key: element.key || 'grid',\n x: isNumber(props.x) ? props.x : offset.left,\n y: isNumber(props.y) ? props.y : offset.top,\n width: isNumber(props.width) ? props.width : offset.width,\n height: isNumber(props.height) ? props.height : offset.height,\n xAxis,\n yAxis,\n offset,\n chartWidth: width,\n chartHeight: height,\n verticalCoordinatesGenerator:\n props.verticalCoordinatesGenerator || this.verticalCoordinatesGenerator,\n horizontalCoordinatesGenerator:\n props.horizontalCoordinatesGenerator || this.horizontalCoordinatesGenerator,\n });\n };\n\n renderPolarGrid = (element) => {\n const { radiusAxisMap, angleAxisMap } = this.state;\n const radiusAxis = getAnyElementOfObject(radiusAxisMap);\n const angleAxis = getAnyElementOfObject(angleAxisMap);\n const { cx, cy, innerRadius, outerRadius } = angleAxis;\n\n return cloneElement(element, {\n polarAngles: getTicksOfAxis(angleAxis, true).map(entry => entry.coordinate),\n polarRadius: getTicksOfAxis(radiusAxis, true).map(entry => entry.coordinate),\n cx, cy, innerRadius, outerRadius,\n key: element.key || 'polar-grid',\n });\n };\n\n /**\n * Draw legend\n * @return {ReactElement} The instance of Legend\n */\n renderLegend() {\n const { formatedGraphicalItems } = this.state;\n const { children, width, height } = this.props;\n const margin = this.props.margin || {};\n const legendWidth = width - (margin.left || 0) - (margin.right || 0);\n const legendHeight = height - (margin.top || 0) - (margin.bottom || 0);\n const props = getLegendProps({\n children, formatedGraphicalItems, legendWidth, legendHeight, legendContent,\n });\n\n if (!props) { return null; }\n\n const { item, ...otherProps } = props;\n\n return cloneElement(item, {\n ...otherProps,\n chartWidth: width,\n chartHeight: height,\n margin,\n ref: (legend) => { this.legendInstance = legend; },\n onBBoxUpdate: this.handleLegendBBoxUpdate,\n });\n }\n\n /**\n * Draw Tooltip\n * @return {ReactElement} The instance of Tooltip\n */\n renderTooltip() {\n const { children } = this.props;\n const tooltipItem = findChildByType(children, Tooltip);\n\n if (!tooltipItem) { return null; }\n\n const { isTooltipActive, activeCoordinate, activePayload,\n activeLabel, offset } = this.state;\n\n return cloneElement(tooltipItem, {\n viewBox: { ...offset, x: offset.left, y: offset.top },\n active: isTooltipActive,\n label: activeLabel,\n payload: isTooltipActive ? activePayload : [],\n coordinate: activeCoordinate,\n });\n }\n\n renderBrush = (element) => {\n const { margin, data } = this.props;\n const { offset, dataStartIndex, dataEndIndex, updateId } = this.state;\n\n // TODO: update brush when children update\n return cloneElement(element, {\n key: element.key || '_recharts-brush',\n onChange: combineEventHandlers(this.handleBrushChange, null, element.props.onChange),\n data,\n x: isNumber(element.props.x) ? element.props.x : offset.left,\n y: isNumber(element.props.y) ? element.props.y :\n (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-${updateId}`,\n });\n };\n\n renderReferenceElement = (element, displayName, index) => {\n if (!element) { return null; }\n const { clipPathId } = this;\n const { xAxisMap, yAxisMap, offset } = this.state;\n const { xAxisId, yAxisId } = element.props;\n\n return cloneElement(element, {\n key: element.key || `${displayName}-${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,\n });\n };\n\n static renderActiveDot(option, props) {\n let dot;\n\n if (isValidElement(option)) {\n dot = cloneElement(option, props);\n } else if (_.isFunction(option)) {\n dot = option(props);\n } else {\n dot = <Dot {...props} />;\n }\n\n return (\n <Layer className=\"recharts-active-dot\" key={props.key}>\n {dot}\n </Layer>\n );\n }\n\n renderActivePoints({ item, activePoint, basePoint, childIndex, isRange }) {\n const result = [];\n const { key } = item.props;\n const { activeDot, dataKey } = item.item.props;\n const dotProps = {\n index: childIndex,\n 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: `${key}-activePoint-${childIndex}`,\n ...getPresentationAttributes(activeDot),\n ...filterEventAttributes(activeDot),\n };\n\n result.push(this.constructor.renderActiveDot(activeDot, dotProps, childIndex));\n\n if (basePoint) {\n result.push(this.constructor.renderActiveDot(activeDot, {\n ...dotProps,\n cx: basePoint.x,\n cy: basePoint.y,\n key: `${key}-basePoint-${childIndex}`,\n }, childIndex));\n } else if (isRange) {\n result.push(null);\n }\n\n return result;\n }\n\n renderGraphicChild = (element, displayName, index) => {\n const item = this.filterFormatItem(element, displayName, index);\n if (!item) { return null; }\n\n const graphicalItem = cloneElement(element, item.props);\n const { isTooltipActive, tooltipAxis, activeTooltipIndex, activeLabel } = this.state;\n const { children } = this.props;\n const tooltipItem = findChildByType(children, Tooltip);\n const { points, isRange, baseLine } = item.props;\n const { activeDot, hide } = item.item.props;\n const hasActive = !hide && isTooltipActive && tooltipItem && activeDot &&\n activeTooltipIndex >= 0;\n\n if (hasActive) {\n let activePoint, basePoint;\n\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n activePoint = findEntryInArray(points, `payload.${tooltipAxis.dataKey}`, activeLabel);\n basePoint = isRange && baseLine && findEntryInArray(baseLine, `payload.${tooltipAxis.dataKey}`, activeLabel);\n } else {\n activePoint = points[activeTooltipIndex];\n basePoint = isRange && baseLine && baseLine[activeTooltipIndex];\n }\n\n if (!_.isNil(activePoint)) {\n return [\n graphicalItem,\n ...this.renderActivePoints({\n item, activePoint, basePoint, childIndex: activeTooltipIndex,\n isRange,\n }),\n ];\n }\n }\n\n if (isRange) { return [graphicalItem, null, null]; }\n\n return [graphicalItem, null];\n };\n\n renderClipPath() {\n const { clipPathId } = this;\n const { offset: { left, top, height, width } } = this.state;\n\n return (\n <clipPath id={clipPathId}>\n <rect x={left} y={top} height={height} width={width} />\n </clipPath>\n );\n }\n\n\n render() {\n if (!validateWidthHeight(this)) { return null; }\n\n const { children, className, width, height, style, compact, ...others } = this.props;\n const attrs = getPresentationAttributes(others);\n const map = {\n CartesianGrid: { handler: this.renderGrid, once: true },\n ReferenceArea: { handler: this.renderReferenceElement },\n ReferenceLine: { handler: this.renderReferenceElement },\n ReferenceDot: { handler: this.renderReferenceElement },\n XAxis: { handler: this.renderXAxis },\n YAxis: { handler: this.renderYAxis },\n Brush: { handler: this.renderBrush, once: true },\n Bar: { handler: this.renderGraphicChild },\n Line: { handler: this.renderGraphicChild },\n Area: { handler: this.renderGraphicChild },\n Radar: { handler: this.renderGraphicChild },\n RadialBar: { handler: this.renderGraphicChild },\n Scatter: { handler: this.renderGraphicChild },\n Pie: { handler: this.renderGraphicChild },\n Tooltip: { handler: this.renderCursor, once: true },\n PolarGrid: { handler: this.renderPolarGrid, once: true },\n PolarAngleAxis: { handler: this.renderPolarAxis },\n PolarRadiusAxis: { handler: this.renderPolarAxis },\n };\n\n // The \"compact\" mode is mainly used as the panorama within Brush\n if (compact) {\n return (\n <Surface {...attrs} width={width} height={height}>\n {this.renderClipPath()}\n {\n renderByOrder(children, map)\n }\n </Surface>\n );\n }\n\n const events = this.parseEventsOfWrapper();\n return (\n <div\n className={classNames('recharts-wrapper', className)}\n style={{ position: 'relative', cursor: 'default', width, height, ...style }}\n {...events}\n ref={(node) => { this.container = node; }}\n >\n <Surface {...attrs} width={width} height={height}>\n {this.renderClipPath()}\n {\n renderByOrder(children, map)\n }\n </Surface>\n {this.renderLegend()}\n {this.renderTooltip()}\n </div>\n );\n }\n }\n\n return CategoricalChartWrapper;\n};\n\nexport default generateCategoricalChart;\n","/**\n * @fileOverview Line Chart\n */\nimport generateCategoricalChart from './generateCategoricalChart';\nimport Line from '../cartesian/Line';\nimport XAxis from '../cartesian/XAxis';\nimport YAxis from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\n\nexport default generateCategoricalChart({\n chartName: 'LineChart',\n GraphicalChild: Line,\n axisComponents: [\n { axisType: 'xAxis', AxisComp: XAxis },\n { axisType: 'yAxis', AxisComp: YAxis },\n ],\n formatAxisMap,\n});\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';\n\nexport default generateCategoricalChart({\n chartName: 'BarChart',\n GraphicalChild: Bar,\n axisComponents: [\n { axisType: 'xAxis', AxisComp: XAxis },\n { axisType: 'yAxis', AxisComp: YAxis },\n ],\n formatAxisMap,\n});\n","/**\n * @fileOverview Pie Chart\n */\nimport PropTypes from 'prop-types';\nimport generateCategoricalChart from './generateCategoricalChart';\nimport PolarAngleAxis from '../polar/PolarAngleAxis';\nimport PolarRadiusAxis from '../polar/PolarRadiusAxis';\nimport { formatAxisMap } from '../util/PolarUtils';\nimport Pie from '../polar/Pie';\n\nexport default generateCategoricalChart({\n chartName: 'PieChart',\n GraphicalChild: Pie,\n eventType: 'item',\n legendContent: 'children',\n axisComponents: [\n { axisType: 'angleAxis', AxisComp: PolarAngleAxis },\n { axisType: 'radiusAxis', AxisComp: PolarRadiusAxis },\n ],\n 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 propTypes: {\n layout: PropTypes.oneOf(['centric']),\n startAngle: PropTypes.number,\n endAngle: PropTypes.number,\n cx: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n cy: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n innerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n outerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n },\n});\n","/**\n * @fileOverview TreemapChart\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Smooth from 'react-smooth';\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport Surface from '../container/Surface';\nimport Layer from '../container/Layer';\nimport Rectangle from '../shape/Rectangle';\nimport { findChildByType, getPresentationAttributes, filterSvgElements,\n validateWidthHeight, isSsr } from '../util/ReactUtils';\nimport Tooltip from '../component/Tooltip';\nimport pureRender from '../util/PureRender';\nimport { getValueByDataKey } from '../util/ChartUtils';\n\nconst computeNode = ({ depth, node, index, valueKey }) => {\n const { children } = node;\n const childDepth = depth + 1;\n const computedChildren = children && children.length ?\n children.map((child, i) => (\n computeNode({ depth: childDepth, node: child, index: i, valueKey })\n )) : null;\n let value;\n\n if (children && children.length) {\n value = computedChildren.reduce((result, child) => (result + child.value), 0);\n } else {\n value = _.isNaN(node[valueKey]) || node[valueKey] <= 0 ? 0 : node[valueKey];\n }\n\n return {\n ...node,\n children: computedChildren,\n value, depth, index,\n };\n};\n\nconst filterRect = node => (\n { x: node.x, y: node.y, width: node.width, height: node.height }\n);\n\n// Compute the area for each child based on value & scale.\nconst getAreaOfChildren = (children, areaValueRatio) => {\n const ratio = areaValueRatio < 0 ? 0 : areaValueRatio;\n\n return children.map((child) => {\n const area = child.value * ratio;\n\n return {\n ...child,\n area: (_.isNaN(area) || area <= 0) ? 0 : area,\n };\n });\n};\n\n// Computes the score for the specified row, as the worst aspect ratio.\nconst getWorstScore = (row, parentSize, aspectRatio) => {\n const parentArea = parentSize * parentSize;\n const rowArea = row.area * row.area;\n const { min, max } = row.reduce((result, child) => (\n {\n min: Math.min(result.min, child.area),\n max: Math.max(result.max, child.area),\n }\n ), { min: Infinity, max: 0 });\n\n return rowArea ? Math.max(\n (parentArea * max * aspectRatio) / rowArea,\n rowArea / (parentArea * min * aspectRatio)\n ) : Infinity;\n};\n\nconst horizontalPosition = (row, parentSize, parentRect, isFlush) => {\n let rowHeight = parentSize ? Math.round(row.area / parentSize) : 0;\n\n if (isFlush || rowHeight > parentRect.height) {\n rowHeight = parentRect.height;\n }\n\n let curX = parentRect.x;\n let child;\n for (let i = 0, len = row.length; i < len; i++) {\n child = row[i];\n child.x = curX;\n child.y = parentRect.y;\n child.height = rowHeight;\n child.width = Math.min(\n rowHeight ? Math.round(child.area / rowHeight) : 0,\n parentRect.x + parentRect.width - curX\n );\n curX += child.width;\n }\n // what's z\n child.z = true;\n // add the remain x to the last one of row\n child.width += parentRect.x + parentRect.width - curX;\n\n return {\n ...parentRect,\n y: parentRect.y + rowHeight,\n height: parentRect.height - rowHeight,\n };\n};\n\nconst verticalPosition = (row, parentSize, parentRect, isFlush) => {\n let rowWidth = parentSize ? Math.round(row.area / parentSize) : 0;\n\n if (isFlush || rowWidth > parentRect.width) {\n rowWidth = parentRect.width;\n }\n\n let curY = parentRect.y;\n let child;\n for (let i = 0, len = row.length; i < len; i++) {\n child = row[i];\n child.x = parentRect.x;\n child.y = curY;\n child.width = rowWidth;\n child.height = Math.min(\n rowWidth ? Math.round(child.area / rowWidth) : 0,\n parentRect.y + parentRect.height - curY\n );\n curY += child.height;\n }\n child.z = false;\n child.height += parentRect.y + parentRect.height - curY;\n\n return {\n ...parentRect,\n x: parentRect.x + rowWidth,\n width: parentRect.width - rowWidth,\n };\n};\n\nconst position = (row, parentSize, parentRect, isFlush) => {\n if (parentSize === parentRect.width) {\n return horizontalPosition(row, parentSize, parentRect, isFlush);\n }\n\n return verticalPosition(row, parentSize, parentRect, isFlush);\n};\n\n// Recursively arranges the specified node's children into squarified rows.\nconst squarify = (node, aspectRatio) => {\n const { children } = node;\n\n if (children && children.length) {\n let rect = filterRect(node);\n const row = [];\n let best = Infinity; // the best row score so far\n let child, score; // the current row score\n let size = Math.min(rect.width, rect.height); // initial orientation\n const scaleChildren = getAreaOfChildren(children, rect.width * rect.height / node.value);\n const tempChildren = scaleChildren.slice();\n\n row.area = 0;\n\n while (tempChildren.length > 0) {\n // row first\n // eslint-disable-next-line prefer-destructuring\n row.push(child = tempChildren[0]);\n row.area += child.area;\n\n score = getWorstScore(row, size, aspectRatio);\n if (score <= best) { // continue with this orientation\n tempChildren.shift();\n best = score;\n } else { // abort, and try a different orientation\n row.area -= row.pop().area;\n rect = position(row, size, rect, false);\n size = Math.min(rect.width, rect.height);\n row.length = row.area = 0;\n best = Infinity;\n }\n }\n\n if (row.length) {\n rect = position(row, size, rect, true);\n row.length = row.area = 0;\n }\n\n return { ...node, children: scaleChildren.map(c => squarify(c, aspectRatio)) };\n }\n\n return node;\n};\n\n@pureRender\nclass Treemap extends Component {\n static displayName = 'Treemap';\n\n static propTypes = {\n width: PropTypes.number,\n height: PropTypes.number,\n data: PropTypes.array,\n style: PropTypes.object,\n aspectRatio: PropTypes.number,\n content: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n fill: PropTypes.string,\n stroke: PropTypes.string,\n className: PropTypes.string,\n nameKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onClick: PropTypes.func,\n\n isAnimationActive: PropTypes.bool,\n isUpdateAnimationActive: PropTypes.bool,\n animationBegin: PropTypes.number,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']),\n };\n\n static defaultProps = {\n dataKey: 'value',\n aspectRatio: 0.5 * (1 + Math.sqrt(5)),\n isAnimationActive: !isSsr(),\n isUpdateAnimationActive: !isSsr(),\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'linear',\n };\n\n state = this.constructor.createDefaultState();\n\n componentWillReceiveProps(nextProps) {\n if (nextProps.data !== this.props.data) {\n this.setState(this.constructor.createDefaultState());\n }\n }\n\n /**\n * Returns default, reset state for the treemap chart.\n * @return {Object} Whole new state\n */\n static createDefaultState() {\n return {\n isTooltipActive: false,\n activeNode: null,\n };\n }\n\n handleMouseEnter(node, e) {\n const { onMouseEnter, children } = this.props;\n const tooltipItem = findChildByType(children, Tooltip);\n\n if (tooltipItem) {\n this.setState({\n isTooltipActive: true,\n activeNode: node,\n }, () => {\n if (onMouseEnter) {\n onMouseEnter(node, e);\n }\n });\n } else if (onMouseEnter) {\n onMouseEnter(node, e);\n }\n }\n\n handleMouseLeave(node, e) {\n const { onMouseLeave, children } = this.props;\n const tooltipItem = findChildByType(children, Tooltip);\n\n if (tooltipItem) {\n this.setState({\n isTooltipActive: false,\n activeNode: null,\n }, () => {\n if (onMouseLeave) {\n onMouseLeave(node, e);\n }\n });\n } else if (onMouseLeave) {\n onMouseLeave(node, e);\n }\n }\n\n handleClick(node) {\n const { onClick } = this.props;\n\n if (onClick) {\n onClick(node);\n }\n }\n\n renderAnimatedItem(content, nodeProps, isLeaf) {\n const { isAnimationActive, animationBegin, animationDuration,\n animationEasing, isUpdateAnimationActive } = this.props;\n const { width, height, x, y } = nodeProps;\n const translateX = parseInt((Math.random() * 2 - 1) * width, 10);\n let event = {};\n\n if (isLeaf) {\n event = {\n onMouseEnter: this.handleMouseEnter.bind(this, nodeProps),\n onMouseLeave: this.handleMouseLeave.bind(this, nodeProps),\n onClick: this.handleClick.bind(this, nodeProps),\n };\n }\n\n return (\n <Smooth\n from={{ x, y, width, height }}\n to={{ x, y, width, height }}\n duration={animationDuration}\n easing={animationEasing}\n isActive={isUpdateAnimationActive}\n >\n {\n ({ x: currX, y: currY, width: currWidth, height: currHeight }) => (\n <Smooth\n from={`translate(${translateX}px, ${translateX}px)`}\n to=\"translate(0, 0)\"\n attributeName=\"transform\"\n begin={animationBegin}\n easing={animationEasing}\n isActive={isAnimationActive}\n duration={animationDuration}\n >\n <Layer {...event}>\n {\n this.constructor.renderContentItem(content, {\n ...nodeProps,\n isAnimationActive,\n isUpdateAnimationActive: !isUpdateAnimationActive,\n width: currWidth,\n height: currHeight,\n x: currX,\n y: currY,\n })\n }\n </Layer>\n </Smooth>\n )\n }\n </Smooth>\n );\n }\n\n static renderContentItem(content, nodeProps) {\n if (React.isValidElement(content)) {\n return React.cloneElement(content, nodeProps);\n } if (_.isFunction(content)) {\n return content(nodeProps);\n }\n\n return (\n <Rectangle\n fill=\"#fff\"\n stroke=\"#000\"\n {...nodeProps}\n />\n );\n }\n\n renderNode(root, node, i) {\n const { content } = this.props;\n const nodeProps = { ...getPresentationAttributes(this.props), ...node, root };\n const isLeaf = !node.children || !node.children.length;\n\n return (\n <Layer key={`recharts-treemap-node-${i}`} className={`recharts-treemap-depth-${node.depth}`}>\n {this.renderAnimatedItem(content, nodeProps, isLeaf)}\n {\n node.children && node.children.length ?\n node.children.map((child, index) => this.renderNode(node, child, index)) : null\n }\n </Layer>\n );\n }\n\n renderAllNodes() {\n const { width, height, data, dataKey, aspectRatio } = this.props;\n\n const root = computeNode({\n depth: 0,\n node: { children: data, x: 0, y: 0, width, height },\n index: 0,\n valueKey: dataKey,\n });\n\n const formatRoot = squarify(root, aspectRatio);\n\n return this.renderNode(formatRoot, formatRoot, 0);\n }\n\n renderTooltip() {\n const { children, nameKey } = this.props;\n const tooltipItem = findChildByType(children, Tooltip);\n\n if (!tooltipItem) { return null; }\n\n const { width, height, dataKey } = this.props;\n const { isTooltipActive, activeNode } = this.state;\n const viewBox = { x: 0, y: 0, width, height };\n const coordinate = activeNode ? {\n x: activeNode.x + activeNode.width / 2,\n y: activeNode.y + activeNode.height / 2,\n } : null;\n const payload = isTooltipActive && activeNode ? [{\n payload: activeNode,\n name: getValueByDataKey(activeNode, nameKey, ''),\n value: getValueByDataKey(activeNode, dataKey),\n }] : [];\n\n return React.cloneElement(tooltipItem, {\n viewBox,\n active: isTooltipActive,\n coordinate,\n label: '',\n payload,\n });\n }\n\n render() {\n if (!validateWidthHeight(this)) { return null; }\n\n const { width, height, className, style, children, ...others } = this.props;\n const attrs = getPresentationAttributes(others);\n\n return (\n <div\n className={classNames('recharts-wrapper', className)}\n style={{ ...style, position: 'relative', cursor: 'default', width, height }}\n >\n <Surface {...attrs} width={width} height={height}>\n {this.renderAllNodes()}\n {filterSvgElements(children)}\n </Surface>\n {this.renderTooltip()}\n </div>\n );\n }\n}\n\nexport default Treemap;\n","/**\n * @file TreemapChart\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport Surface from '../container/Surface';\nimport Layer from '../container/Layer';\nimport Tooltip from '../component/Tooltip';\nimport Rectangle from '../shape/Rectangle';\nimport pureRender, { shallowEqual } from '../util/PureRender';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes, EVENT_ATTRIBUTES,\n filterSvgElements, validateWidthHeight, findChildByType } from '../util/ReactUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\n\nconst defaultCoordinateOfTooltip = { x: 0, y: 0 };\n\nconst interpolationGenerator = (a, b) => {\n const ka = +a;\n const kb = b - ka;\n return t => ka + kb * t;\n};\nconst centerY = node => (node.y + node.dy / 2);\nconst getValue = entry => ((entry && entry.value) || 0);\nconst getSumOfIds = (links, ids) => (\n ids.reduce((result, id) => (result + getValue(links[id])), 0)\n);\nconst getSumWithWeightedSource = (tree, links, ids) => (\n ids.reduce((result, id) => {\n const link = links[id];\n const sourceNode = tree[link.source];\n\n return result + centerY(sourceNode) * getValue(links[id]);\n }, 0)\n);\nconst getSumWithWeightedTarget = (tree, links, ids) => (\n ids.reduce((result, id) => {\n const link = links[id];\n const targetNode = tree[link.target];\n\n return result + centerY(targetNode) * getValue(links[id]);\n }, 0)\n);\nconst ascendingY = (a, b) => (a.y - b.y);\n\nconst searchTargetsAndSources = (links, id) => {\n const sourceNodes = [];\n const sourceLinks = [];\n const targetNodes = [];\n const targetLinks = [];\n\n for (let i = 0, len = links.length; i < len; i++) {\n const link = links[i];\n\n if (link.source === id) {\n targetNodes.push(link.target);\n targetLinks.push(i);\n }\n\n if (link.target === id) {\n sourceNodes.push(link.source);\n sourceLinks.push(i);\n }\n }\n\n return { sourceNodes, sourceLinks, targetLinks, targetNodes };\n};\n\nconst updateDepthOfTargets = (tree, curNode) => {\n const { targetNodes } = curNode;\n\n for (let i = 0, len = targetNodes.length; i < len; i++) {\n const target = tree[targetNodes[i]];\n\n if (target) {\n target.depth = Math.max(curNode.depth + 1, target.depth);\n\n updateDepthOfTargets(tree, target);\n }\n }\n};\n\nconst getNodesTree = ({ nodes, links }, width, nodeWidth) => {\n const tree = nodes.map((entry, index) => {\n const result = searchTargetsAndSources(links, index);\n\n return {\n ...entry,\n ...result,\n value: Math.max(\n getSumOfIds(links, result.sourceLinks),\n getSumOfIds(links, result.targetLinks)\n ),\n depth: 0,\n };\n });\n\n for (let i = 0, len = tree.length; i < len; i++) {\n const node = tree[i];\n\n if (!node.sourceNodes.length) {\n updateDepthOfTargets(tree, node);\n }\n }\n const maxDepth = _.maxBy(tree, entry => entry.depth).depth;\n\n if (maxDepth >= 1) {\n const childWidth = (width - nodeWidth) / maxDepth;\n for (let i = 0, len = tree.length; i < len; i++) {\n const node = tree[i];\n\n if (!node.targetNodes.length) {\n node.depth = maxDepth;\n }\n node.x = node.depth * childWidth;\n node.dx = nodeWidth;\n }\n }\n\n return { tree, maxDepth };\n};\n\nconst getDepthTree = (tree) => {\n const result = [];\n\n for (let i = 0, len = tree.length; i < len; i++) {\n const node = tree[i];\n\n if (!result[node.depth]) {\n result[node.depth] = [];\n }\n\n result[node.depth].push(node);\n }\n\n return result;\n};\n\nconst updateYOfTree = (depthTree, height, nodePadding, links) => {\n const yRatio = _.min(depthTree.map(nodes => (\n (height - (nodes.length - 1) * nodePadding) / _.sumBy(nodes, getValue)\n )));\n\n for (let d = 0, maxDepth = depthTree.length; d < maxDepth; d++) {\n for (let i = 0, len = depthTree[d].length; i < len; i++) {\n const node = depthTree[d][i];\n\n node.y = i;\n node.dy = node.value * yRatio;\n }\n }\n\n return links.map(link => ({ ...link, dy: getValue(link) * yRatio }));\n};\n\nconst resolveCollisions = (depthTree, height, nodePadding) => {\n for (let i = 0, len = depthTree.length; i < len; i++) {\n const nodes = depthTree[i];\n const n = nodes.length;\n\n // Sort by the value of y\n nodes.sort(ascendingY);\n\n let y0 = 0;\n for (let j = 0; j < n; j++) {\n const node = nodes[j];\n const dy = y0 - node.y;\n\n if (dy > 0) {\n node.y += dy;\n }\n\n y0 = node.y + node.dy + nodePadding;\n }\n\n y0 = height + nodePadding;\n for (let j = n - 1; j >= 0; j--) {\n const node = nodes[j];\n const dy = node.y + node.dy + nodePadding - y0;\n\n if (dy > 0) {\n node.y -= dy;\n y0 = node.y;\n } else {\n break;\n }\n }\n }\n};\n\nconst relaxLeftToRight = (tree, depthTree, links, alpha) => {\n for (let i = 0, maxDepth = depthTree.length; i < maxDepth; i++) {\n const nodes = depthTree[i];\n\n for (let j = 0, len = nodes.length; j < len; j++) {\n const node = nodes[j];\n\n if (node.sourceLinks.length) {\n const sourceSum = getSumOfIds(links, node.sourceLinks);\n const weightedSum = getSumWithWeightedSource(tree, links, node.sourceLinks);\n const y = weightedSum / sourceSum;\n\n node.y += (y - centerY(node)) * alpha;\n }\n }\n }\n};\nconst relaxRightToLeft = (tree, depthTree, links, alpha) => {\n for (let i = depthTree.length - 1; i >= 0; i--) {\n const nodes = depthTree[i];\n\n for (let j = 0, len = nodes.length; j < len; j++) {\n const node = nodes[j];\n\n if (node.targetLinks.length) {\n const targetSum = getSumOfIds(links, node.targetLinks);\n const weightedSum = getSumWithWeightedTarget(tree, links, node.targetLinks);\n const y = weightedSum / targetSum;\n\n node.y += (y - centerY(node)) * alpha;\n }\n }\n }\n};\nconst updateYOfLinks = (tree, links) => {\n for (let i = 0, len = tree.length; i < len; i++) {\n const node = tree[i];\n let sy = 0;\n let ty = 0;\n\n node.targetLinks.sort((a, b) => (tree[links[a].target].y - tree[links[b].target].y));\n node.sourceLinks.sort((a, b) => (tree[links[a].source].y - tree[links[b].source].y));\n\n for (let j = 0, tLen = node.targetLinks.length; j < tLen; j++) {\n const link = links[node.targetLinks[j]];\n\n if (link) {\n link.sy = sy;\n sy += link.dy;\n }\n }\n\n for (let j = 0, sLen = node.sourceLinks.length; j < sLen; j++) {\n const link = links[node.sourceLinks[j]];\n\n if (link) {\n link.ty = ty;\n ty += link.dy;\n }\n }\n }\n};\n\nconst computeData = ({ data, width, height, iterations, nodeWidth, nodePadding }) => {\n const { links } = data;\n const { tree } = getNodesTree(data, width, nodeWidth);\n const depthTree = getDepthTree(tree);\n const newLinks = updateYOfTree(depthTree, height, nodePadding, links);\n\n resolveCollisions(depthTree, height, nodePadding);\n\n let alpha = 1;\n for (let i = 1; i <= iterations; i++) {\n relaxRightToLeft(tree, depthTree, newLinks, alpha *= 0.99);\n\n resolveCollisions(depthTree, height, nodePadding);\n\n relaxLeftToRight(tree, depthTree, newLinks, alpha);\n\n resolveCollisions(depthTree, height, nodePadding);\n }\n\n updateYOfLinks(tree, newLinks);\n\n return { nodes: tree, links: newLinks };\n};\n\nconst getCoordinateOfTooltip = (el, type) => {\n if (type === 'node') {\n return { x: el.x + el.width / 2, y: el.y + el.height / 2 };\n }\n\n return {\n x: (el.sourceX + el.targetX) / 2,\n y: (el.sourceY + el.targetY) / 2,\n };\n};\n\nconst getPayloadOfTooltip = (el, type, nameKey) => {\n const { payload } = el;\n if (type === 'node') {\n return [{\n payload: el,\n name: getValueByDataKey(payload, nameKey, ''),\n value: getValueByDataKey(payload, 'value'),\n }];\n }\n if (payload.source && payload.target) {\n const sourceName = getValueByDataKey(payload.source, nameKey, '');\n const targetName = getValueByDataKey(payload.target, nameKey, '');\n\n return [{\n payload: el,\n name: `${sourceName} - ${targetName}`,\n value: getValueByDataKey(payload, 'value'),\n }];\n }\n\n return [];\n};\n\n@pureRender\nclass Sankey extends Component {\n static displayName = 'Sankey';\n\n static propTypes = {\n ...PRESENTATION_ATTRIBUTES,\n ...EVENT_ATTRIBUTES,\n\n nameKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),\n width: PropTypes.number,\n height: PropTypes.number,\n data: PropTypes.shape({\n nodes: PropTypes.array,\n links: PropTypes.arrayOf(PropTypes.shape({\n target: PropTypes.number,\n source: PropTypes.number,\n value: PropTypes.number,\n })),\n }),\n\n nodePadding: PropTypes.number,\n nodeWidth: PropTypes.number,\n linkCurvature: PropTypes.number,\n iterations: PropTypes.number,\n\n node: PropTypes.oneOfType([PropTypes.object, PropTypes.element, PropTypes.func]),\n link: PropTypes.oneOfType([PropTypes.object, PropTypes.element, PropTypes.func]),\n\n style: PropTypes.object,\n className: PropTypes.string,\n children: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.node),\n PropTypes.node,\n ]),\n margin: PropTypes.shape({\n top: PropTypes.number,\n right: PropTypes.number,\n bottom: PropTypes.number,\n left: PropTypes.number,\n }),\n };\n\n static defaultProps = {\n nodePadding: 10,\n nodeWidth: 10,\n nameKey: 'name',\n dataKey: 'value',\n linkCurvature: 0.5,\n iterations: 32,\n margin: { top: 5, right: 5, bottom: 5, left: 5 },\n };\n\n constructor(props) {\n super(props);\n\n this.state = this.constructor.createDefaultState(props);\n }\n\n componentWillReceiveProps(nextProps) {\n const { data, width, height, margin, iterations, nodeWidth, nodePadding, nameKey } = this.props;\n if (nextProps.data !== data || nextProps.width !== width ||\n nextProps.height !== height || !shallowEqual(nextProps.margin, margin) ||\n nextProps.iterations !== iterations || nextProps.nodeWidth !== nodeWidth ||\n nextProps.nodePadding !== nodePadding || nextProps.nameKey !== nameKey) {\n this.setState(this.constructor.createDefaultState(nextProps));\n }\n }\n\n /**\n * Returns default, reset state for the sankey chart.\n * @param {Object} props The latest props\n * @return {Object} Whole new state\n */\n static createDefaultState(props) {\n const { data, width, height, margin, iterations, nodeWidth, nodePadding } = props;\n const contentWidth = width - ((margin && margin.left) || 0) - ((margin && margin.right) || 0);\n const contentHeight = height - ((margin && margin.top) || 0) - ((margin && margin.bottom) || 0);\n const { links, nodes } = computeData({\n data,\n width: contentWidth,\n height: contentHeight,\n iterations, nodeWidth, nodePadding,\n });\n\n return {\n activeElement: null,\n activeElementType: null,\n isTooltipActive: false,\n nodes, links,\n };\n }\n\n handleMouseEnter(el, type, e) {\n const { onMouseEnter, children } = this.props;\n const tooltipItem = findChildByType(children, Tooltip);\n\n if (tooltipItem) {\n this.setState({\n activeElement: el,\n activeElementType: type,\n isTooltipActive: true,\n }, () => {\n if (onMouseEnter) {\n onMouseEnter(el, type, e);\n }\n });\n } else if (onMouseEnter) {\n onMouseEnter(el, type, e);\n }\n }\n\n handleMouseLeave(el, type, e) {\n const { onMouseLeave, children } = this.props;\n const tooltipItem = findChildByType(children, Tooltip);\n\n if (tooltipItem) {\n this.setState({\n isTooltipActive: false,\n }, () => {\n if (onMouseLeave) {\n onMouseLeave(el, type, e);\n }\n });\n } else if (onMouseLeave) {\n onMouseLeave(el, type, e);\n }\n }\n\n static renderLinkItem(option, props) {\n if (React.isValidElement(option)) {\n return React.cloneElement(option, props);\n } if (_.isFunction(option)) {\n return option(props);\n }\n\n const { sourceX, sourceY, sourceControlX, targetX, targetY, targetControlX, linkWidth,\n ...others } = props;\n\n return (\n <path\n className=\"recharts-sankey-link\"\n d={`\n M${sourceX},${sourceY}\n C${sourceControlX},${sourceY} ${targetControlX},${targetY} ${targetX},${targetY}\n `}\n fill=\"none\"\n stroke=\"#333\"\n strokeWidth={linkWidth}\n strokeOpacity=\"0.2\"\n {...getPresentationAttributes(others)}\n />\n );\n }\n\n renderLinks(links, nodes) {\n const { linkCurvature, link: linkContent, margin } = this.props;\n const top = margin.top || 0;\n const left = margin.left || 0;\n\n return (\n <Layer className=\"recharts-sankey-links\" key=\"recharts-sankey-links\">\n {\n links.map((link, i) => {\n const { sy: sourceRelativeY, ty: targetRelativeY, dy: linkWidth } = link;\n const source = nodes[link.source];\n const target = nodes[link.target];\n const sourceX = source.x + source.dx + left;\n const targetX = target.x + left;\n const interpolationFunc = interpolationGenerator(sourceX, targetX);\n const sourceControlX = interpolationFunc(linkCurvature);\n const targetControlX = interpolationFunc(1 - linkCurvature);\n const sourceY = source.y + sourceRelativeY + linkWidth / 2 + top;\n const targetY = target.y + targetRelativeY + linkWidth / 2 + top;\n\n const linkProps = {\n sourceX, targetX,\n sourceY, targetY,\n sourceControlX, targetControlX,\n sourceRelativeY, targetRelativeY,\n linkWidth,\n index: i,\n payload: { ...link, source, target },\n ...getPresentationAttributes(linkContent),\n };\n const events = {\n onMouseEnter: this.handleMouseEnter.bind(this, linkProps, 'link'),\n onMouseLeave: this.handleMouseLeave.bind(this, linkProps, 'link'),\n };\n\n return (\n <Layer key={`link${i}`} {...events}>\n {this.constructor.renderLinkItem(linkContent, linkProps)}\n </Layer>\n );\n })\n }\n </Layer>\n );\n }\n\n static renderNodeItem(option, props) {\n if (React.isValidElement(option)) {\n return React.cloneElement(option, props);\n } if (_.isFunction(option)) {\n return option(props);\n }\n\n return (\n <Rectangle\n className=\"recharts-sankey-node\"\n fill=\"#0088fe\"\n fillOpacity=\"0.8\"\n {...props}\n />\n );\n }\n\n renderNodes(nodes) {\n const { node: nodeContent, margin } = this.props;\n const top = margin.top || 0;\n const left = margin.left || 0;\n\n return (\n <Layer className=\"recharts-sankey-nodes\" key=\"recharts-sankey-nodes\">\n {\n nodes.map((node, i) => {\n const { x, y, dx, dy } = node;\n const nodeProps = {\n ...getPresentationAttributes(nodeContent),\n x: x + left,\n y: y + top,\n width: dx,\n height: dy,\n index: i,\n payload: node,\n };\n const events = {\n onMouseEnter: this.handleMouseEnter.bind(this, nodeProps, 'node'),\n onMouseLeave: this.handleMouseLeave.bind(this, nodeProps, 'node'),\n };\n\n return (\n <Layer key={`node${i}`} {...events}>\n {this.constructor.renderNodeItem(nodeContent, nodeProps)}\n </Layer>\n );\n })\n }\n </Layer>\n );\n }\n\n renderTooltip() {\n const { children, width, height, nameKey } = this.props;\n const tooltipItem = findChildByType(children, Tooltip);\n\n if (!tooltipItem) { return null; }\n\n const { isTooltipActive, activeElement, activeElementType } = this.state;\n const viewBox = { x: 0, y: 0, width, height };\n const coordinate = activeElement ?\n getCoordinateOfTooltip(activeElement, activeElementType) :\n defaultCoordinateOfTooltip;\n const payload = activeElement ?\n getPayloadOfTooltip(activeElement, activeElementType, nameKey) : [];\n\n return React.cloneElement(tooltipItem, {\n viewBox,\n active: isTooltipActive,\n coordinate,\n label: '',\n payload,\n });\n }\n\n render() {\n if (!validateWidthHeight(this)) { return null; }\n\n const { width, height, className, style, children, ...others } = this.props;\n const { links, nodes } = this.state;\n const attrs = getPresentationAttributes(others);\n\n return (\n <div\n className={classNames('recharts-wrapper', className)}\n style={{ ...style, position: 'relative', cursor: 'default', width, height }}\n >\n <Surface {...attrs} width={width} height={height}>\n {filterSvgElements(children)}\n {this.renderLinks(links, nodes)}\n {this.renderNodes(nodes)}\n </Surface>\n {this.renderTooltip()}\n </div>\n );\n }\n}\n\nexport default Sankey;\n","/**\n * @fileOverview Radar Chart\n */\nimport PropTypes from 'prop-types';\nimport generateCategoricalChart from './generateCategoricalChart';\nimport Radar from '../polar/Radar';\nimport PolarAngleAxis from '../polar/PolarAngleAxis';\nimport PolarRadiusAxis from '../polar/PolarRadiusAxis';\nimport { formatAxisMap } from '../util/PolarUtils';\n\nexport default generateCategoricalChart({\n chartName: 'RadarChart',\n GraphicalChild: Radar,\n axisComponents: [\n { axisType: 'angleAxis', AxisComp: PolarAngleAxis },\n { axisType: 'radiusAxis', AxisComp: PolarRadiusAxis },\n ],\n formatAxisMap,\n defaultProps: {\n layout: 'centric',\n startAngle: 90,\n endAngle: -270,\n cx: '50%',\n cy: '50%',\n innerRadius: 0,\n outerRadius: '80%',\n },\n propTypes: {\n layout: PropTypes.oneOf(['centric']),\n startAngle: PropTypes.number,\n endAngle: PropTypes.number,\n cx: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n cy: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n innerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n outerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n },\n});\n","/**\n * @fileOverview Scatter Chart\n */\nimport generateCategoricalChart from './generateCategoricalChart';\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';\n\nexport default generateCategoricalChart({\n chartName: 'ScatterChart',\n GraphicalChild: Scatter,\n eventType: 'single',\n axisComponents: [\n { axisType: 'xAxis', AxisComp: XAxis },\n { axisType: 'yAxis', AxisComp: YAxis },\n { axisType: 'zAxis', AxisComp: ZAxis },\n ],\n formatAxisMap,\n});\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';\n\nexport default generateCategoricalChart({\n chartName: 'AreaChart',\n GraphicalChild: Area,\n axisComponents: [\n { axisType: 'xAxis', AxisComp: XAxis },\n { axisType: 'yAxis', AxisComp: YAxis },\n ],\n formatAxisMap,\n});\n","/**\n * @fileOverview Radar Bar Chart\n */\nimport PropTypes from 'prop-types';\nimport generateCategoricalChart from './generateCategoricalChart';\nimport PolarAngleAxis from '../polar/PolarAngleAxis';\nimport PolarRadiusAxis from '../polar/PolarRadiusAxis';\nimport { formatAxisMap } from '../util/PolarUtils';\nimport RadialBar from '../polar/RadialBar';\n\nexport default generateCategoricalChart({\n chartName: 'RadialBarChart',\n GraphicalChild: RadialBar,\n legendContent: 'children',\n axisComponents: [\n { axisType: 'angleAxis', AxisComp: PolarAngleAxis },\n { axisType: 'radiusAxis', AxisComp: PolarRadiusAxis },\n ],\n formatAxisMap,\n defaultProps: {\n layout: 'radial',\n startAngle: 0,\n endAngle: 360,\n cx: '50%',\n cy: '50%',\n innerRadius: 0,\n outerRadius: '80%',\n },\n propTypes: {\n layout: PropTypes.oneOf(['radial']),\n startAngle: PropTypes.number,\n endAngle: PropTypes.number,\n cx: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n cy: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n innerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n outerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n },\n});\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';\n\nexport default generateCategoricalChart({\n chartName: 'ComposedChart',\n GraphicalChild: [Line, Area, Bar, Scatter],\n axisComponents: [\n { axisType: 'xAxis', AxisComp: XAxis },\n { axisType: 'yAxis', AxisComp: YAxis },\n { axisType: 'zAxis', AxisComp: ZAxis },\n ],\n formatAxisMap,\n});\n","import './polyfill';\n\nexport Surface from './container/Surface';\nexport Layer from './container/Layer';\n\nexport Legend from './component/Legend';\nexport Tooltip from './component/Tooltip';\nexport ResponsiveContainer from './component/ResponsiveContainer';\nexport Cell from './component/Cell';\nexport Text from './component/Text';\nexport Label from './component/Label';\nexport LabelList from './component/LabelList';\n\nexport Sector from './shape/Sector';\nexport Curve from './shape/Curve';\nexport Rectangle from './shape/Rectangle';\nexport Polygon from './shape/Polygon';\nexport Dot from './shape/Dot';\nexport Cross from './shape/Cross';\nexport Symbols from './shape/Symbols';\n\nexport PolarGrid from './polar/PolarGrid';\nexport PolarRadiusAxis from './polar/PolarRadiusAxis';\nexport PolarAngleAxis from './polar/PolarAngleAxis';\nexport Pie from './polar/Pie';\nexport Radar from './polar/Radar';\nexport RadialBar from './polar/RadialBar';\n\nexport Brush from './cartesian/Brush';\nexport ReferenceLine from './cartesian/ReferenceLine';\nexport ReferenceDot from './cartesian/ReferenceDot';\nexport ReferenceArea from './cartesian/ReferenceArea';\nexport CartesianAxis from './cartesian/CartesianAxis';\nexport CartesianGrid from './cartesian/CartesianGrid';\nexport Line from './cartesian/Line';\nexport Area from './cartesian/Area';\nexport Bar from './cartesian/Bar';\nexport Scatter from './cartesian/Scatter';\nexport XAxis from './cartesian/XAxis';\nexport YAxis from './cartesian/YAxis';\nexport ZAxis from './cartesian/ZAxis';\nexport ErrorBar from './cartesian/ErrorBar';\n\nexport LineChart from './chart/LineChart';\nexport BarChart from './chart/BarChart';\nexport PieChart from './chart/PieChart';\nexport Treemap from './chart/Treemap';\nexport Sankey from './chart/Sankey';\nexport RadarChart from './chart/RadarChart';\nexport ScatterChart from './chart/ScatterChart';\nexport AreaChart from './chart/AreaChart';\nexport RadialBarChart from './chart/RadialBarChart';\nexport ComposedChart from './chart/ComposedChart';\n"],"sourceRoot":""}
\No newline at end of file