{"version":3,"file":"PieChart.46810071.js","sources":["../../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../../frontend/routes/index.js","../../../node_modules/lodash/isString.js","../../../node_modules/lodash/_arrayPush.js","../../../node_modules/lodash/_baseIsArguments.js","../../../node_modules/lodash/isArguments.js","../../../node_modules/lodash/_isFlattenable.js","../../../node_modules/lodash/_baseFlatten.js","../../../node_modules/lodash/_isKey.js","../../../node_modules/lodash/isFunction.js","../../../node_modules/lodash/_coreJsData.js","../../../node_modules/lodash/_isMasked.js","../../../node_modules/lodash/_toSource.js","../../../node_modules/lodash/_baseIsNative.js","../../../node_modules/lodash/_getValue.js","../../../node_modules/lodash/_getNative.js","../../../node_modules/lodash/_nativeCreate.js","../../../node_modules/lodash/_hashClear.js","../../../node_modules/lodash/_hashDelete.js","../../../node_modules/lodash/_hashGet.js","../../../node_modules/lodash/_hashHas.js","../../../node_modules/lodash/_hashSet.js","../../../node_modules/lodash/_Hash.js","../../../node_modules/lodash/_listCacheClear.js","../../../node_modules/lodash/eq.js","../../../node_modules/lodash/_assocIndexOf.js","../../../node_modules/lodash/_listCacheDelete.js","../../../node_modules/lodash/_listCacheGet.js","../../../node_modules/lodash/_listCacheHas.js","../../../node_modules/lodash/_listCacheSet.js","../../../node_modules/lodash/_ListCache.js","../../../node_modules/lodash/_Map.js","../../../node_modules/lodash/_mapCacheClear.js","../../../node_modules/lodash/_isKeyable.js","../../../node_modules/lodash/_getMapData.js","../../../node_modules/lodash/_mapCacheDelete.js","../../../node_modules/lodash/_mapCacheGet.js","../../../node_modules/lodash/_mapCacheHas.js","../../../node_modules/lodash/_mapCacheSet.js","../../../node_modules/lodash/_MapCache.js","../../../node_modules/lodash/memoize.js","../../../node_modules/lodash/_memoizeCapped.js","../../../node_modules/lodash/_stringToPath.js","../../../node_modules/lodash/_castPath.js","../../../node_modules/lodash/_toKey.js","../../../node_modules/lodash/_baseGet.js","../../../node_modules/lodash/_stackClear.js","../../../node_modules/lodash/_stackDelete.js","../../../node_modules/lodash/_stackGet.js","../../../node_modules/lodash/_stackHas.js","../../../node_modules/lodash/_stackSet.js","../../../node_modules/lodash/_Stack.js","../../../node_modules/lodash/_setCacheAdd.js","../../../node_modules/lodash/_setCacheHas.js","../../../node_modules/lodash/_SetCache.js","../../../node_modules/lodash/_arraySome.js","../../../node_modules/lodash/_cacheHas.js","../../../node_modules/lodash/_equalArrays.js","../../../node_modules/lodash/_Uint8Array.js","../../../node_modules/lodash/_mapToArray.js","../../../node_modules/lodash/_setToArray.js","../../../node_modules/lodash/_equalByTag.js","../../../node_modules/lodash/_baseGetAllKeys.js","../../../node_modules/lodash/_arrayFilter.js","../../../node_modules/lodash/stubArray.js","../../../node_modules/lodash/_getSymbols.js","../../../node_modules/lodash/_baseTimes.js","../../../node_modules/lodash/stubFalse.js","../../../node_modules/lodash/isBuffer.js","../../../node_modules/lodash/_isIndex.js","../../../node_modules/lodash/isLength.js","../../../node_modules/lodash/_baseIsTypedArray.js","../../../node_modules/lodash/_baseUnary.js","../../../node_modules/lodash/_nodeUtil.js","../../../node_modules/lodash/isTypedArray.js","../../../node_modules/lodash/_arrayLikeKeys.js","../../../node_modules/lodash/_isPrototype.js","../../../node_modules/lodash/_nativeKeys.js","../../../node_modules/lodash/_baseKeys.js","../../../node_modules/lodash/isArrayLike.js","../../../node_modules/lodash/keys.js","../../../node_modules/lodash/_getAllKeys.js","../../../node_modules/lodash/_equalObjects.js","../../../node_modules/lodash/_DataView.js","../../../node_modules/lodash/_Promise.js","../../../node_modules/lodash/_Set.js","../../../node_modules/lodash/_WeakMap.js","../../../node_modules/lodash/_getTag.js","../../../node_modules/lodash/_baseIsEqualDeep.js","../../../node_modules/lodash/_baseIsEqual.js","../../../node_modules/lodash/_baseIsMatch.js","../../../node_modules/lodash/_isStrictComparable.js","../../../node_modules/lodash/_getMatchData.js","../../../node_modules/lodash/_matchesStrictComparable.js","../../../node_modules/lodash/_baseMatches.js","../../../node_modules/lodash/get.js","../../../node_modules/lodash/_baseHasIn.js","../../../node_modules/lodash/_hasPath.js","../../../node_modules/lodash/hasIn.js","../../../node_modules/lodash/_baseMatchesProperty.js","../../../node_modules/lodash/identity.js","../../../node_modules/lodash/_baseProperty.js","../../../node_modules/lodash/_basePropertyDeep.js","../../../node_modules/lodash/property.js","../../../node_modules/lodash/_baseIteratee.js","../../../node_modules/lodash/_createBaseFor.js","../../../node_modules/lodash/_baseFor.js","../../../node_modules/lodash/_baseForOwn.js","../../../node_modules/lodash/_createBaseEach.js","../../../node_modules/lodash/_baseEach.js","../../../node_modules/lodash/_baseMap.js","../../../node_modules/lodash/_baseSortBy.js","../../../node_modules/lodash/_compareAscending.js","../../../node_modules/lodash/_compareMultiple.js","../../../node_modules/lodash/_baseOrderBy.js","../../../node_modules/lodash/_apply.js","../../../node_modules/lodash/_overRest.js","../../../node_modules/lodash/constant.js","../../../node_modules/lodash/_defineProperty.js","../../../node_modules/lodash/_baseSetToString.js","../../../node_modules/lodash/_shortOut.js","../../../node_modules/lodash/_setToString.js","../../../node_modules/lodash/_baseRest.js","../../../node_modules/lodash/_isIterateeCall.js","../../../node_modules/lodash/sortBy.js","../../../node_modules/@react-leaflet/core/esm/media-overlay.js","../../../node_modules/react-leaflet/esm/ImageOverlay.js","../../../node_modules/react-leaflet/esm/Marker.js","../../../node_modules/react-leaflet/esm/Popup.js","../../../node_modules/lodash/isNil.js","../../../node_modules/lodash/isNumber.js","../../../node_modules/lodash/isNaN.js","../../../node_modules/recharts/es6/util/DataUtils.js","../../../node_modules/recharts/es6/util/ShallowEqual.js","../../../node_modules/recharts/es6/util/types.js","../../../node_modules/recharts/es6/util/ReactUtils.js","../../../node_modules/recharts/es6/container/Surface.js","../../../node_modules/recharts/es6/container/Layer.js","../../../node_modules/lodash/_baseFindIndex.js","../../../node_modules/lodash/_baseIsNaN.js","../../../node_modules/lodash/_strictIndexOf.js","../../../node_modules/lodash/_baseIndexOf.js","../../../node_modules/lodash/_arrayIncludes.js","../../../node_modules/lodash/_arrayIncludesWith.js","../../../node_modules/lodash/noop.js","../../../node_modules/lodash/_createSet.js","../../../node_modules/lodash/_baseUniq.js","../../../node_modules/lodash/uniqBy.js","../../../node_modules/lodash/_baseSlice.js","../../../node_modules/lodash/_castSlice.js","../../../node_modules/lodash/_hasUnicode.js","../../../node_modules/lodash/_asciiToArray.js","../../../node_modules/lodash/_unicodeToArray.js","../../../node_modules/lodash/_stringToArray.js","../../../node_modules/lodash/_createCaseFirst.js","../../../node_modules/lodash/upperFirst.js","../../../node_modules/d3-shape/src/constant.js","../../../node_modules/d3-shape/src/math.js","../../../node_modules/d3-path/src/path.js","../../../node_modules/d3-shape/src/path.js","../../../node_modules/d3-shape/src/array.js","../../../node_modules/d3-shape/src/curve/linear.js","../../../node_modules/d3-shape/src/point.js","../../../node_modules/d3-shape/src/line.js","../../../node_modules/d3-shape/src/area.js","../../../node_modules/d3-shape/src/symbol/circle.js","../../../node_modules/d3-shape/src/symbol/cross.js","../../../node_modules/d3-shape/src/symbol/diamond.js","../../../node_modules/d3-shape/src/symbol/square.js","../../../node_modules/d3-shape/src/symbol/star.js","../../../node_modules/d3-shape/src/symbol/triangle.js","../../../node_modules/d3-shape/src/symbol/wye.js","../../../node_modules/d3-shape/src/symbol.js","../../../node_modules/d3-shape/src/noop.js","../../../node_modules/d3-shape/src/curve/basis.js","../../../node_modules/d3-shape/src/curve/basisClosed.js","../../../node_modules/d3-shape/src/curve/basisOpen.js","../../../node_modules/d3-shape/src/curve/linearClosed.js","../../../node_modules/d3-shape/src/curve/monotone.js","../../../node_modules/d3-shape/src/curve/natural.js","../../../node_modules/d3-shape/src/curve/step.js","../../../node_modules/d3-shape/src/offset/none.js","../../../node_modules/d3-shape/src/order/none.js","../../../node_modules/d3-shape/src/stack.js","../../../node_modules/d3-shape/src/offset/expand.js","../../../node_modules/d3-shape/src/offset/silhouette.js","../../../node_modules/d3-shape/src/offset/wiggle.js","../../../node_modules/recharts/es6/shape/Symbols.js","../../../node_modules/recharts/es6/component/DefaultLegendContent.js","../../../node_modules/recharts/es6/component/Legend.js","../../../node_modules/fast-equals/dist/esm/index.mjs","../../../node_modules/react-smooth/es6/setRafTimeout.js","../../../node_modules/react-smooth/es6/AnimateManager.js","../../../node_modules/react-smooth/es6/util.js","../../../node_modules/react-smooth/es6/easing.js","../../../node_modules/react-smooth/es6/configUpdate.js","../../../node_modules/react-smooth/es6/Animate.js","../../../node_modules/react-smooth/es6/AnimateGroupChild.js","../../../node_modules/react-smooth/es6/AnimateGroup.js","../../../node_modules/recharts/es6/component/DefaultTooltipContent.js","../../../node_modules/recharts/es6/util/Global.js","../../../node_modules/recharts/es6/component/Tooltip.js","../../../node_modules/lodash/throttle.js","../../../node_modules/recharts/es6/util/LogUtils.js","../../../node_modules/recharts/es6/component/Cell.js","../../../node_modules/reduce-css-calc/node_modules/postcss-value-parser/lib/parse.js","../../../node_modules/reduce-css-calc/node_modules/postcss-value-parser/lib/walk.js","../../../node_modules/reduce-css-calc/node_modules/postcss-value-parser/lib/stringify.js","../../../node_modules/reduce-css-calc/node_modules/postcss-value-parser/lib/unit.js","../../../node_modules/reduce-css-calc/node_modules/postcss-value-parser/lib/index.js","../../../node_modules/reduce-css-calc/dist/parser.js","../../../node_modules/css-unit-converter/index.js","../../../node_modules/reduce-css-calc/dist/lib/convert.js","../../../node_modules/reduce-css-calc/dist/lib/reducer.js","../../../node_modules/reduce-css-calc/dist/lib/stringifier.js","../../../node_modules/reduce-css-calc/dist/index.js","../../../node_modules/recharts/es6/util/DOMUtils.js","../../../node_modules/recharts/es6/component/Text.js","../../../node_modules/lodash/isEqual.js","../../../node_modules/lodash/_baseExtremum.js","../../../node_modules/lodash/_baseGt.js","../../../node_modules/lodash/max.js","../../../node_modules/lodash/_baseLt.js","../../../node_modules/lodash/min.js","../../../node_modules/lodash/map.js","../../../node_modules/lodash/flatMap.js","../../../node_modules/d3-array/src/ascending.js","../../../node_modules/d3-array/src/descending.js","../../../node_modules/d3-array/src/bisector.js","../../../node_modules/d3-array/src/number.js","../../../node_modules/d3-array/src/bisect.js","../../../node_modules/internmap/src/index.js","../../../node_modules/d3-array/src/sort.js","../../../node_modules/d3-array/src/ticks.js","../../../node_modules/d3-array/src/max.js","../../../node_modules/d3-array/src/min.js","../../../node_modules/d3-array/src/quickselect.js","../../../node_modules/d3-array/src/quantile.js","../../../node_modules/d3-array/src/range.js","../../../node_modules/d3-scale/src/init.js","../../../node_modules/d3-scale/src/ordinal.js","../../../node_modules/d3-scale/src/band.js","../../../node_modules/d3-color/src/define.js","../../../node_modules/d3-color/src/color.js","../../../node_modules/d3-interpolate/src/constant.js","../../../node_modules/d3-interpolate/src/color.js","../../../node_modules/d3-interpolate/src/rgb.js","../../../node_modules/d3-interpolate/src/numberArray.js","../../../node_modules/d3-interpolate/src/array.js","../../../node_modules/d3-interpolate/src/date.js","../../../node_modules/d3-interpolate/src/number.js","../../../node_modules/d3-interpolate/src/object.js","../../../node_modules/d3-interpolate/src/string.js","../../../node_modules/d3-interpolate/src/value.js","../../../node_modules/d3-interpolate/src/round.js","../../../node_modules/d3-interpolate/src/piecewise.js","../../../node_modules/d3-scale/src/constant.js","../../../node_modules/d3-scale/src/number.js","../../../node_modules/d3-scale/src/continuous.js","../../../node_modules/d3-format/src/formatDecimal.js","../../../node_modules/d3-format/src/exponent.js","../../../node_modules/d3-format/src/formatGroup.js","../../../node_modules/d3-format/src/formatNumerals.js","../../../node_modules/d3-format/src/formatSpecifier.js","../../../node_modules/d3-format/src/formatTrim.js","../../../node_modules/d3-format/src/formatPrefixAuto.js","../../../node_modules/d3-format/src/formatRounded.js","../../../node_modules/d3-format/src/formatTypes.js","../../../node_modules/d3-format/src/identity.js","../../../node_modules/d3-format/src/locale.js","../../../node_modules/d3-format/src/defaultLocale.js","../../../node_modules/d3-format/src/precisionFixed.js","../../../node_modules/d3-format/src/precisionPrefix.js","../../../node_modules/d3-format/src/precisionRound.js","../../../node_modules/d3-scale/src/tickFormat.js","../../../node_modules/d3-scale/src/linear.js","../../../node_modules/d3-scale/src/identity.js","../../../node_modules/d3-scale/src/nice.js","../../../node_modules/d3-scale/src/log.js","../../../node_modules/d3-scale/src/symlog.js","../../../node_modules/d3-scale/src/pow.js","../../../node_modules/d3-scale/src/radial.js","../../../node_modules/d3-scale/src/quantile.js","../../../node_modules/d3-scale/src/quantize.js","../../../node_modules/d3-scale/src/threshold.js","../../../node_modules/d3-time/src/interval.js","../../../node_modules/d3-time/src/millisecond.js","../../../node_modules/d3-time/src/duration.js","../../../node_modules/d3-time/src/second.js","../../../node_modules/d3-time/src/minute.js","../../../node_modules/d3-time/src/hour.js","../../../node_modules/d3-time/src/day.js","../../../node_modules/d3-time/src/week.js","../../../node_modules/d3-time/src/month.js","../../../node_modules/d3-time/src/year.js","../../../node_modules/d3-time/src/ticks.js","../../../node_modules/d3-time-format/src/locale.js","../../../node_modules/d3-time-format/src/defaultLocale.js","../../../node_modules/d3-scale/src/time.js","../../../node_modules/d3-scale/src/utcTime.js","../../../node_modules/d3-scale/src/sequential.js","../../../node_modules/d3-scale/src/sequentialQuantile.js","../../../node_modules/d3-scale/src/diverging.js","../../../node_modules/decimal.js-light/decimal.mjs","../../../node_modules/recharts-scale/es6/util/utils.js","../../../node_modules/recharts-scale/es6/util/arithmetic.js","../../../node_modules/recharts-scale/es6/getNiceTickValues.js","../../../node_modules/recharts/es6/cartesian/ErrorBar.js","../../../node_modules/recharts/es6/util/ChartUtils.js","../../../node_modules/recharts/es6/util/PolarUtils.js","../../../node_modules/recharts/es6/component/Label.js","../../../node_modules/lodash/last.js","../../../node_modules/recharts/es6/component/LabelList.js","../../../node_modules/recharts/es6/shape/Sector.js","../../../node_modules/recharts/es6/shape/Curve.js","../../../node_modules/recharts/es6/shape/Rectangle.js","../../../node_modules/recharts/es6/shape/Polygon.js","../../../node_modules/recharts/es6/shape/Dot.js","../../../node_modules/recharts/es6/shape/Cross.js","../../../node_modules/lodash/minBy.js","../../../node_modules/lodash/maxBy.js","../../../node_modules/recharts/es6/polar/PolarRadiusAxis.js","../../../node_modules/recharts/es6/polar/PolarAngleAxis.js","../../../node_modules/recharts/es6/polar/Pie.js","../../../node_modules/lodash/_baseRange.js","../../../node_modules/lodash/toFinite.js","../../../node_modules/lodash/_createRange.js","../../../node_modules/lodash/range.js","../../../node_modules/recharts/es6/util/CssPrefixUtils.js","../../../node_modules/recharts/es6/cartesian/Brush.js","../../../node_modules/lodash/_baseSome.js","../../../node_modules/lodash/some.js","../../../node_modules/recharts/es6/util/IfOverflowMatches.js","../../../node_modules/lodash/_arrayEvery.js","../../../node_modules/lodash/_baseEvery.js","../../../node_modules/lodash/every.js","../../../node_modules/lodash/_baseAssignValue.js","../../../node_modules/lodash/mapValues.js","../../../node_modules/recharts/es6/cartesian/Bar.js","../../../node_modules/recharts/es6/util/CartesianUtils.js","../../../node_modules/recharts/es6/cartesian/ReferenceLine.js","../../../node_modules/recharts/es6/cartesian/ReferenceDot.js","../../../node_modules/recharts/es6/cartesian/ReferenceArea.js","../../../node_modules/recharts/es6/util/getEveryNthWithCondition.js","../../../node_modules/recharts/es6/cartesian/getTicks.js","../../../node_modules/recharts/es6/cartesian/CartesianAxis.js","../../../node_modules/lodash/_createFind.js","../../../node_modules/lodash/toInteger.js","../../../node_modules/lodash/findIndex.js","../../../node_modules/lodash/find.js","../../../node_modules/lodash/isBoolean.js","../../../node_modules/recharts/es6/util/DetectReferenceElementsDomain.js","../../../node_modules/eventemitter3/index.js","../../../node_modules/recharts/es6/util/Events.js","../../../node_modules/recharts/es6/chart/AccessibilityManager.js","../../../node_modules/recharts/es6/chart/generateCategoricalChart.js","../../../node_modules/recharts/es6/chart/PieChart.js"],"sourcesContent":["import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","const ROOT = '/';\nconst LOCALE = `${ROOT}:locale`;\nconst PROJECT = `${LOCALE}/projects/:projectId`;\nconst PROJECT_PREVIEW = `${PROJECT}/preview`;\nconst IDEA_BOARD = `${PROJECT}/idea_boards/:ideaBoardId`;\nconst IDEA = `${LOCALE}/idea_boards/:ideaBoardId/ideas/:ideaId`;\nconst DISCUSSION_TOPIC = `${PROJECT}/discussion_topics/:discussionTopicId`;\nconst PASSWORD_RESET = `${LOCALE}/reset_password`;\nconst ENGAGEMENT = `${PROJECT}/engagements/:engagementId`;\nconst ENGAGEMENT_PREVIEW = `${ENGAGEMENT}/preview`;\nconst ENGAGEMENT_SECTION = `${ENGAGEMENT}/sections/:position`;\nconst ENGAGEMENT_QUIT = `${ENGAGEMENT}/quit`;\nconst ENGAGEMENT_CLOSED = `${ENGAGEMENT}/closed`;\nconst ENGAGEMENT_ERROR = `${ENGAGEMENT}/error`;\nconst ENGAGEMENT_REPORT = `${PROJECT}/engagement_reports/:engagementReportId`;\nconst ANNOUNCEMENT = `${PROJECT}/announcements/:announcementId`;\nconst CATEGORY = `${LOCALE}/categories/:categoryId`;\nconst CATEGORY_ALIAS = `${LOCALE}/c/:categoryId`;\nconst ADMIN_LOGIN = `${ROOT}admin`;\nconst SITEMAP = `${LOCALE}/sitemap`;\n\nexport default Object.freeze({\n ROOT,\n PROJECT,\n PROJECT_PREVIEW,\n LOCALE,\n IDEA_BOARD,\n IDEA,\n DISCUSSION_TOPIC,\n PASSWORD_RESET,\n ENGAGEMENT,\n ENGAGEMENT_PREVIEW,\n ENGAGEMENT_SECTION,\n ENGAGEMENT_QUIT,\n ENGAGEMENT_CLOSED,\n ENGAGEMENT_ERROR,\n ENGAGEMENT_REPORT,\n ANNOUNCEMENT,\n CATEGORY,\n CATEGORY_ALIAS,\n ADMIN_LOGIN,\n SITEMAP,\n});\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","/**\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 baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\nvar sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n});\n\nmodule.exports = sortBy;\n","import { LatLngBounds } from 'leaflet';\nexport function updateMediaOverlay(overlay, props, prevProps) {\n if (props.bounds instanceof LatLngBounds && props.bounds !== prevProps.bounds) {\n overlay.setBounds(props.bounds);\n }\n\n if (props.opacity != null && props.opacity !== prevProps.opacity) {\n overlay.setOpacity(props.opacity);\n }\n\n if (props.zIndex != null && props.zIndex !== prevProps.zIndex) {\n // @ts-ignore missing in definition but inherited from ImageOverlay\n overlay.setZIndex(props.zIndex);\n }\n}","import { createLayerComponent, updateMediaOverlay } from '@react-leaflet/core';\nimport { ImageOverlay as LeafletImageOverlay } from 'leaflet';\nexport const ImageOverlay = createLayerComponent(function createImageOveraly(_ref, ctx) {\n let {\n bounds,\n url,\n ...options\n } = _ref;\n const instance = new LeafletImageOverlay(url, bounds, options);\n return {\n instance,\n context: { ...ctx,\n overlayContainer: instance\n }\n };\n}, function updateImageOverlay(overlay, props, prevProps) {\n updateMediaOverlay(overlay, props, prevProps);\n\n if (props.url !== prevProps.url) {\n overlay.setUrl(props.url);\n }\n});","import { createLayerComponent } from '@react-leaflet/core';\nimport { Marker as LeafletMarker } from 'leaflet';\nexport const Marker = createLayerComponent(function createMarker(_ref, ctx) {\n let {\n position,\n ...options\n } = _ref;\n const instance = new LeafletMarker(position, options);\n return {\n instance,\n context: { ...ctx,\n overlayContainer: instance\n }\n };\n}, function updateMarker(marker, props, prevProps) {\n if (props.position !== prevProps.position) {\n marker.setLatLng(props.position);\n }\n\n if (props.icon != null && props.icon !== prevProps.icon) {\n marker.setIcon(props.icon);\n }\n\n if (props.zIndexOffset != null && props.zIndexOffset !== prevProps.zIndexOffset) {\n marker.setZIndexOffset(props.zIndexOffset);\n }\n\n if (props.opacity != null && props.opacity !== prevProps.opacity) {\n marker.setOpacity(props.opacity);\n }\n\n if (marker.dragging != null && props.draggable !== prevProps.draggable) {\n if (props.draggable === true) {\n marker.dragging.enable();\n } else {\n marker.dragging.disable();\n }\n }\n});","import { createOverlayComponent } from '@react-leaflet/core';\nimport { Popup as LeafletPopup } from 'leaflet';\nimport { useEffect } from 'react';\nexport const Popup = createOverlayComponent(function createPopup(props, context) {\n return {\n instance: new LeafletPopup(props, context.overlayContainer),\n context\n };\n}, function usePopupLifecycle(element, context, props, setOpen) {\n const {\n onClose,\n onOpen,\n position\n } = props;\n useEffect(function addPopup() {\n const {\n instance\n } = element;\n\n function onPopupOpen(event) {\n if (event.popup === instance) {\n instance.update();\n setOpen(true);\n onOpen == null ? void 0 : onOpen();\n }\n }\n\n function onPopupClose(event) {\n if (event.popup === instance) {\n setOpen(false);\n onClose == null ? void 0 : onClose();\n }\n }\n\n context.map.on({\n popupopen: onPopupOpen,\n popupclose: onPopupClose\n });\n\n if (context.overlayContainer == null) {\n // Attach to a Map\n if (position != null) {\n instance.setLatLng(position);\n }\n\n instance.openOn(context.map);\n } else {\n // Attach to container component\n context.overlayContainer.bindPopup(instance);\n }\n\n return function removePopup() {\n var _context$overlayConta;\n\n context.map.off({\n popupopen: onPopupOpen,\n popupclose: onPopupClose\n });\n (_context$overlayConta = context.overlayContainer) == null ? void 0 : _context$overlayConta.unbindPopup();\n context.map.removeLayer(instance);\n };\n }, [element, context, setOpen, onClose, onOpen, position]);\n});","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nmodule.exports = isNumber;\n","var isNumber = require('./isNumber');\n\n/**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\nfunction isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n}\n\nmodule.exports = isNaN;\n","import _get from \"lodash/get\";\nimport _isArray from \"lodash/isArray\";\nimport _isNaN from \"lodash/isNaN\";\nimport _isNumber from \"lodash/isNumber\";\nimport _isString from \"lodash/isString\";\nexport var mathSign = function mathSign(value) {\n if (value === 0) {\n return 0;\n }\n if (value > 0) {\n return 1;\n }\n return -1;\n};\nexport var isPercent = function isPercent(value) {\n return _isString(value) && value.indexOf('%') === value.length - 1;\n};\nexport var isNumber = function isNumber(value) {\n return _isNumber(value) && !_isNaN(value);\n};\nexport var isNumOrStr = function isNumOrStr(value) {\n return isNumber(value) || _isString(value);\n};\nvar idCounter = 0;\nexport var uniqueId = function uniqueId(prefix) {\n var id = ++idCounter;\n return \"\".concat(prefix || '').concat(id);\n};\n\n/**\n * Get percent value of a total value\n * @param {number|string} percent A percent\n * @param {number} totalValue Total value\n * @param {number} defaultValue The value returned when percent is undefined or invalid\n * @param {boolean} validate If set to be true, the result will be validated\n * @return {number} value\n */\nexport var getPercentValue = function getPercentValue(percent, totalValue) {\n var defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n var validate = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n if (!isNumber(percent) && !_isString(percent)) {\n return defaultValue;\n }\n var value;\n if (isPercent(percent)) {\n var index = percent.indexOf('%');\n value = totalValue * parseFloat(percent.slice(0, index)) / 100;\n } else {\n value = +percent;\n }\n if (_isNaN(value)) {\n value = defaultValue;\n }\n if (validate && value > totalValue) {\n value = totalValue;\n }\n return value;\n};\nexport var getAnyElementOfObject = function getAnyElementOfObject(obj) {\n if (!obj) {\n return null;\n }\n var keys = Object.keys(obj);\n if (keys && keys.length) {\n return obj[keys[0]];\n }\n return null;\n};\nexport var hasDuplicate = function hasDuplicate(ary) {\n if (!_isArray(ary)) {\n return false;\n }\n var len = ary.length;\n var cache = {};\n for (var i = 0; i < len; i++) {\n if (!cache[ary[i]]) {\n cache[ary[i]] = true;\n } else {\n return true;\n }\n }\n return false;\n};\n\n/* @todo consider to rename this function into `getInterpolator` */\nexport var interpolateNumber = function interpolateNumber(numberA, numberB) {\n if (isNumber(numberA) && isNumber(numberB)) {\n return function (t) {\n return numberA + t * (numberB - numberA);\n };\n }\n return function () {\n return numberB;\n };\n};\nexport function findEntryInArray(ary, specifiedKey, specifiedValue) {\n if (!ary || !ary.length) {\n return null;\n }\n return ary.find(function (entry) {\n return entry && (typeof specifiedKey === 'function' ? specifiedKey(entry) : _get(entry, specifiedKey)) === specifiedValue;\n });\n}\n\n/**\n * The least square linear regression\n * @param {Array} data The array of points\n * @returns {Object} The domain of x, and the parameter of linear function\n */\nexport var getLinearRegression = function getLinearRegression(data) {\n if (!data || !data.length) {\n return null;\n }\n var len = data.length;\n var xsum = 0;\n var ysum = 0;\n var xysum = 0;\n var xxsum = 0;\n var xmin = Infinity;\n var xmax = -Infinity;\n var xcurrent = 0;\n var ycurrent = 0;\n for (var i = 0; i < len; i++) {\n xcurrent = data[i].cx || 0;\n ycurrent = data[i].cy || 0;\n xsum += xcurrent;\n ysum += ycurrent;\n xysum += xcurrent * ycurrent;\n xxsum += xcurrent * xcurrent;\n xmin = Math.min(xmin, xcurrent);\n xmax = Math.max(xmax, xcurrent);\n }\n var a = len * xxsum !== xsum * xsum ? (len * xysum - xsum * ysum) / (len * xxsum - xsum * xsum) : 0;\n return {\n xmin: xmin,\n xmax: xmax,\n a: a,\n b: (ysum - a * xsum) / len\n };\n};","export function shallowEqual(a, b) {\n /* eslint-disable no-restricted-syntax */\n for (var key in a) {\n if ({}.hasOwnProperty.call(a, key) && (!{}.hasOwnProperty.call(b, key) || a[key] !== b[key])) {\n return false;\n }\n }\n for (var _key in b) {\n if ({}.hasOwnProperty.call(b, _key) && !{}.hasOwnProperty.call(a, _key)) {\n return false;\n }\n }\n return true;\n}","import _isObject from \"lodash/isObject\";\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport { isValidElement } from 'react';\n\n//\n// Event Handler Types -- Copied from @types/react/index.d.ts and adapted for Props.\n//\nvar SVGContainerPropKeys = ['viewBox', 'children'];\nexport var SVGElementPropKeys = ['aria-activedescendant', 'aria-atomic', 'aria-autocomplete', 'aria-busy', 'aria-checked', 'aria-colcount', 'aria-colindex', 'aria-colspan', 'aria-controls', 'aria-current', 'aria-describedby', 'aria-details', 'aria-disabled', 'aria-errormessage', 'aria-expanded', 'aria-flowto', 'aria-haspopup', 'aria-hidden', 'aria-invalid', 'aria-keyshortcuts', 'aria-label', 'aria-labelledby', 'aria-level', 'aria-live', 'aria-modal', 'aria-multiline', 'aria-multiselectable', 'aria-orientation', 'aria-owns', 'aria-placeholder', 'aria-posinset', 'aria-pressed', 'aria-readonly', 'aria-relevant', 'aria-required', 'aria-roledescription', 'aria-rowcount', 'aria-rowindex', 'aria-rowspan', 'aria-selected', 'aria-setsize', 'aria-sort', 'aria-valuemax', 'aria-valuemin', 'aria-valuenow', 'aria-valuetext', 'className', 'color', 'height', 'id', 'lang', 'max', 'media', 'method', 'min', 'name', 'style',\n/*\n * removed 'type' SVGElementPropKey because we do not currently use any SVG elements\n * that can use it and it conflicts with the recharts prop 'type'\n * https://github.com/recharts/recharts/pull/3327\n * https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/type\n */\n// 'type',\n'target', 'width', 'role', 'tabIndex', 'accentHeight', 'accumulate', 'additive', 'alignmentBaseline', 'allowReorder', 'alphabetic', 'amplitude', 'arabicForm', 'ascent', 'attributeName', 'attributeType', 'autoReverse', 'azimuth', 'baseFrequency', 'baselineShift', 'baseProfile', 'bbox', 'begin', 'bias', 'by', 'calcMode', 'capHeight', 'clip', 'clipPath', 'clipPathUnits', 'clipRule', 'colorInterpolation', 'colorInterpolationFilters', 'colorProfile', 'colorRendering', 'contentScriptType', 'contentStyleType', 'cursor', 'cx', 'cy', 'd', 'decelerate', 'descent', 'diffuseConstant', 'direction', 'display', 'divisor', 'dominantBaseline', 'dur', 'dx', 'dy', 'edgeMode', 'elevation', 'enableBackground', 'end', 'exponent', 'externalResourcesRequired', 'fill', 'fillOpacity', 'fillRule', 'filter', 'filterRes', 'filterUnits', 'floodColor', 'floodOpacity', 'focusable', 'fontFamily', 'fontSize', 'fontSizeAdjust', 'fontStretch', 'fontStyle', 'fontVariant', 'fontWeight', 'format', 'from', 'fx', 'fy', 'g1', 'g2', 'glyphName', 'glyphOrientationHorizontal', 'glyphOrientationVertical', 'glyphRef', 'gradientTransform', 'gradientUnits', 'hanging', 'horizAdvX', 'horizOriginX', 'href', 'ideographic', 'imageRendering', 'in2', 'in', 'intercept', 'k1', 'k2', 'k3', 'k4', 'k', 'kernelMatrix', 'kernelUnitLength', 'kerning', 'keyPoints', 'keySplines', 'keyTimes', 'lengthAdjust', 'letterSpacing', 'lightingColor', 'limitingConeAngle', 'local', 'markerEnd', 'markerHeight', 'markerMid', 'markerStart', 'markerUnits', 'markerWidth', 'mask', 'maskContentUnits', 'maskUnits', 'mathematical', 'mode', 'numOctaves', 'offset', 'opacity', 'operator', 'order', 'orient', 'orientation', 'origin', 'overflow', 'overlinePosition', 'overlineThickness', 'paintOrder', 'panose1', 'pathLength', 'patternContentUnits', 'patternTransform', 'patternUnits', 'pointerEvents', 'pointsAtX', 'pointsAtY', 'pointsAtZ', 'preserveAlpha', 'preserveAspectRatio', 'primitiveUnits', 'r', 'radius', 'refX', 'refY', 'renderingIntent', 'repeatCount', 'repeatDur', 'requiredExtensions', 'requiredFeatures', 'restart', 'result', 'rotate', 'rx', 'ry', 'seed', 'shapeRendering', 'slope', 'spacing', 'specularConstant', 'specularExponent', 'speed', 'spreadMethod', 'startOffset', 'stdDeviation', 'stemh', 'stemv', 'stitchTiles', 'stopColor', 'stopOpacity', 'strikethroughPosition', 'strikethroughThickness', 'string', 'stroke', 'strokeDasharray', 'strokeDashoffset', 'strokeLinecap', 'strokeLinejoin', 'strokeMiterlimit', 'strokeOpacity', 'strokeWidth', 'surfaceScale', 'systemLanguage', 'tableValues', 'targetX', 'targetY', 'textAnchor', 'textDecoration', 'textLength', 'textRendering', 'to', 'transform', 'u1', 'u2', 'underlinePosition', 'underlineThickness', 'unicode', 'unicodeBidi', 'unicodeRange', 'unitsPerEm', 'vAlphabetic', 'values', 'vectorEffect', 'version', 'vertAdvY', 'vertOriginX', 'vertOriginY', 'vHanging', 'vIdeographic', 'viewTarget', 'visibility', 'vMathematical', 'widths', 'wordSpacing', 'writingMode', 'x1', 'x2', 'x', 'xChannelSelector', 'xHeight', 'xlinkActuate', 'xlinkArcrole', 'xlinkHref', 'xlinkRole', 'xlinkShow', 'xlinkTitle', 'xlinkType', 'xmlBase', 'xmlLang', 'xmlns', 'xmlnsXlink', 'xmlSpace', 'y1', 'y2', 'y', 'yChannelSelector', 'z', 'zoomAndPan', 'ref', 'key', 'angle'];\nvar PolyElementKeys = ['points', 'pathLength'];\n\n/** svg element types that have specific attribute filtration requirements */\n\n/** map of svg element types to unique svg attributes that belong to that element */\nexport var FilteredElementKeyMap = {\n svg: SVGContainerPropKeys,\n polygon: PolyElementKeys,\n polyline: PolyElementKeys\n};\nexport var EventKeys = ['dangerouslySetInnerHTML', 'onCopy', 'onCopyCapture', 'onCut', 'onCutCapture', 'onPaste', 'onPasteCapture', 'onCompositionEnd', 'onCompositionEndCapture', 'onCompositionStart', 'onCompositionStartCapture', 'onCompositionUpdate', 'onCompositionUpdateCapture', 'onFocus', 'onFocusCapture', 'onBlur', 'onBlurCapture', 'onChange', 'onChangeCapture', 'onBeforeInput', 'onBeforeInputCapture', 'onInput', 'onInputCapture', 'onReset', 'onResetCapture', 'onSubmit', 'onSubmitCapture', 'onInvalid', 'onInvalidCapture', 'onLoad', 'onLoadCapture', 'onError', 'onErrorCapture', 'onKeyDown', 'onKeyDownCapture', 'onKeyPress', 'onKeyPressCapture', 'onKeyUp', 'onKeyUpCapture', 'onAbort', 'onAbortCapture', 'onCanPlay', 'onCanPlayCapture', 'onCanPlayThrough', 'onCanPlayThroughCapture', 'onDurationChange', 'onDurationChangeCapture', 'onEmptied', 'onEmptiedCapture', 'onEncrypted', 'onEncryptedCapture', 'onEnded', 'onEndedCapture', 'onLoadedData', 'onLoadedDataCapture', 'onLoadedMetadata', 'onLoadedMetadataCapture', 'onLoadStart', 'onLoadStartCapture', 'onPause', 'onPauseCapture', 'onPlay', 'onPlayCapture', 'onPlaying', 'onPlayingCapture', 'onProgress', 'onProgressCapture', 'onRateChange', 'onRateChangeCapture', 'onSeeked', 'onSeekedCapture', 'onSeeking', 'onSeekingCapture', 'onStalled', 'onStalledCapture', 'onSuspend', 'onSuspendCapture', 'onTimeUpdate', 'onTimeUpdateCapture', 'onVolumeChange', 'onVolumeChangeCapture', 'onWaiting', 'onWaitingCapture', 'onAuxClick', 'onAuxClickCapture', 'onClick', 'onClickCapture', 'onContextMenu', 'onContextMenuCapture', 'onDoubleClick', 'onDoubleClickCapture', 'onDrag', 'onDragCapture', 'onDragEnd', 'onDragEndCapture', 'onDragEnter', 'onDragEnterCapture', 'onDragExit', 'onDragExitCapture', 'onDragLeave', 'onDragLeaveCapture', 'onDragOver', 'onDragOverCapture', 'onDragStart', 'onDragStartCapture', 'onDrop', 'onDropCapture', 'onMouseDown', 'onMouseDownCapture', 'onMouseEnter', 'onMouseLeave', 'onMouseMove', 'onMouseMoveCapture', 'onMouseOut', 'onMouseOutCapture', 'onMouseOver', 'onMouseOverCapture', 'onMouseUp', 'onMouseUpCapture', 'onSelect', 'onSelectCapture', 'onTouchCancel', 'onTouchCancelCapture', 'onTouchEnd', 'onTouchEndCapture', 'onTouchMove', 'onTouchMoveCapture', 'onTouchStart', 'onTouchStartCapture', 'onPointerDown', 'onPointerDownCapture', 'onPointerMove', 'onPointerMoveCapture', 'onPointerUp', 'onPointerUpCapture', 'onPointerCancel', 'onPointerCancelCapture', 'onPointerEnter', 'onPointerEnterCapture', 'onPointerLeave', 'onPointerLeaveCapture', 'onPointerOver', 'onPointerOverCapture', 'onPointerOut', 'onPointerOutCapture', 'onGotPointerCapture', 'onGotPointerCaptureCapture', 'onLostPointerCapture', 'onLostPointerCaptureCapture', 'onScroll', 'onScrollCapture', 'onWheel', 'onWheelCapture', 'onAnimationStart', 'onAnimationStartCapture', 'onAnimationEnd', 'onAnimationEndCapture', 'onAnimationIteration', 'onAnimationIterationCapture', 'onTransitionEnd', 'onTransitionEndCapture'];\n\n// Animation Types => TODO: Should be moved when react-smooth is typescriptified.\n\n/** the offset of a chart, which define the blank space all around */\n\n/** The domain of axis */\n\n/** The props definition of base axis */\n\nexport var adaptEventHandlers = function adaptEventHandlers(props, newHandler) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n var inputProps = props;\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n if (!_isObject(inputProps)) {\n return null;\n }\n var out = {};\n Object.keys(inputProps).forEach(function (key) {\n if (EventKeys.includes(key)) {\n out[key] = newHandler || function (e) {\n return inputProps[key](inputProps, e);\n };\n }\n });\n return out;\n};\nvar getEventHandlerOfChild = function getEventHandlerOfChild(originalHandler, data, index) {\n return function (e) {\n originalHandler(data, index, e);\n return null;\n };\n};\nexport var adaptEventsOfChild = function adaptEventsOfChild(props, data, index) {\n if (!_isObject(props) || _typeof(props) !== 'object') {\n return null;\n }\n var out = null;\n Object.keys(props).forEach(function (key) {\n var item = props[key];\n if (EventKeys.includes(key) && typeof item === 'function') {\n if (!out) out = {};\n out[key] = getEventHandlerOfChild(item, data, index);\n }\n });\n return out;\n};","import _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isString from \"lodash/isString\";\nimport _get from \"lodash/get\";\nimport _isNil from \"lodash/isNil\";\nimport _isArray from \"lodash/isArray\";\nvar _excluded = [\"children\"],\n _excluded2 = [\"children\"];\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { Children, isValidElement } from 'react';\nimport { isFragment } from 'react-is';\nimport { isNumber } from './DataUtils';\nimport { shallowEqual } from './ShallowEqual';\nimport { FilteredElementKeyMap, SVGElementPropKeys, EventKeys } from './types';\nvar REACT_BROWSER_EVENT_MAP = {\n click: 'onClick',\n mousedown: 'onMouseDown',\n mouseup: 'onMouseUp',\n mouseover: 'onMouseOver',\n mousemove: 'onMouseMove',\n mouseout: 'onMouseOut',\n mouseenter: 'onMouseEnter',\n mouseleave: 'onMouseLeave',\n touchcancel: 'onTouchCancel',\n touchend: 'onTouchEnd',\n touchmove: 'onTouchMove',\n touchstart: 'onTouchStart'\n};\nexport var SCALE_TYPES = ['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold'];\nexport var LEGEND_TYPES = ['plainline', 'line', 'square', 'rect', 'circle', 'cross', 'diamond', 'star', 'triangle', 'wye', 'none'];\nexport var TOOLTIP_TYPES = ['none'];\n\n/**\n * Get the display name of a component\n * @param {Object} Comp Specified Component\n * @return {String} Display name of Component\n */\nexport var getDisplayName = function getDisplayName(Comp) {\n if (typeof Comp === 'string') {\n return Comp;\n }\n if (!Comp) {\n return '';\n }\n return Comp.displayName || Comp.name || 'Component';\n};\n\n// `toArray` gets called multiple times during the render\n// so we can memoize last invocation (since reference to `children` is the same)\nvar lastChildren = null;\nvar lastResult = null;\nexport var toArray = function toArray(children) {\n if (children === lastChildren && _isArray(lastResult)) {\n return lastResult;\n }\n var result = [];\n Children.forEach(children, function (child) {\n if (_isNil(child)) return;\n if (isFragment(child)) {\n result = result.concat(toArray(child.props.children));\n } else {\n result.push(child);\n }\n });\n lastResult = result;\n lastChildren = children;\n return result;\n};\n\n/*\n * Find and return all matched children by type.\n * `type` must be a React.ComponentType\n */\nexport function findAllByType(children, type) {\n var result = [];\n var types = [];\n if (_isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n toArray(children).forEach(function (child) {\n var childType = _get(child, 'type.displayName') || _get(child, 'type.name');\n if (types.indexOf(childType) !== -1) {\n result.push(child);\n }\n });\n return result;\n}\n\n/*\n * Return the first matched child by type, return null otherwise.\n * `type` must be a React.ComponentType\n */\nexport function findChildByType(children, type) {\n var result = findAllByType(children, type);\n return result && result[0];\n}\n\n/*\n * Create a new array of children excluding the ones matched the type\n */\nexport var withoutType = function withoutType(children, type) {\n var newChildren = [];\n var types;\n if (_isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n toArray(children).forEach(function (child) {\n var displayName = _get(child, 'type.displayName');\n if (displayName && types.indexOf(displayName) !== -1) {\n return;\n }\n newChildren.push(child);\n });\n return newChildren;\n};\n\n/**\n * validate the width and height props of a chart element\n * @param {Object} el A chart element\n * @return {Boolean} true If the props width and height are number, and greater than 0\n */\nexport var validateWidthHeight = function validateWidthHeight(el) {\n if (!el || !el.props) {\n return false;\n }\n var _el$props = el.props,\n width = _el$props.width,\n height = _el$props.height;\n if (!isNumber(width) || width <= 0 || !isNumber(height) || height <= 0) {\n return false;\n }\n return true;\n};\nvar SVG_TAGS = ['a', 'altGlyph', 'altGlyphDef', 'altGlyphItem', 'animate', 'animateColor', 'animateMotion', 'animateTransform', 'circle', 'clipPath', 'color-profile', 'cursor', 'defs', 'desc', 'ellipse', 'feBlend', 'feColormatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence', 'filter', 'font', 'font-face', 'font-face-format', 'font-face-name', 'font-face-url', 'foreignObject', 'g', 'glyph', 'glyphRef', 'hkern', 'image', 'line', 'lineGradient', 'marker', 'mask', 'metadata', 'missing-glyph', 'mpath', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'script', 'set', 'stop', 'style', 'svg', 'switch', 'symbol', 'text', 'textPath', 'title', 'tref', 'tspan', 'use', 'view', 'vkern'];\nvar isSvgElement = function isSvgElement(child) {\n return child && child.type && _isString(child.type) && SVG_TAGS.indexOf(child.type) >= 0;\n};\n\n/**\n * Checks if the property is valid to spread onto an SVG element or onto a specific component\n * @param {unknown} property property value currently being compared\n * @param {string} key property key currently being compared\n * @param {boolean} includeEvents if events are included in spreadable props\n * @param {boolean} svgElementType checks against map of SVG element types to attributes\n * @returns {boolean} is prop valid\n */\nexport var isValidSpreadableProp = function isValidSpreadableProp(property, key, includeEvents, svgElementType) {\n var _FilteredElementKeyMa;\n /**\n * If the svg element type is explicitly included, check against the filtered element key map\n * to determine if there are attributes that should only exist on that element type.\n * @todo Add an internal cjs version of https://github.com/wooorm/svg-element-attributes for full coverage.\n */\n var matchingElementTypeKeys = (_FilteredElementKeyMa = FilteredElementKeyMap === null || FilteredElementKeyMap === void 0 ? void 0 : FilteredElementKeyMap[svgElementType]) !== null && _FilteredElementKeyMa !== void 0 ? _FilteredElementKeyMa : [];\n return !_isFunction(property) && (svgElementType && matchingElementTypeKeys.includes(key) || SVGElementPropKeys.includes(key)) || includeEvents && EventKeys.includes(key);\n};\n\n/**\n * Filter all the svg elements of children\n * @param {Array} children The children of a react element\n * @return {Array} All the svg elements\n */\nexport var filterSvgElements = function filterSvgElements(children) {\n var svgElements = [];\n toArray(children).forEach(function (entry) {\n if (isSvgElement(entry)) {\n svgElements.push(entry);\n }\n });\n return svgElements;\n};\nexport var filterProps = function filterProps(props, includeEvents, svgElementType) {\n if (!props || typeof props === 'function' || typeof props === 'boolean') {\n return null;\n }\n var inputProps = props;\n if ( /*#__PURE__*/isValidElement(props)) {\n inputProps = props.props;\n }\n if (!_isObject(inputProps)) {\n return null;\n }\n var out = {};\n\n /**\n * Props are blindly spread onto SVG elements. This loop filters out properties that we don't want to spread.\n * Items filtered out are as follows:\n * - functions in properties that are SVG attributes (functions are included when includeEvents is true)\n * - props that are SVG attributes but don't matched the passed svgElementType\n * - any prop that is not in SVGElementPropKeys (or in EventKeys if includeEvents is true)\n */\n Object.keys(inputProps).forEach(function (key) {\n var _inputProps;\n if (isValidSpreadableProp((_inputProps = inputProps) === null || _inputProps === void 0 ? void 0 : _inputProps[key], key, includeEvents, svgElementType)) {\n out[key] = inputProps[key];\n }\n });\n return out;\n};\n\n/**\n * Wether props of children changed\n * @param {Object} nextChildren The latest children\n * @param {Object} prevChildren The prev children\n * @return {Boolean} equal or not\n */\nexport var isChildrenEqual = function isChildrenEqual(nextChildren, prevChildren) {\n if (nextChildren === prevChildren) {\n return true;\n }\n var count = Children.count(nextChildren);\n if (count !== Children.count(prevChildren)) {\n return false;\n }\n if (count === 0) {\n return true;\n }\n if (count === 1) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return isSingleChildEqual(_isArray(nextChildren) ? nextChildren[0] : nextChildren, _isArray(prevChildren) ? prevChildren[0] : prevChildren);\n }\n for (var i = 0; i < count; i++) {\n var nextChild = nextChildren[i];\n var prevChild = prevChildren[i];\n if (_isArray(nextChild) || _isArray(prevChild)) {\n if (!isChildrenEqual(nextChild, prevChild)) {\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n } else if (!isSingleChildEqual(nextChild, prevChild)) {\n return false;\n }\n }\n return true;\n};\nexport var isSingleChildEqual = function isSingleChildEqual(nextChild, prevChild) {\n if (_isNil(nextChild) && _isNil(prevChild)) {\n return true;\n }\n if (!_isNil(nextChild) && !_isNil(prevChild)) {\n var _ref = nextChild.props || {},\n nextChildren = _ref.children,\n nextProps = _objectWithoutProperties(_ref, _excluded);\n var _ref2 = prevChild.props || {},\n prevChildren = _ref2.children,\n prevProps = _objectWithoutProperties(_ref2, _excluded2);\n if (nextChildren && prevChildren) {\n return shallowEqual(nextProps, prevProps) && isChildrenEqual(nextChildren, prevChildren);\n }\n if (!nextChildren && !prevChildren) {\n return shallowEqual(nextProps, prevProps);\n }\n return false;\n }\n return false;\n};\nexport var renderByOrder = function renderByOrder(children, renderMap) {\n var elements = [];\n var record = {};\n toArray(children).forEach(function (child, index) {\n if (isSvgElement(child)) {\n elements.push(child);\n } else if (child) {\n var displayName = getDisplayName(child.type);\n var _ref3 = renderMap[displayName] || {},\n handler = _ref3.handler,\n once = _ref3.once;\n if (handler && (!once || !record[displayName])) {\n var results = handler(child, displayName, index);\n elements.push(results);\n record[displayName] = true;\n }\n }\n });\n return elements;\n};\nexport var getReactEventByType = function getReactEventByType(e) {\n var type = e && e.type;\n if (type && REACT_BROWSER_EVENT_MAP[type]) {\n return REACT_BROWSER_EVENT_MAP[type];\n }\n return null;\n};\nexport var parseChildIndex = function parseChildIndex(child, children) {\n return toArray(children).indexOf(child);\n};","var _excluded = [\"children\", \"width\", \"height\", \"viewBox\", \"className\", \"style\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/**\n * @fileOverview Surface\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/ReactUtils';\nexport function Surface(props) {\n var children = props.children,\n width = props.width,\n height = props.height,\n viewBox = props.viewBox,\n className = props.className,\n style = props.style,\n others = _objectWithoutProperties(props, _excluded);\n var svgView = viewBox || {\n width: width,\n height: height,\n x: 0,\n y: 0\n };\n var layerClass = classNames('recharts-surface', className);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({}, filterProps(others, true, 'svg'), {\n className: layerClass,\n width: width,\n height: height,\n style: style,\n viewBox: \"\".concat(svgView.x, \" \").concat(svgView.y, \" \").concat(svgView.width, \" \").concat(svgView.height)\n }), /*#__PURE__*/React.createElement(\"title\", null, props.title), /*#__PURE__*/React.createElement(\"desc\", null, props.desc), children);\n}","var _excluded = [\"children\", \"className\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/**\n * @fileOverview Layer\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/ReactUtils';\nexport var Layer = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var children = props.children,\n className = props.className,\n others = _objectWithoutProperties(props, _excluded);\n var layerClass = classNames('recharts-layer', className);\n return /*#__PURE__*/React.createElement(\"g\", _extends({\n className: layerClass\n }, filterProps(others, true), {\n ref: ref\n }), children);\n});","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","var baseIteratee = require('./_baseIteratee'),\n baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\n","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\n","var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;\n","var createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\n\nfunction appendRound(digits) {\n let d = Math.floor(digits);\n if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\n\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`M${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`M${x0},${y0}`;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._append`L${x0},${y0}`;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n }\n }\n rect(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\n\nexport function path() {\n return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n let digits = 3;\n\n shape.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n\n return () => new Path(digits);\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(line);\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x0, y0, y1) {\n var x1 = null,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(area);\n\n x0 = typeof x0 === \"function\" ? x0 : (x0 === undefined) ? pointX : constant(+x0);\n y0 = typeof y0 === \"function\" ? y0 : (y0 === undefined) ? constant(0) : constant(+y0);\n y1 = typeof y1 === \"function\" ? y1 : (y1 === undefined) ? pointY : constant(+y1);\n\n function area(data) {\n var i,\n j,\n k,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","import {pi, sqrt, tau} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst tan30 = sqrt(1 / 3);\nconst tan30_2 = tan30 * 2;\n\nexport default {\n draw(context, size) {\n const y = sqrt(size / tan30_2);\n const x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const w = sqrt(size);\n const x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","import {sin, cos, sqrt, pi, tau} from \"../math.js\";\n\nconst ka = 0.89081309152928522810;\nconst kr = sin(pi / 10) / sin(7 * pi / 10);\nconst kx = sin(tau / 10) * kr;\nconst ky = -cos(tau / 10) * kr;\n\nexport default {\n draw(context, size) {\n const r = sqrt(size * ka);\n const x = kx * r;\n const y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (let i = 1; i < 5; ++i) {\n const a = tau * i / 5;\n const c = cos(a);\n const s = sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n draw(context, size) {\n const y = -sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst c = -0.5;\nconst s = sqrt(3) / 2;\nconst k = 1 / sqrt(12);\nconst a = (k / 2 + 1) * 3;\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / a);\n const x0 = r / 2, y0 = r * k;\n const x1 = x0, y1 = r * k + r;\n const x2 = -x1, y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n","import constant from \"./constant.js\";\nimport {withPath} from \"./path.js\";\nimport asterisk from \"./symbol/asterisk.js\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport diamond2 from \"./symbol/diamond2.js\";\nimport plus from \"./symbol/plus.js\";\nimport square from \"./symbol/square.js\";\nimport square2 from \"./symbol/square2.js\";\nimport star from \"./symbol/star.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport triangle2 from \"./symbol/triangle2.js\";\nimport wye from \"./symbol/wye.js\";\nimport times from \"./symbol/times.js\";\n\n// These symbols are designed to be filled.\nexport const symbolsFill = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\n// These symbols are designed to be stroked (with a width of 1.5px and round caps).\nexport const symbolsStroke = [\n circle,\n plus,\n times,\n triangle2,\n asterisk,\n square2,\n diamond2\n];\n\nexport default function Symbol(type, size) {\n let context = null,\n path = withPath(symbol);\n\n type = typeof type === \"function\" ? type : constant(type || circle);\n size = typeof size === \"function\" ? size : constant(size === undefined ? 64 : +size);\n\n function symbol() {\n let buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n","export default function() {}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // falls through\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nfunction stackSeries(key) {\n const series = [];\n series.key = key;\n return series;\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var sz = Array.from(keys.apply(this, arguments), stackSeries),\n i, n = sz.length, j = -1,\n oz;\n\n for (const d of data) {\n for (i = 0, ++j; i < n; ++i) {\n (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;\n }\n }\n\n for (i = 0, oz = array(order(sz)); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var j = 0, s0 = series[order[0]], n, m = s0.length; j < m; ++j) {\n for (var i = 0, y = 0; i < n; ++i) y += series[i][j][1] || 0;\n s0[j][1] += s0[j][0] = -y / 2;\n }\n none(series, order);\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0) || !((m = (s0 = series[order[0]]).length) > 0)) return;\n for (var y = 0, j = 1, s0, m, n; j < m; ++j) {\n for (var i = 0, s1 = 0, s2 = 0; i < n; ++i) {\n var si = series[order[i]],\n sij0 = si[j][1] || 0,\n sij1 = si[j - 1][1] || 0,\n s3 = (sij0 - sij1) / 2;\n for (var k = 0; k < i; ++k) {\n var sk = series[order[k]],\n skj0 = sk[j][1] || 0,\n skj1 = sk[j - 1][1] || 0;\n s3 += skj0 - skj1;\n }\n s1 += sij0, s2 += s3 * sij0;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n if (s1) y -= s2 / s1;\n }\n s0[j - 1][1] += s0[j - 1][0] = y;\n none(series, order);\n}\n","import _upperFirst from \"lodash/upperFirst\";\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Curve\n */\nimport React, { PureComponent } from 'react';\nimport { symbol as shapeSymbol, symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye } from 'victory-vendor/d3-shape';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/ReactUtils';\nvar symbolFactories = {\n symbolCircle: symbolCircle,\n symbolCross: symbolCross,\n symbolDiamond: symbolDiamond,\n symbolSquare: symbolSquare,\n symbolStar: symbolStar,\n symbolTriangle: symbolTriangle,\n symbolWye: symbolWye\n};\nvar RADIAN = Math.PI / 180;\nvar getSymbolFactory = function getSymbolFactory(type) {\n var name = \"symbol\".concat(_upperFirst(type));\n return symbolFactories[name] || symbolCircle;\n};\nvar calculateAreaSize = function calculateAreaSize(size, sizeType, type) {\n if (sizeType === 'area') {\n return size;\n }\n switch (type) {\n case 'cross':\n return 5 * size * size / 9;\n case 'diamond':\n return 0.5 * size * size / Math.sqrt(3);\n case 'square':\n return size * size;\n case 'star':\n {\n var angle = 18 * RADIAN;\n return 1.25 * size * size * (Math.tan(angle) - Math.tan(angle * 2) * Math.pow(Math.tan(angle), 2));\n }\n case 'triangle':\n return Math.sqrt(3) * size * size / 4;\n case 'wye':\n return (21 - 10 * Math.sqrt(3)) * size * size / 8;\n default:\n return Math.PI * size * size / 4;\n }\n};\nexport var Symbols = /*#__PURE__*/function (_PureComponent) {\n _inherits(Symbols, _PureComponent);\n var _super = _createSuper(Symbols);\n function Symbols() {\n _classCallCheck(this, Symbols);\n return _super.apply(this, arguments);\n }\n _createClass(Symbols, [{\n key: \"getPath\",\n value:\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n function getPath() {\n var _this$props = this.props,\n size = _this$props.size,\n sizeType = _this$props.sizeType,\n type = _this$props.type;\n var symbolFactory = getSymbolFactory(type);\n var symbol = shapeSymbol().type(symbolFactory).size(calculateAreaSize(size, sizeType, type));\n return symbol();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n cx = _this$props2.cx,\n cy = _this$props2.cy,\n size = _this$props2.size;\n var filteredProps = filterProps(this.props, true);\n if (cx === +cx && cy === +cy && size === +size) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filteredProps, {\n className: classNames('recharts-symbols', className),\n transform: \"translate(\".concat(cx, \", \").concat(cy, \")\"),\n d: this.getPath()\n }));\n }\n return null;\n }\n }]);\n return Symbols;\n}(PureComponent);\n_defineProperty(Symbols, \"defaultProps\", {\n type: 'circle',\n size: 64,\n sizeType: 'area'\n});\n_defineProperty(Symbols, \"registerSymbol\", function (key, factory) {\n symbolFactories[\"symbol\".concat(_upperFirst(key))] = factory;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Default Legend Content\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { Surface } from '../container/Surface';\nimport { Symbols } from '../shape/Symbols';\nimport { adaptEventsOfChild } from '../util/types';\nvar SIZE = 32;\nexport var DefaultLegendContent = /*#__PURE__*/function (_PureComponent) {\n _inherits(DefaultLegendContent, _PureComponent);\n var _super = _createSuper(DefaultLegendContent);\n function DefaultLegendContent() {\n _classCallCheck(this, DefaultLegendContent);\n return _super.apply(this, arguments);\n }\n _createClass(DefaultLegendContent, [{\n key: \"renderIcon\",\n value:\n /**\n * Render the path of icon\n * @param {Object} data Data of each legend item\n * @return {String} Path element\n */\n function renderIcon(data) {\n var inactiveColor = this.props.inactiveColor;\n var halfSize = SIZE / 2;\n var sixthSize = SIZE / 6;\n var thirdSize = SIZE / 3;\n var color = data.inactive ? inactiveColor : data.color;\n if (data.type === 'plainline') {\n return /*#__PURE__*/React.createElement(\"line\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n strokeDasharray: data.payload.strokeDasharray,\n x1: 0,\n y1: halfSize,\n x2: SIZE,\n y2: halfSize,\n className: \"recharts-legend-icon\"\n });\n }\n if (data.type === 'line') {\n return /*#__PURE__*/React.createElement(\"path\", {\n strokeWidth: 4,\n fill: \"none\",\n stroke: color,\n d: \"M0,\".concat(halfSize, \"h\").concat(thirdSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n H\").concat(SIZE, \"M\").concat(2 * thirdSize, \",\").concat(halfSize, \"\\n A\").concat(sixthSize, \",\").concat(sixthSize, \",0,1,1,\").concat(thirdSize, \",\").concat(halfSize),\n className: \"recharts-legend-icon\"\n });\n }\n if (data.type === 'rect') {\n return /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"none\",\n fill: color,\n d: \"M0,\".concat(SIZE / 8, \"h\").concat(SIZE, \"v\").concat(SIZE * 3 / 4, \"h\").concat(-SIZE, \"z\"),\n className: \"recharts-legend-icon\"\n });\n }\n if ( /*#__PURE__*/React.isValidElement(data.legendIcon)) {\n var iconProps = _objectSpread({}, data);\n delete iconProps.legendIcon;\n return /*#__PURE__*/React.cloneElement(data.legendIcon, iconProps);\n }\n return /*#__PURE__*/React.createElement(Symbols, {\n fill: color,\n cx: halfSize,\n cy: halfSize,\n size: SIZE,\n sizeType: \"diameter\",\n type: data.type\n });\n }\n\n /**\n * Draw items of legend\n * @return {ReactElement} Items\n */\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this = this;\n var _this$props = this.props,\n payload = _this$props.payload,\n iconSize = _this$props.iconSize,\n layout = _this$props.layout,\n formatter = _this$props.formatter,\n inactiveColor = _this$props.inactiveColor;\n var viewBox = {\n x: 0,\n y: 0,\n width: SIZE,\n height: SIZE\n };\n var itemStyle = {\n display: layout === 'horizontal' ? 'inline-block' : 'block',\n marginRight: 10\n };\n var svgStyle = {\n display: 'inline-block',\n verticalAlign: 'middle',\n marginRight: 4\n };\n return payload.map(function (entry, i) {\n var _classNames;\n var finalFormatter = entry.formatter || formatter;\n var className = classNames((_classNames = {\n 'recharts-legend-item': true\n }, _defineProperty(_classNames, \"legend-item-\".concat(i), true), _defineProperty(_classNames, \"inactive\", entry.inactive), _classNames));\n if (entry.type === 'none') {\n return null;\n }\n var color = entry.inactive ? inactiveColor : entry.color;\n return /*#__PURE__*/React.createElement(\"li\", _extends({\n className: className,\n style: itemStyle,\n key: \"legend-item-\".concat(i) // eslint-disable-line react/no-array-index-key\n }, adaptEventsOfChild(_this.props, entry, i)), /*#__PURE__*/React.createElement(Surface, {\n width: iconSize,\n height: iconSize,\n viewBox: viewBox,\n style: svgStyle\n }, _this.renderIcon(entry)), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-legend-item-text\",\n style: {\n color: color\n }\n }, finalFormatter ? finalFormatter(entry.value, entry, i) : entry.value));\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n payload = _this$props2.payload,\n layout = _this$props2.layout,\n align = _this$props2.align;\n if (!payload || !payload.length) {\n return null;\n }\n var finalStyle = {\n padding: 0,\n margin: 0,\n textAlign: layout === 'horizontal' ? align : 'left'\n };\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-default-legend\",\n style: finalStyle\n }, this.renderItems());\n }\n }]);\n return DefaultLegendContent;\n}(PureComponent);\n_defineProperty(DefaultLegendContent, \"displayName\", 'Legend');\n_defineProperty(DefaultLegendContent, \"defaultProps\", {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'middle',\n inactiveColor: '#ccc'\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport _isFunction from \"lodash/isFunction\";\nimport _uniqBy from \"lodash/uniqBy\";\nvar _excluded = [\"ref\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/**\n * @fileOverview Legend\n */\nimport React, { PureComponent } from 'react';\nimport { DefaultLegendContent } from './DefaultLegendContent';\nimport { isNumber } from '../util/DataUtils';\nfunction defaultUniqBy(entry) {\n return entry.value;\n}\nfunction getUniqPayload(option, payload) {\n if (option === true) {\n return _uniqBy(payload, defaultUniqBy);\n }\n if (_isFunction(option)) {\n return _uniqBy(payload, option);\n }\n return payload;\n}\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n if (_isFunction(content)) {\n return /*#__PURE__*/React.createElement(content, props);\n }\n var ref = props.ref,\n otherProps = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/React.createElement(DefaultLegendContent, otherProps);\n}\nvar EPS = 1;\nexport var Legend = /*#__PURE__*/function (_PureComponent) {\n _inherits(Legend, _PureComponent);\n var _super = _createSuper(Legend);\n function Legend() {\n var _this;\n _classCallCheck(this, Legend);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n boxWidth: -1,\n boxHeight: -1\n });\n return _this;\n }\n _createClass(Legend, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateBBox();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.updateBBox();\n }\n }, {\n key: \"getBBox\",\n value: function getBBox() {\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n return this.wrapperNode.getBoundingClientRect();\n }\n return null;\n }\n }, {\n key: \"getBBoxSnapshot\",\n value: function getBBoxSnapshot() {\n var _this$state = this.state,\n boxWidth = _this$state.boxWidth,\n boxHeight = _this$state.boxHeight;\n if (boxWidth >= 0 && boxHeight >= 0) {\n return {\n width: boxWidth,\n height: boxHeight\n };\n }\n return null;\n }\n }, {\n key: \"getDefaultPosition\",\n value: function getDefaultPosition(style) {\n var _this$props = this.props,\n layout = _this$props.layout,\n align = _this$props.align,\n verticalAlign = _this$props.verticalAlign,\n margin = _this$props.margin,\n chartWidth = _this$props.chartWidth,\n chartHeight = _this$props.chartHeight;\n var hPos, vPos;\n if (!style || (style.left === undefined || style.left === null) && (style.right === undefined || style.right === null)) {\n if (align === 'center' && layout === 'vertical') {\n var _box = this.getBBoxSnapshot() || {\n width: 0\n };\n hPos = {\n left: ((chartWidth || 0) - _box.width) / 2\n };\n } else {\n hPos = align === 'right' ? {\n right: margin && margin.right || 0\n } : {\n left: margin && margin.left || 0\n };\n }\n }\n if (!style || (style.top === undefined || style.top === null) && (style.bottom === undefined || style.bottom === null)) {\n if (verticalAlign === 'middle') {\n var _box2 = this.getBBoxSnapshot() || {\n height: 0\n };\n vPos = {\n top: ((chartHeight || 0) - _box2.height) / 2\n };\n } else {\n vPos = verticalAlign === 'bottom' ? {\n bottom: margin && margin.bottom || 0\n } : {\n top: margin && margin.top || 0\n };\n }\n }\n return _objectSpread(_objectSpread({}, hPos), vPos);\n }\n }, {\n key: \"updateBBox\",\n value: function updateBBox() {\n var _this$state2 = this.state,\n boxWidth = _this$state2.boxWidth,\n boxHeight = _this$state2.boxHeight;\n var onBBoxUpdate = this.props.onBBoxUpdate;\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var _box3 = this.wrapperNode.getBoundingClientRect();\n if (Math.abs(_box3.width - boxWidth) > EPS || Math.abs(_box3.height - boxHeight) > EPS) {\n this.setState({\n boxWidth: _box3.width,\n boxHeight: _box3.height\n }, function () {\n if (onBBoxUpdate) {\n onBBoxUpdate(_box3);\n }\n });\n }\n } else if (boxWidth !== -1 || boxHeight !== -1) {\n this.setState({\n boxWidth: -1,\n boxHeight: -1\n }, function () {\n if (onBBoxUpdate) {\n onBBoxUpdate(null);\n }\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props2 = this.props,\n content = _this$props2.content,\n width = _this$props2.width,\n height = _this$props2.height,\n wrapperStyle = _this$props2.wrapperStyle,\n payloadUniqBy = _this$props2.payloadUniqBy,\n payload = _this$props2.payload;\n var outerStyle = _objectSpread(_objectSpread({\n position: 'absolute',\n width: width || 'auto',\n height: height || 'auto'\n }, this.getDefaultPosition(wrapperStyle)), wrapperStyle);\n return /*#__PURE__*/React.createElement(\"div\", {\n className: \"recharts-legend-wrapper\",\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread(_objectSpread({}, this.props), {}, {\n payload: getUniqPayload(payloadUniqBy, payload)\n })));\n }\n }], [{\n key: \"getWithHeight\",\n value: function getWithHeight(item, chartWidth) {\n var layout = item.props.layout;\n if (layout === 'vertical' && isNumber(item.props.height)) {\n return {\n height: item.props.height\n };\n }\n if (layout === 'horizontal') {\n return {\n width: item.props.width || chartWidth\n };\n }\n return null;\n }\n }]);\n return Legend;\n}(PureComponent);\n_defineProperty(Legend, \"displayName\", 'Legend');\n_defineProperty(Legend, \"defaultProps\", {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'bottom'\n});","var getOwnPropertyNames = Object.getOwnPropertyNames, getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n/**\n * Combine two comparators into a single comparators.\n */\nfunction combineComparators(comparatorA, comparatorB) {\n return function isEqual(a, b, state) {\n return comparatorA(a, b, state) && comparatorB(a, b, state);\n };\n}\n/**\n * Wrap the provided `areItemsEqual` method to manage the circular state, allowing\n * for circular references to be safely included in the comparison without creating\n * stack overflows.\n */\nfunction createIsCircular(areItemsEqual) {\n return function isCircular(a, b, state) {\n if (!a || !b || typeof a !== 'object' || typeof b !== 'object') {\n return areItemsEqual(a, b, state);\n }\n var cache = state.cache;\n var cachedA = cache.get(a);\n var cachedB = cache.get(b);\n if (cachedA && cachedB) {\n return cachedA === b && cachedB === a;\n }\n cache.set(a, b);\n cache.set(b, a);\n var result = areItemsEqual(a, b, state);\n cache.delete(a);\n cache.delete(b);\n return result;\n };\n}\n/**\n * Get the properties to strictly examine, which include both own properties that are\n * not enumerable and symbol properties.\n */\nfunction getStrictProperties(object) {\n return getOwnPropertyNames(object).concat(getOwnPropertySymbols(object));\n}\n/**\n * Whether the object contains the property passed as an own property.\n */\nvar hasOwn = Object.hasOwn ||\n (function (object, property) {\n return hasOwnProperty.call(object, property);\n });\n/**\n * Whether the values passed are strictly equal or both NaN.\n */\nfunction sameValueZeroEqual(a, b) {\n return a || b ? a === b : a === b || (a !== a && b !== b);\n}\n\nvar OWNER = '_owner';\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor, keys = Object.keys;\n/**\n * Whether the arrays are equal in value.\n */\nfunction areArraysEqual(a, b, state) {\n var index = a.length;\n if (b.length !== index) {\n return false;\n }\n while (index-- > 0) {\n if (!state.equals(a[index], b[index], index, index, a, b, state)) {\n return false;\n }\n }\n return true;\n}\n/**\n * Whether the dates passed are equal in value.\n */\nfunction areDatesEqual(a, b) {\n return sameValueZeroEqual(a.getTime(), b.getTime());\n}\n/**\n * Whether the `Map`s are equal in value.\n */\nfunction areMapsEqual(a, b, state) {\n if (a.size !== b.size) {\n return false;\n }\n var matchedIndices = {};\n var aIterable = a.entries();\n var index = 0;\n var aResult;\n var bResult;\n while ((aResult = aIterable.next())) {\n if (aResult.done) {\n break;\n }\n var bIterable = b.entries();\n var hasMatch = false;\n var matchIndex = 0;\n while ((bResult = bIterable.next())) {\n if (bResult.done) {\n break;\n }\n var _a = aResult.value, aKey = _a[0], aValue = _a[1];\n var _b = bResult.value, bKey = _b[0], bValue = _b[1];\n if (!hasMatch &&\n !matchedIndices[matchIndex] &&\n (hasMatch =\n state.equals(aKey, bKey, index, matchIndex, a, b, state) &&\n state.equals(aValue, bValue, aKey, bKey, a, b, state))) {\n matchedIndices[matchIndex] = true;\n }\n matchIndex++;\n }\n if (!hasMatch) {\n return false;\n }\n index++;\n }\n return true;\n}\n/**\n * Whether the objects are equal in value.\n */\nfunction areObjectsEqual(a, b, state) {\n var properties = keys(a);\n var index = properties.length;\n if (keys(b).length !== index) {\n return false;\n }\n var property;\n // Decrementing `while` showed faster results than either incrementing or\n // decrementing `for` loop and than an incrementing `while` loop. Declarative\n // methods like `some` / `every` were not used to avoid incurring the garbage\n // cost of anonymous callbacks.\n while (index-- > 0) {\n property = properties[index];\n if (property === OWNER &&\n (a.$$typeof || b.$$typeof) &&\n a.$$typeof !== b.$$typeof) {\n return false;\n }\n if (!hasOwn(b, property) ||\n !state.equals(a[property], b[property], property, property, a, b, state)) {\n return false;\n }\n }\n return true;\n}\n/**\n * Whether the objects are equal in value with strict property checking.\n */\nfunction areObjectsEqualStrict(a, b, state) {\n var properties = getStrictProperties(a);\n var index = properties.length;\n if (getStrictProperties(b).length !== index) {\n return false;\n }\n var property;\n var descriptorA;\n var descriptorB;\n // Decrementing `while` showed faster results than either incrementing or\n // decrementing `for` loop and than an incrementing `while` loop. Declarative\n // methods like `some` / `every` were not used to avoid incurring the garbage\n // cost of anonymous callbacks.\n while (index-- > 0) {\n property = properties[index];\n if (property === OWNER &&\n (a.$$typeof || b.$$typeof) &&\n a.$$typeof !== b.$$typeof) {\n return false;\n }\n if (!hasOwn(b, property)) {\n return false;\n }\n if (!state.equals(a[property], b[property], property, property, a, b, state)) {\n return false;\n }\n descriptorA = getOwnPropertyDescriptor(a, property);\n descriptorB = getOwnPropertyDescriptor(b, property);\n if ((descriptorA || descriptorB) &&\n (!descriptorA ||\n !descriptorB ||\n descriptorA.configurable !== descriptorB.configurable ||\n descriptorA.enumerable !== descriptorB.enumerable ||\n descriptorA.writable !== descriptorB.writable)) {\n return false;\n }\n }\n return true;\n}\n/**\n * Whether the primitive wrappers passed are equal in value.\n */\nfunction arePrimitiveWrappersEqual(a, b) {\n return sameValueZeroEqual(a.valueOf(), b.valueOf());\n}\n/**\n * Whether the regexps passed are equal in value.\n */\nfunction areRegExpsEqual(a, b) {\n return a.source === b.source && a.flags === b.flags;\n}\n/**\n * Whether the `Set`s are equal in value.\n */\nfunction areSetsEqual(a, b, state) {\n if (a.size !== b.size) {\n return false;\n }\n var matchedIndices = {};\n var aIterable = a.values();\n var aResult;\n var bResult;\n while ((aResult = aIterable.next())) {\n if (aResult.done) {\n break;\n }\n var bIterable = b.values();\n var hasMatch = false;\n var matchIndex = 0;\n while ((bResult = bIterable.next())) {\n if (bResult.done) {\n break;\n }\n if (!hasMatch &&\n !matchedIndices[matchIndex] &&\n (hasMatch = state.equals(aResult.value, bResult.value, aResult.value, bResult.value, a, b, state))) {\n matchedIndices[matchIndex] = true;\n }\n matchIndex++;\n }\n if (!hasMatch) {\n return false;\n }\n }\n return true;\n}\n/**\n * Whether the TypedArray instances are equal in value.\n */\nfunction areTypedArraysEqual(a, b) {\n var index = a.length;\n if (b.length !== index) {\n return false;\n }\n while (index-- > 0) {\n if (a[index] !== b[index]) {\n return false;\n }\n }\n return true;\n}\n\nvar ARGUMENTS_TAG = '[object Arguments]';\nvar BOOLEAN_TAG = '[object Boolean]';\nvar DATE_TAG = '[object Date]';\nvar MAP_TAG = '[object Map]';\nvar NUMBER_TAG = '[object Number]';\nvar OBJECT_TAG = '[object Object]';\nvar REG_EXP_TAG = '[object RegExp]';\nvar SET_TAG = '[object Set]';\nvar STRING_TAG = '[object String]';\nvar isArray = Array.isArray;\nvar isTypedArray = typeof ArrayBuffer === 'function' && ArrayBuffer.isView\n ? ArrayBuffer.isView\n : null;\nvar assign = Object.assign;\nvar getTag = Object.prototype.toString.call.bind(Object.prototype.toString);\n/**\n * Create a comparator method based on the type-specific equality comparators passed.\n */\nfunction createEqualityComparator(_a) {\n var areArraysEqual = _a.areArraysEqual, areDatesEqual = _a.areDatesEqual, areMapsEqual = _a.areMapsEqual, areObjectsEqual = _a.areObjectsEqual, arePrimitiveWrappersEqual = _a.arePrimitiveWrappersEqual, areRegExpsEqual = _a.areRegExpsEqual, areSetsEqual = _a.areSetsEqual, areTypedArraysEqual = _a.areTypedArraysEqual;\n /**\n * compare the value of the two objects and return true if they are equivalent in values\n */\n return function comparator(a, b, state) {\n // If the items are strictly equal, no need to do a value comparison.\n if (a === b) {\n return true;\n }\n // If the items are not non-nullish objects, then the only possibility\n // of them being equal but not strictly is if they are both `NaN`. Since\n // `NaN` is uniquely not equal to itself, we can use self-comparison of\n // both objects, which is faster than `isNaN()`.\n if (a == null ||\n b == null ||\n typeof a !== 'object' ||\n typeof b !== 'object') {\n return a !== a && b !== b;\n }\n var constructor = a.constructor;\n // Checks are listed in order of commonality of use-case:\n // 1. Common complex object types (plain object, array)\n // 2. Common data values (date, regexp)\n // 3. Less-common complex object types (map, set)\n // 4. Less-common data values (promise, primitive wrappers)\n // Inherently this is both subjective and assumptive, however\n // when reviewing comparable libraries in the wild this order\n // appears to be generally consistent.\n // Constructors should match, otherwise there is potential for false positives\n // between class and subclass or custom object and POJO.\n if (constructor !== b.constructor) {\n return false;\n }\n // `isPlainObject` only checks against the object's own realm. Cross-realm\n // comparisons are rare, and will be handled in the ultimate fallback, so\n // we can avoid capturing the string tag.\n if (constructor === Object) {\n return areObjectsEqual(a, b, state);\n }\n // `isArray()` works on subclasses and is cross-realm, so we can avoid capturing\n // the string tag or doing an `instanceof` check.\n if (isArray(a)) {\n return areArraysEqual(a, b, state);\n }\n // `isTypedArray()` works on all possible TypedArray classes, so we can avoid\n // capturing the string tag or comparing against all possible constructors.\n if (isTypedArray != null && isTypedArray(a)) {\n return areTypedArraysEqual(a, b, state);\n }\n // Try to fast-path equality checks for other complex object types in the\n // same realm to avoid capturing the string tag. Strict equality is used\n // instead of `instanceof` because it is more performant for the common\n // use-case. If someone is subclassing a native class, it will be handled\n // with the string tag comparison.\n if (constructor === Date) {\n return areDatesEqual(a, b, state);\n }\n if (constructor === RegExp) {\n return areRegExpsEqual(a, b, state);\n }\n if (constructor === Map) {\n return areMapsEqual(a, b, state);\n }\n if (constructor === Set) {\n return areSetsEqual(a, b, state);\n }\n // Since this is a custom object, capture the string tag to determing its type.\n // This is reasonably performant in modern environments like v8 and SpiderMonkey.\n var tag = getTag(a);\n if (tag === DATE_TAG) {\n return areDatesEqual(a, b, state);\n }\n if (tag === REG_EXP_TAG) {\n return areRegExpsEqual(a, b, state);\n }\n if (tag === MAP_TAG) {\n return areMapsEqual(a, b, state);\n }\n if (tag === SET_TAG) {\n return areSetsEqual(a, b, state);\n }\n if (tag === OBJECT_TAG) {\n // The exception for value comparison is custom `Promise`-like class instances. These should\n // be treated the same as standard `Promise` objects, which means strict equality, and if\n // it reaches this point then that strict equality comparison has already failed.\n return (typeof a.then !== 'function' &&\n typeof b.then !== 'function' &&\n areObjectsEqual(a, b, state));\n }\n // If an arguments tag, it should be treated as a standard object.\n if (tag === ARGUMENTS_TAG) {\n return areObjectsEqual(a, b, state);\n }\n // As the penultimate fallback, check if the values passed are primitive wrappers. This\n // is very rare in modern JS, which is why it is deprioritized compared to all other object\n // types.\n if (tag === BOOLEAN_TAG || tag === NUMBER_TAG || tag === STRING_TAG) {\n return arePrimitiveWrappersEqual(a, b, state);\n }\n // If not matching any tags that require a specific type of comparison, then we hard-code false because\n // the only thing remaining is strict equality, which has already been compared. This is for a few reasons:\n // - Certain types that cannot be introspected (e.g., `WeakMap`). For these types, this is the only\n // comparison that can be made.\n // - For types that can be introspected, but rarely have requirements to be compared\n // (`ArrayBuffer`, `DataView`, etc.), the cost is avoided to prioritize the common\n // use-cases (may be included in a future release, if requested enough).\n // - For types that can be introspected but do not have an objective definition of what\n // equality is (`Error`, etc.), the subjective decision is to be conservative and strictly compare.\n // In all cases, these decisions should be reevaluated based on changes to the language and\n // common development practices.\n return false;\n };\n}\n/**\n * Create the configuration object used for building comparators.\n */\nfunction createEqualityComparatorConfig(_a) {\n var circular = _a.circular, createCustomConfig = _a.createCustomConfig, strict = _a.strict;\n var config = {\n areArraysEqual: strict\n ? areObjectsEqualStrict\n : areArraysEqual,\n areDatesEqual: areDatesEqual,\n areMapsEqual: strict\n ? combineComparators(areMapsEqual, areObjectsEqualStrict)\n : areMapsEqual,\n areObjectsEqual: strict\n ? areObjectsEqualStrict\n : areObjectsEqual,\n arePrimitiveWrappersEqual: arePrimitiveWrappersEqual,\n areRegExpsEqual: areRegExpsEqual,\n areSetsEqual: strict\n ? combineComparators(areSetsEqual, areObjectsEqualStrict)\n : areSetsEqual,\n areTypedArraysEqual: strict\n ? areObjectsEqualStrict\n : areTypedArraysEqual,\n };\n if (createCustomConfig) {\n config = assign({}, config, createCustomConfig(config));\n }\n if (circular) {\n var areArraysEqual$1 = createIsCircular(config.areArraysEqual);\n var areMapsEqual$1 = createIsCircular(config.areMapsEqual);\n var areObjectsEqual$1 = createIsCircular(config.areObjectsEqual);\n var areSetsEqual$1 = createIsCircular(config.areSetsEqual);\n config = assign({}, config, {\n areArraysEqual: areArraysEqual$1,\n areMapsEqual: areMapsEqual$1,\n areObjectsEqual: areObjectsEqual$1,\n areSetsEqual: areSetsEqual$1,\n });\n }\n return config;\n}\n/**\n * Default equality comparator pass-through, used as the standard `isEqual` creator for\n * use inside the built comparator.\n */\nfunction createInternalEqualityComparator(compare) {\n return function (a, b, _indexOrKeyA, _indexOrKeyB, _parentA, _parentB, state) {\n return compare(a, b, state);\n };\n}\n/**\n * Create the `isEqual` function used by the consuming application.\n */\nfunction createIsEqual(_a) {\n var circular = _a.circular, comparator = _a.comparator, createState = _a.createState, equals = _a.equals, strict = _a.strict;\n if (createState) {\n return function isEqual(a, b) {\n var _a = createState(), _b = _a.cache, cache = _b === void 0 ? circular ? new WeakMap() : undefined : _b, meta = _a.meta;\n return comparator(a, b, {\n cache: cache,\n equals: equals,\n meta: meta,\n strict: strict,\n });\n };\n }\n if (circular) {\n return function isEqual(a, b) {\n return comparator(a, b, {\n cache: new WeakMap(),\n equals: equals,\n meta: undefined,\n strict: strict,\n });\n };\n }\n var state = {\n cache: undefined,\n equals: equals,\n meta: undefined,\n strict: strict,\n };\n return function isEqual(a, b) {\n return comparator(a, b, state);\n };\n}\n\n/**\n * Whether the items passed are deeply-equal in value.\n */\nvar deepEqual = createCustomEqual();\n/**\n * Whether the items passed are deeply-equal in value based on strict comparison.\n */\nvar strictDeepEqual = createCustomEqual({ strict: true });\n/**\n * Whether the items passed are deeply-equal in value, including circular references.\n */\nvar circularDeepEqual = createCustomEqual({ circular: true });\n/**\n * Whether the items passed are deeply-equal in value, including circular references,\n * based on strict comparison.\n */\nvar strictCircularDeepEqual = createCustomEqual({\n circular: true,\n strict: true,\n});\n/**\n * Whether the items passed are shallowly-equal in value.\n */\nvar shallowEqual = createCustomEqual({\n createInternalComparator: function () { return sameValueZeroEqual; },\n});\n/**\n * Whether the items passed are shallowly-equal in value based on strict comparison\n */\nvar strictShallowEqual = createCustomEqual({\n strict: true,\n createInternalComparator: function () { return sameValueZeroEqual; },\n});\n/**\n * Whether the items passed are shallowly-equal in value, including circular references.\n */\nvar circularShallowEqual = createCustomEqual({\n circular: true,\n createInternalComparator: function () { return sameValueZeroEqual; },\n});\n/**\n * Whether the items passed are shallowly-equal in value, including circular references,\n * based on strict comparison.\n */\nvar strictCircularShallowEqual = createCustomEqual({\n circular: true,\n createInternalComparator: function () { return sameValueZeroEqual; },\n strict: true,\n});\n/**\n * Create a custom equality comparison method.\n *\n * This can be done to create very targeted comparisons in extreme hot-path scenarios\n * where the standard methods are not performant enough, but can also be used to provide\n * support for legacy environments that do not support expected features like\n * `RegExp.prototype.flags` out of the box.\n */\nfunction createCustomEqual(options) {\n if (options === void 0) { options = {}; }\n var _a = options.circular, circular = _a === void 0 ? false : _a, createCustomInternalComparator = options.createInternalComparator, createState = options.createState, _b = options.strict, strict = _b === void 0 ? false : _b;\n var config = createEqualityComparatorConfig(options);\n var comparator = createEqualityComparator(config);\n var equals = createCustomInternalComparator\n ? createCustomInternalComparator(comparator)\n : createInternalEqualityComparator(comparator);\n return createIsEqual({ circular: circular, comparator: comparator, createState: createState, equals: equals, strict: strict });\n}\n\nexport { circularDeepEqual, circularShallowEqual, createCustomEqual, deepEqual, sameValueZeroEqual, shallowEqual, strictCircularDeepEqual, strictCircularShallowEqual, strictDeepEqual, strictShallowEqual };\n//# sourceMappingURL=index.mjs.map\n","export default function setRafTimeout(callback) {\n var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var currTime = -1;\n var shouldUpdate = function shouldUpdate(now) {\n if (currTime < 0) {\n currTime = now;\n }\n if (now - currTime > timeout) {\n callback(now);\n currTime = -1;\n } else {\n requestAnimationFrame(shouldUpdate);\n }\n };\n requestAnimationFrame(shouldUpdate);\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport setRafTimeout from './setRafTimeout';\nexport default function createAnimateManager() {\n var currStyle = {};\n var handleChange = function handleChange() {\n return null;\n };\n var shouldStop = false;\n var setStyle = function setStyle(_style) {\n if (shouldStop) {\n return;\n }\n if (Array.isArray(_style)) {\n if (!_style.length) {\n return;\n }\n var styles = _style;\n var _styles = _toArray(styles),\n curr = _styles[0],\n restStyles = _styles.slice(1);\n if (typeof curr === 'number') {\n setRafTimeout(setStyle.bind(null, restStyles), curr);\n return;\n }\n setStyle(curr);\n setRafTimeout(setStyle.bind(null, restStyles));\n return;\n }\n if (_typeof(_style) === 'object') {\n currStyle = _style;\n handleChange(currStyle);\n }\n if (typeof _style === 'function') {\n _style();\n }\n };\n return {\n stop: function stop() {\n shouldStop = true;\n },\n start: function start(style) {\n shouldStop = false;\n setStyle(style);\n },\n subscribe: function subscribe(_handleChange) {\n handleChange = _handleChange;\n return function () {\n handleChange = function handleChange() {\n return null;\n };\n };\n }\n };\n}","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/* eslint no-console: 0 */\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nvar IN_LINE_PREFIX_LIST = ['-webkit-', '-moz-', '-o-', '-ms-'];\nvar IN_COMPATIBLE_PROPERTY = ['transform', 'transformOrigin', 'transition'];\nexport var getIntersectionKeys = function getIntersectionKeys(preObj, nextObj) {\n return [Object.keys(preObj), Object.keys(nextObj)].reduce(function (a, b) {\n return a.filter(function (c) {\n return b.includes(c);\n });\n });\n};\nexport var identity = function identity(param) {\n return param;\n};\n\n/*\n * @description: convert camel case to dash case\n * string => string\n */\nexport var getDashCase = function getDashCase(name) {\n return name.replace(/([A-Z])/g, function (v) {\n return \"-\".concat(v.toLowerCase());\n });\n};\n\n/*\n * @description: add compatible style prefix\n * (string, string) => object\n */\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (IN_COMPATIBLE_PROPERTY.indexOf(name) === -1) {\n return _defineProperty({}, name, Number.isNaN(value) ? 0 : value);\n }\n var isTransition = name === 'transition';\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var styleVal = value;\n return PREFIX_LIST.reduce(function (result, property, i) {\n if (isTransition) {\n styleVal = value.replace(/(transform|transform-origin)/gim, \"\".concat(IN_LINE_PREFIX_LIST[i], \"$1\"));\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, property + camelName, styleVal));\n }, {});\n};\nexport var log = function log() {\n var _console;\n (_console = console).log.apply(_console, arguments);\n};\n\n/*\n * @description: log the value of a varible\n * string => any => any\n */\nexport var debug = function debug(name) {\n return function (item) {\n log(name, item);\n return item;\n };\n};\n\n/*\n * @description: log name, args, return value of a function\n * function => function\n */\nexport var debugf = function debugf(tag, f) {\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var res = f.apply(void 0, args);\n var name = tag || f.name || 'anonymous function';\n var argNames = \"(\".concat(args.map(JSON.stringify).join(', '), \")\");\n log(\"\".concat(name, \": \").concat(argNames, \" => \").concat(JSON.stringify(res)));\n return res;\n };\n};\n\n/*\n * @description: map object on every element in this object.\n * (function, object) => object\n */\nexport var mapObject = function mapObject(fn, obj) {\n return Object.keys(obj).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, fn(key, obj[key])));\n }, {});\n};\n\n/*\n * @description: add compatible prefix to style\n * object => object\n */\nexport var translateStyle = function translateStyle(style) {\n return Object.keys(style).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), generatePrefixStyle(key, res[key]));\n }, style);\n};\nexport var compose = function compose() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (!args.length) {\n return identity;\n }\n var fns = args.reverse();\n // first function can receive multiply arguments\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(void 0, arguments));\n };\n};\nexport var getTransitionVal = function getTransitionVal(props, duration, easing) {\n return props.map(function (prop) {\n return \"\".concat(getDashCase(prop), \" \").concat(duration, \"ms \").concat(easing);\n }).join(',');\n};\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format, a, b, c, d, e, f) {\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { warn } from './util';\nvar ACCURACY = 1e-4;\nvar cubicBezierFactor = function cubicBezierFactor(c1, c2) {\n return [0, 3 * c1, 3 * c2 - 6 * c1, 3 * c1 - 3 * c2 + 1];\n};\nvar multyTime = function multyTime(params, t) {\n return params.map(function (param, i) {\n return param * Math.pow(t, i);\n }).reduce(function (pre, curr) {\n return pre + curr;\n });\n};\nvar cubicBezier = function cubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n return multyTime(params, t);\n };\n};\nvar derivativeCubicBezier = function derivativeCubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n var newParams = [].concat(_toConsumableArray(params.map(function (param, i) {\n return param * i;\n }).slice(1)), [0]);\n return multyTime(newParams, t);\n };\n};\n\n// calculate cubic-bezier using Newton's method\nexport var configBezier = function configBezier() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var x1 = args[0],\n y1 = args[1],\n x2 = args[2],\n y2 = args[3];\n if (args.length === 1) {\n switch (args[0]) {\n case 'linear':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n case 'ease':\n x1 = 0.25;\n y1 = 0.1;\n x2 = 0.25;\n y2 = 1.0;\n break;\n case 'ease-in':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n case 'ease-out':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n case 'ease-in-out':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n default:\n {\n var easing = args[0].split('(');\n if (easing[0] === 'cubic-bezier' && easing[1].split(')')[0].split(',').length === 4) {\n var _easing$1$split$0$spl = easing[1].split(')')[0].split(',').map(function (x) {\n return parseFloat(x);\n });\n var _easing$1$split$0$spl2 = _slicedToArray(_easing$1$split$0$spl, 4);\n x1 = _easing$1$split$0$spl2[0];\n y1 = _easing$1$split$0$spl2[1];\n x2 = _easing$1$split$0$spl2[2];\n y2 = _easing$1$split$0$spl2[3];\n } else {\n warn(false, '[configBezier]: arguments should be one of ' + \"oneOf 'linear', 'ease', 'ease-in', 'ease-out', \" + \"'ease-in-out','cubic-bezier(x1,y1,x2,y2)', instead received %s\", args);\n }\n }\n }\n }\n warn([x1, x2, y1, y2].every(function (num) {\n return typeof num === 'number' && num >= 0 && num <= 1;\n }), '[configBezier]: arguments should be x1, y1, x2, y2 of [0, 1] instead received %s', args);\n var curveX = cubicBezier(x1, x2);\n var curveY = cubicBezier(y1, y2);\n var derCurveX = derivativeCubicBezier(x1, x2);\n var rangeValue = function rangeValue(value) {\n if (value > 1) {\n return 1;\n }\n if (value < 0) {\n return 0;\n }\n return value;\n };\n var bezier = function bezier(_t) {\n var t = _t > 1 ? 1 : _t;\n var x = t;\n for (var i = 0; i < 8; ++i) {\n var evalT = curveX(x) - t;\n var derVal = derCurveX(x);\n if (Math.abs(evalT - t) < ACCURACY || derVal < ACCURACY) {\n return curveY(x);\n }\n x = rangeValue(x - evalT / derVal);\n }\n return curveY(x);\n };\n bezier.isStepper = false;\n return bezier;\n};\nexport var configSpring = function configSpring() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _config$stiff = config.stiff,\n stiff = _config$stiff === void 0 ? 100 : _config$stiff,\n _config$damping = config.damping,\n damping = _config$damping === void 0 ? 8 : _config$damping,\n _config$dt = config.dt,\n dt = _config$dt === void 0 ? 17 : _config$dt;\n var stepper = function stepper(currX, destX, currV) {\n var FSpring = -(currX - destX) * stiff;\n var FDamping = currV * damping;\n var newV = currV + (FSpring - FDamping) * dt / 1000;\n var newX = currV * dt / 1000 + currX;\n if (Math.abs(newX - destX) < ACCURACY && Math.abs(newV) < ACCURACY) {\n return [destX, 0];\n }\n return [newX, newV];\n };\n stepper.isStepper = true;\n stepper.dt = dt;\n return stepper;\n};\nexport var configEasing = function configEasing() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n var easing = args[0];\n if (typeof easing === 'string') {\n switch (easing) {\n case 'ease':\n case 'ease-in-out':\n case 'ease-out':\n case 'ease-in':\n case 'linear':\n return configBezier(easing);\n case 'spring':\n return configSpring();\n default:\n if (easing.split('(')[0] === 'cubic-bezier') {\n return configBezier(easing);\n }\n warn(false, \"[configEasing]: first argument should be one of 'ease', 'ease-in', \" + \"'ease-out', 'ease-in-out','cubic-bezier(x1,y1,x2,y2)', 'linear' and 'spring', instead received %s\", args);\n }\n }\n if (typeof easing === 'function') {\n return easing;\n }\n warn(false, '[configEasing]: first argument type should be function or string, instead received %s', args);\n return null;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport { getIntersectionKeys, mapObject } from './util';\nvar alpha = function alpha(begin, end, k) {\n return begin + (end - begin) * k;\n};\nvar needContinue = function needContinue(_ref) {\n var from = _ref.from,\n to = _ref.to;\n return from !== to;\n};\n\n/*\n * @description: cal new from value and velocity in each stepper\n * @return: { [styleProperty]: { from, to, velocity } }\n */\nvar calStepperVals = function calStepperVals(easing, preVals, steps) {\n var nextStepVals = mapObject(function (key, val) {\n if (needContinue(val)) {\n var _easing = easing(val.from, val.to, val.velocity),\n _easing2 = _slicedToArray(_easing, 2),\n newX = _easing2[0],\n newV = _easing2[1];\n return _objectSpread(_objectSpread({}, val), {}, {\n from: newX,\n velocity: newV\n });\n }\n return val;\n }, preVals);\n if (steps < 1) {\n return mapObject(function (key, val) {\n if (needContinue(val)) {\n return _objectSpread(_objectSpread({}, val), {}, {\n velocity: alpha(val.velocity, nextStepVals[key].velocity, steps),\n from: alpha(val.from, nextStepVals[key].from, steps)\n });\n }\n return val;\n }, preVals);\n }\n return calStepperVals(easing, nextStepVals, steps - 1);\n};\n\n// configure update function\nexport default (function (from, to, easing, duration, render) {\n var interKeys = getIntersectionKeys(from, to);\n var timingStyle = interKeys.reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, [from[key], to[key]]));\n }, {});\n var stepperStyle = interKeys.reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, {\n from: from[key],\n velocity: 0,\n to: to[key]\n }));\n }, {});\n var cafId = -1;\n var preTime;\n var beginTime;\n var update = function update() {\n return null;\n };\n var getCurrStyle = function getCurrStyle() {\n return mapObject(function (key, val) {\n return val.from;\n }, stepperStyle);\n };\n var shouldStopAnimation = function shouldStopAnimation() {\n return !Object.values(stepperStyle).filter(needContinue).length;\n };\n\n // stepper timing function like spring\n var stepperUpdate = function stepperUpdate(now) {\n if (!preTime) {\n preTime = now;\n }\n var deltaTime = now - preTime;\n var steps = deltaTime / easing.dt;\n stepperStyle = calStepperVals(easing, stepperStyle, steps);\n // get union set and add compatible prefix\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), getCurrStyle(stepperStyle)));\n preTime = now;\n if (!shouldStopAnimation()) {\n cafId = requestAnimationFrame(update);\n }\n };\n\n // t => val timing function like cubic-bezier\n var timingUpdate = function timingUpdate(now) {\n if (!beginTime) {\n beginTime = now;\n }\n var t = (now - beginTime) / duration;\n var currStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(t)]));\n }, timingStyle);\n\n // get union set and add compatible prefix\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), currStyle));\n if (t < 1) {\n cafId = requestAnimationFrame(update);\n } else {\n var finalStyle = mapObject(function (key, val) {\n return alpha.apply(void 0, _toConsumableArray(val).concat([easing(1)]));\n }, timingStyle);\n render(_objectSpread(_objectSpread(_objectSpread({}, from), to), finalStyle));\n }\n };\n update = easing.isStepper ? stepperUpdate : timingUpdate;\n\n // return start animation method\n return function () {\n requestAnimationFrame(update);\n\n // return stop animation method\n return function () {\n cancelAnimationFrame(cafId);\n };\n };\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"children\", \"begin\", \"duration\", \"attributeName\", \"easing\", \"isActive\", \"steps\", \"from\", \"to\", \"canBegin\", \"onAnimationEnd\", \"shouldReAnimate\", \"onAnimationReStart\"];\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nimport React, { PureComponent, cloneElement, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport { deepEqual } from 'fast-equals';\nimport createAnimateManager from './AnimateManager';\nimport { configEasing } from './easing';\nimport configUpdate from './configUpdate';\nimport { getTransitionVal, identity, translateStyle } from './util';\nvar Animate = /*#__PURE__*/function (_PureComponent) {\n _inherits(Animate, _PureComponent);\n var _super = _createSuper(Animate);\n function Animate(props, context) {\n var _this;\n _classCallCheck(this, Animate);\n _this = _super.call(this, props, context);\n var _this$props = _this.props,\n isActive = _this$props.isActive,\n attributeName = _this$props.attributeName,\n from = _this$props.from,\n to = _this$props.to,\n steps = _this$props.steps,\n children = _this$props.children,\n duration = _this$props.duration;\n _this.handleStyleChange = _this.handleStyleChange.bind(_assertThisInitialized(_this));\n _this.changeStyle = _this.changeStyle.bind(_assertThisInitialized(_this));\n if (!isActive || duration <= 0) {\n _this.state = {\n style: {}\n };\n\n // if children is a function and animation is not active, set style to 'to'\n if (typeof children === 'function') {\n _this.state = {\n style: to\n };\n }\n return _possibleConstructorReturn(_this);\n }\n if (steps && steps.length) {\n _this.state = {\n style: steps[0].style\n };\n } else if (from) {\n if (typeof children === 'function') {\n _this.state = {\n style: from\n };\n return _possibleConstructorReturn(_this);\n }\n _this.state = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n } else {\n _this.state = {\n style: {}\n };\n }\n return _this;\n }\n _createClass(Animate, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props2 = this.props,\n isActive = _this$props2.isActive,\n canBegin = _this$props2.canBegin;\n this.mounted = true;\n if (!isActive || !canBegin) {\n return;\n }\n this.runAnimation(this.props);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this$props3 = this.props,\n isActive = _this$props3.isActive,\n canBegin = _this$props3.canBegin,\n attributeName = _this$props3.attributeName,\n shouldReAnimate = _this$props3.shouldReAnimate,\n to = _this$props3.to,\n currentFrom = _this$props3.from;\n var style = this.state.style;\n if (!canBegin) {\n return;\n }\n if (!isActive) {\n var newState = {\n style: attributeName ? _defineProperty({}, attributeName, to) : to\n };\n if (this.state && style) {\n if (attributeName && style[attributeName] !== to || !attributeName && style !== to) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(newState);\n }\n }\n return;\n }\n if (deepEqual(prevProps.to, to) && prevProps.canBegin && prevProps.isActive) {\n return;\n }\n var isTriggered = !prevProps.canBegin || !prevProps.isActive;\n if (this.manager) {\n this.manager.stop();\n }\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n var from = isTriggered || shouldReAnimate ? currentFrom : prevProps.to;\n if (this.state && style) {\n var _newState = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n if (attributeName && [attributeName] !== from || !attributeName && style !== from) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(_newState);\n }\n }\n this.runAnimation(_objectSpread(_objectSpread({}, this.props), {}, {\n from: from,\n begin: 0\n }));\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false;\n if (this.unSubscribe) {\n this.unSubscribe();\n }\n if (this.manager) {\n this.manager.stop();\n this.manager = null;\n }\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n }\n }, {\n key: \"handleStyleChange\",\n value: function handleStyleChange(style) {\n this.changeStyle(style);\n }\n }, {\n key: \"changeStyle\",\n value: function changeStyle(style) {\n if (this.mounted) {\n this.setState({\n style: style\n });\n }\n }\n }, {\n key: \"runJSAnimation\",\n value: function runJSAnimation(props) {\n var _this2 = this;\n var from = props.from,\n to = props.to,\n duration = props.duration,\n easing = props.easing,\n begin = props.begin,\n onAnimationEnd = props.onAnimationEnd,\n onAnimationStart = props.onAnimationStart;\n var startAnimation = configUpdate(from, to, configEasing(easing), duration, this.changeStyle);\n var finalStartAnimation = function finalStartAnimation() {\n _this2.stopJSAnimation = startAnimation();\n };\n this.manager.start([onAnimationStart, begin, finalStartAnimation, duration, onAnimationEnd]);\n }\n }, {\n key: \"runStepAnimation\",\n value: function runStepAnimation(props) {\n var _this3 = this;\n var steps = props.steps,\n begin = props.begin,\n onAnimationStart = props.onAnimationStart;\n var _steps$ = steps[0],\n initialStyle = _steps$.style,\n _steps$$duration = _steps$.duration,\n initialTime = _steps$$duration === void 0 ? 0 : _steps$$duration;\n var addStyle = function addStyle(sequence, nextItem, index) {\n if (index === 0) {\n return sequence;\n }\n var duration = nextItem.duration,\n _nextItem$easing = nextItem.easing,\n easing = _nextItem$easing === void 0 ? 'ease' : _nextItem$easing,\n style = nextItem.style,\n nextProperties = nextItem.properties,\n onAnimationEnd = nextItem.onAnimationEnd;\n var preItem = index > 0 ? steps[index - 1] : nextItem;\n var properties = nextProperties || Object.keys(style);\n if (typeof easing === 'function' || easing === 'spring') {\n return [].concat(_toConsumableArray(sequence), [_this3.runJSAnimation.bind(_this3, {\n from: preItem.style,\n to: style,\n duration: duration,\n easing: easing\n }), duration]);\n }\n var transition = getTransitionVal(properties, duration, easing);\n var newStyle = _objectSpread(_objectSpread(_objectSpread({}, preItem.style), style), {}, {\n transition: transition\n });\n return [].concat(_toConsumableArray(sequence), [newStyle, duration, onAnimationEnd]).filter(identity);\n };\n return this.manager.start([onAnimationStart].concat(_toConsumableArray(steps.reduce(addStyle, [initialStyle, Math.max(initialTime, begin)])), [props.onAnimationEnd]));\n }\n }, {\n key: \"runAnimation\",\n value: function runAnimation(props) {\n if (!this.manager) {\n this.manager = createAnimateManager();\n }\n var begin = props.begin,\n duration = props.duration,\n attributeName = props.attributeName,\n propsTo = props.to,\n easing = props.easing,\n onAnimationStart = props.onAnimationStart,\n onAnimationEnd = props.onAnimationEnd,\n steps = props.steps,\n children = props.children;\n var manager = this.manager;\n this.unSubscribe = manager.subscribe(this.handleStyleChange);\n if (typeof easing === 'function' || typeof children === 'function' || easing === 'spring') {\n this.runJSAnimation(props);\n return;\n }\n if (steps.length > 1) {\n this.runStepAnimation(props);\n return;\n }\n var to = attributeName ? _defineProperty({}, attributeName, propsTo) : propsTo;\n var transition = getTransitionVal(Object.keys(to), duration, easing);\n manager.start([onAnimationStart, begin, _objectSpread(_objectSpread({}, to), {}, {\n transition: transition\n }), duration, onAnimationEnd]);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n children = _this$props4.children,\n begin = _this$props4.begin,\n duration = _this$props4.duration,\n attributeName = _this$props4.attributeName,\n easing = _this$props4.easing,\n isActive = _this$props4.isActive,\n steps = _this$props4.steps,\n from = _this$props4.from,\n to = _this$props4.to,\n canBegin = _this$props4.canBegin,\n onAnimationEnd = _this$props4.onAnimationEnd,\n shouldReAnimate = _this$props4.shouldReAnimate,\n onAnimationReStart = _this$props4.onAnimationReStart,\n others = _objectWithoutProperties(_this$props4, _excluded);\n var count = Children.count(children);\n // eslint-disable-next-line react/destructuring-assignment\n var stateStyle = translateStyle(this.state.style);\n if (typeof children === 'function') {\n return children(stateStyle);\n }\n if (!isActive || count === 0 || duration <= 0) {\n return children;\n }\n var cloneContainer = function cloneContainer(container) {\n var _container$props = container.props,\n _container$props$styl = _container$props.style,\n style = _container$props$styl === void 0 ? {} : _container$props$styl,\n className = _container$props.className;\n var res = /*#__PURE__*/cloneElement(container, _objectSpread(_objectSpread({}, others), {}, {\n style: _objectSpread(_objectSpread({}, style), stateStyle),\n className: className\n }));\n return res;\n };\n if (count === 1) {\n return cloneContainer(Children.only(children));\n }\n return /*#__PURE__*/React.createElement(\"div\", null, Children.map(children, function (child) {\n return cloneContainer(child);\n }));\n }\n }]);\n return Animate;\n}(PureComponent);\nAnimate.displayName = 'Animate';\nAnimate.defaultProps = {\n begin: 0,\n duration: 1000,\n from: '',\n to: '',\n attributeName: '',\n easing: 'ease',\n isActive: true,\n canBegin: true,\n steps: [],\n onAnimationEnd: function onAnimationEnd() {},\n onAnimationStart: function onAnimationStart() {}\n};\nAnimate.propTypes = {\n from: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n to: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n attributeName: PropTypes.string,\n // animation duration\n duration: PropTypes.number,\n begin: PropTypes.number,\n easing: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n steps: PropTypes.arrayOf(PropTypes.shape({\n duration: PropTypes.number.isRequired,\n style: PropTypes.object.isRequired,\n easing: PropTypes.oneOfType([PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']), PropTypes.func]),\n // transition css properties(dash case), optional\n properties: PropTypes.arrayOf('string'),\n onAnimationEnd: PropTypes.func\n })),\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n isActive: PropTypes.bool,\n canBegin: PropTypes.bool,\n onAnimationEnd: PropTypes.func,\n // decide if it should reanimate with initial from style when props change\n shouldReAnimate: PropTypes.bool,\n onAnimationStart: PropTypes.func,\n onAnimationReStart: PropTypes.func\n};\nexport default Animate;","var _excluded = [\"children\", \"appearOptions\", \"enterOptions\", \"leaveOptions\"];\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React, { Component, Children } from 'react';\nimport { Transition } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport Animate from './Animate';\nif (Number.isFinite === undefined) {\n Number.isFinite = function (value) {\n return typeof value === 'number' && isFinite(value);\n };\n}\nvar parseDurationOfSingleTransition = function parseDurationOfSingleTransition() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var steps = options.steps,\n duration = options.duration;\n if (steps && steps.length) {\n return steps.reduce(function (result, entry) {\n return result + (Number.isFinite(entry.duration) && entry.duration > 0 ? entry.duration : 0);\n }, 0);\n }\n if (Number.isFinite(duration)) {\n return duration;\n }\n return 0;\n};\nvar AnimateGroupChild = /*#__PURE__*/function (_Component) {\n _inherits(AnimateGroupChild, _Component);\n var _super = _createSuper(AnimateGroupChild);\n function AnimateGroupChild() {\n var _this;\n _classCallCheck(this, AnimateGroupChild);\n _this = _super.call(this);\n _defineProperty(_assertThisInitialized(_this), \"handleEnter\", function (node, isAppearing) {\n var _this$props = _this.props,\n appearOptions = _this$props.appearOptions,\n enterOptions = _this$props.enterOptions;\n _this.handleStyleActive(isAppearing ? appearOptions : enterOptions);\n });\n _defineProperty(_assertThisInitialized(_this), \"handleExit\", function () {\n var leaveOptions = _this.props.leaveOptions;\n _this.handleStyleActive(leaveOptions);\n });\n _this.state = {\n isActive: false\n };\n return _this;\n }\n _createClass(AnimateGroupChild, [{\n key: \"handleStyleActive\",\n value: function handleStyleActive(style) {\n if (style) {\n var onAnimationEnd = style.onAnimationEnd ? function () {\n style.onAnimationEnd();\n } : null;\n this.setState(_objectSpread(_objectSpread({}, style), {}, {\n onAnimationEnd: onAnimationEnd,\n isActive: true\n }));\n }\n }\n }, {\n key: \"parseTimeout\",\n value: function parseTimeout() {\n var _this$props2 = this.props,\n appearOptions = _this$props2.appearOptions,\n enterOptions = _this$props2.enterOptions,\n leaveOptions = _this$props2.leaveOptions;\n return parseDurationOfSingleTransition(appearOptions) + parseDurationOfSingleTransition(enterOptions) + parseDurationOfSingleTransition(leaveOptions);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props3 = this.props,\n children = _this$props3.children,\n appearOptions = _this$props3.appearOptions,\n enterOptions = _this$props3.enterOptions,\n leaveOptions = _this$props3.leaveOptions,\n props = _objectWithoutProperties(_this$props3, _excluded);\n return /*#__PURE__*/React.createElement(Transition, _extends({}, props, {\n onEnter: this.handleEnter,\n onExit: this.handleExit,\n timeout: this.parseTimeout()\n }), function () {\n return /*#__PURE__*/React.createElement(Animate, _this2.state, Children.only(children));\n });\n }\n }]);\n return AnimateGroupChild;\n}(Component);\nAnimateGroupChild.propTypes = {\n appearOptions: PropTypes.object,\n enterOptions: PropTypes.object,\n leaveOptions: PropTypes.object,\n children: PropTypes.element\n};\nexport default AnimateGroupChild;","import React, { Children } from 'react';\nimport { TransitionGroup } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport AnimateGroupChild from './AnimateGroupChild';\nfunction AnimateGroup(props) {\n var component = props.component,\n children = props.children,\n appear = props.appear,\n enter = props.enter,\n leave = props.leave;\n return /*#__PURE__*/React.createElement(TransitionGroup, {\n component: component\n }, Children.map(children, function (child, index) {\n return /*#__PURE__*/React.createElement(AnimateGroupChild, {\n appearOptions: appear,\n enterOptions: enter,\n leaveOptions: leave,\n key: \"child-\".concat(index) // eslint-disable-line\n }, child);\n }));\n}\nAnimateGroup.propTypes = {\n appear: PropTypes.object,\n enter: PropTypes.object,\n leave: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.array, PropTypes.element]),\n component: PropTypes.any\n};\nAnimateGroup.defaultProps = {\n component: 'span'\n};\nexport default AnimateGroup;","import _isNil from \"lodash/isNil\";\nimport _sortBy from \"lodash/sortBy\";\nimport _isArray from \"lodash/isArray\";\n/**\n * @fileOverview Default Tooltip Content\n */\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { isNumOrStr } from '../util/DataUtils';\nfunction defaultFormatter(value) {\n return _isArray(value) && isNumOrStr(value[0]) && isNumOrStr(value[1]) ? value.join(' ~ ') : value;\n}\nexport var DefaultTooltipContent = /*#__PURE__*/function (_PureComponent) {\n _inherits(DefaultTooltipContent, _PureComponent);\n var _super = _createSuper(DefaultTooltipContent);\n function DefaultTooltipContent() {\n _classCallCheck(this, DefaultTooltipContent);\n return _super.apply(this, arguments);\n }\n _createClass(DefaultTooltipContent, [{\n key: \"renderContent\",\n value: function renderContent() {\n var _this$props = this.props,\n payload = _this$props.payload,\n separator = _this$props.separator,\n formatter = _this$props.formatter,\n itemStyle = _this$props.itemStyle,\n itemSorter = _this$props.itemSorter;\n if (payload && payload.length) {\n var listStyle = {\n padding: 0,\n margin: 0\n };\n var items = (itemSorter ? _sortBy(payload, itemSorter) : payload).map(function (entry, i) {\n if (entry.type === 'none') {\n return null;\n }\n var finalItemStyle = _objectSpread({\n display: 'block',\n paddingTop: 4,\n paddingBottom: 4,\n color: entry.color || '#000'\n }, itemStyle);\n var finalFormatter = entry.formatter || formatter || defaultFormatter;\n var value = entry.value,\n name = entry.name;\n if (finalFormatter && value != null && name != null) {\n var formatted = finalFormatter(value, name, entry, i, payload);\n if (Array.isArray(formatted)) {\n var _ref = formatted;\n var _ref2 = _slicedToArray(_ref, 2);\n value = _ref2[0];\n name = _ref2[1];\n } else {\n value = formatted;\n }\n }\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"li\", {\n className: \"recharts-tooltip-item\",\n key: \"tooltip-item-\".concat(i),\n style: finalItemStyle\n }, isNumOrStr(name) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-name\"\n }, name) : null, isNumOrStr(name) ? /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-separator\"\n }, separator) : null, /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-value\"\n }, value), /*#__PURE__*/React.createElement(\"span\", {\n className: \"recharts-tooltip-item-unit\"\n }, entry.unit || ''))\n );\n });\n return /*#__PURE__*/React.createElement(\"ul\", {\n className: \"recharts-tooltip-item-list\",\n style: listStyle\n }, items);\n }\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n wrapperClassName = _this$props2.wrapperClassName,\n contentStyle = _this$props2.contentStyle,\n labelClassName = _this$props2.labelClassName,\n labelStyle = _this$props2.labelStyle,\n label = _this$props2.label,\n labelFormatter = _this$props2.labelFormatter,\n payload = _this$props2.payload;\n var finalStyle = _objectSpread({\n margin: 0,\n padding: 10,\n backgroundColor: '#fff',\n border: '1px solid #ccc',\n whiteSpace: 'nowrap'\n }, contentStyle);\n var finalLabelStyle = _objectSpread({\n margin: 0\n }, labelStyle);\n var hasLabel = !_isNil(label);\n var finalLabel = hasLabel ? label : '';\n var wrapperCN = classNames('recharts-default-tooltip', wrapperClassName);\n var labelCN = classNames('recharts-tooltip-label', labelClassName);\n if (hasLabel && labelFormatter && payload !== undefined && payload !== null) {\n finalLabel = labelFormatter(label, payload);\n }\n return /*#__PURE__*/React.createElement(\"div\", {\n className: wrapperCN,\n style: finalStyle\n }, /*#__PURE__*/React.createElement(\"p\", {\n className: labelCN,\n style: finalLabelStyle\n }, /*#__PURE__*/React.isValidElement(finalLabel) ? finalLabel : \"\".concat(finalLabel)), this.renderContent());\n }\n }]);\n return DefaultTooltipContent;\n}(PureComponent);\n_defineProperty(DefaultTooltipContent, \"displayName\", 'DefaultTooltipContent');\n_defineProperty(DefaultTooltipContent, \"defaultProps\", {\n separator: ' : ',\n contentStyle: {},\n itemStyle: {},\n labelStyle: {}\n});","var parseIsSsrByDefault = function parseIsSsrByDefault() {\n return !(typeof window !== 'undefined' && window.document && window.document.createElement && window.setTimeout);\n};\nexport var Global = {\n isSsr: parseIsSsrByDefault(),\n get: function get(key) {\n return Global[key];\n },\n set: function set(key, value) {\n if (typeof key === 'string') {\n Global[key] = value;\n } else {\n var keys = Object.keys(key);\n if (keys && keys.length) {\n keys.forEach(function (k) {\n Global[k] = key[k];\n });\n }\n }\n }\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport _isNil from \"lodash/isNil\";\nimport _isFunction from \"lodash/isFunction\";\nimport _uniqBy from \"lodash/uniqBy\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n/**\n * @fileOverview Tooltip\n */\nimport React, { useEffect, useState, useRef, useCallback } from 'react';\nimport { translateStyle } from 'react-smooth';\nimport classNames from 'classnames';\nimport { DefaultTooltipContent } from './DefaultTooltipContent';\nimport { Global } from '../util/Global';\nimport { isNumber } from '../util/DataUtils';\nvar CLS_PREFIX = 'recharts-tooltip-wrapper';\nvar EPS = 1;\nfunction defaultUniqBy(entry) {\n return entry.dataKey;\n}\nfunction getUniqPayload(option, payload) {\n if (option === true) {\n return _uniqBy(payload, defaultUniqBy);\n }\n if (_isFunction(option)) {\n return _uniqBy(payload, option);\n }\n return payload;\n}\nfunction renderContent(content, props) {\n if ( /*#__PURE__*/React.isValidElement(content)) {\n return /*#__PURE__*/React.cloneElement(content, props);\n }\n if (_isFunction(content)) {\n return /*#__PURE__*/React.createElement(content, props);\n }\n return /*#__PURE__*/React.createElement(DefaultTooltipContent, props);\n}\nvar tooltipDefaultProps = {\n active: false,\n allowEscapeViewBox: {\n x: false,\n y: false\n },\n reverseDirection: {\n x: false,\n y: false\n },\n offset: 10,\n viewBox: {\n x: 0,\n y: 0,\n height: 0,\n width: 0\n },\n coordinate: {\n x: 0,\n y: 0\n },\n // this doesn't exist on TooltipProps\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n cursorStyle: {},\n separator: ' : ',\n wrapperStyle: {},\n contentStyle: {},\n itemStyle: {},\n labelStyle: {},\n cursor: true,\n trigger: 'hover',\n isAnimationActive: !Global.isSsr,\n animationEasing: 'ease',\n animationDuration: 400,\n filterNull: true,\n useTranslate3d: false\n};\nexport var Tooltip = function Tooltip(props) {\n var _classNames;\n var _useState = useState(-1),\n _useState2 = _slicedToArray(_useState, 2),\n boxWidth = _useState2[0],\n setBoxWidth = _useState2[1];\n var _useState3 = useState(-1),\n _useState4 = _slicedToArray(_useState3, 2),\n boxHeight = _useState4[0],\n setBoxHeight = _useState4[1];\n var _useState5 = useState(false),\n _useState6 = _slicedToArray(_useState5, 2),\n dismissed = _useState6[0],\n setDismissed = _useState6[1];\n var _useState7 = useState({\n x: 0,\n y: 0\n }),\n _useState8 = _slicedToArray(_useState7, 2),\n dismissedAtCoordinate = _useState8[0],\n setDismissedAtCoordinate = _useState8[1];\n var wrapperNode = useRef();\n var allowEscapeViewBox = props.allowEscapeViewBox,\n reverseDirection = props.reverseDirection,\n coordinate = props.coordinate,\n offset = props.offset,\n position = props.position,\n viewBox = props.viewBox;\n var handleKeyDown = useCallback(function (event) {\n if (event.key === 'Escape') {\n setDismissed(true);\n setDismissedAtCoordinate(function (prev) {\n return _objectSpread(_objectSpread({}, prev), {}, {\n x: coordinate === null || coordinate === void 0 ? void 0 : coordinate.x,\n y: coordinate === null || coordinate === void 0 ? void 0 : coordinate.y\n });\n });\n }\n }, [coordinate === null || coordinate === void 0 ? void 0 : coordinate.x, coordinate === null || coordinate === void 0 ? void 0 : coordinate.y]);\n useEffect(function () {\n var updateBBox = function updateBBox() {\n if (dismissed) {\n document.removeEventListener('keydown', handleKeyDown);\n if ((coordinate === null || coordinate === void 0 ? void 0 : coordinate.x) !== dismissedAtCoordinate.x || (coordinate === null || coordinate === void 0 ? void 0 : coordinate.y) !== dismissedAtCoordinate.y) {\n setDismissed(false);\n }\n } else {\n document.addEventListener('keydown', handleKeyDown);\n }\n if (wrapperNode.current && wrapperNode.current.getBoundingClientRect) {\n var box = wrapperNode.current.getBoundingClientRect();\n if (Math.abs(box.width - boxWidth) > EPS || Math.abs(box.height - boxHeight) > EPS) {\n setBoxWidth(box.width);\n setBoxHeight(box.height);\n }\n } else if (boxWidth !== -1 || boxHeight !== -1) {\n setBoxWidth(-1);\n setBoxHeight(-1);\n }\n };\n updateBBox();\n return function () {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [boxHeight, boxWidth, coordinate, dismissed, dismissedAtCoordinate.x, dismissedAtCoordinate.y, handleKeyDown]);\n var getTranslate = function getTranslate(_ref) {\n var key = _ref.key,\n tooltipDimension = _ref.tooltipDimension,\n viewBoxDimension = _ref.viewBoxDimension;\n if (position && isNumber(position[key])) {\n return position[key];\n }\n var negative = coordinate[key] - tooltipDimension - offset;\n var positive = coordinate[key] + offset;\n if (allowEscapeViewBox !== null && allowEscapeViewBox !== void 0 && allowEscapeViewBox[key]) {\n return reverseDirection[key] ? negative : positive;\n }\n if (reverseDirection !== null && reverseDirection !== void 0 && reverseDirection[key]) {\n var _tooltipBoundary = negative;\n var _viewBoxBoundary = viewBox[key];\n if (_tooltipBoundary < _viewBoxBoundary) {\n return Math.max(positive, viewBox[key]);\n }\n return Math.max(negative, viewBox[key]);\n }\n var tooltipBoundary = positive + tooltipDimension;\n var viewBoxBoundary = viewBox[key] + viewBoxDimension;\n if (tooltipBoundary > viewBoxBoundary) {\n return Math.max(negative, viewBox[key]);\n }\n return Math.max(positive, viewBox[key]);\n };\n var payload = props.payload,\n payloadUniqBy = props.payloadUniqBy,\n filterNull = props.filterNull,\n active = props.active,\n wrapperStyle = props.wrapperStyle,\n useTranslate3d = props.useTranslate3d,\n isAnimationActive = props.isAnimationActive,\n animationDuration = props.animationDuration,\n animationEasing = props.animationEasing;\n var finalPayload = getUniqPayload(payloadUniqBy, filterNull && payload && payload.length ? payload.filter(function (entry) {\n return !_isNil(entry.value);\n }) : payload);\n var hasPayload = finalPayload && finalPayload.length;\n var content = props.content;\n var outerStyle = _objectSpread({\n pointerEvents: 'none',\n visibility: !dismissed && active && hasPayload ? 'visible' : 'hidden',\n position: 'absolute',\n top: 0,\n left: 0\n }, wrapperStyle);\n var translateX, translateY;\n if (position && isNumber(position.x) && isNumber(position.y)) {\n translateX = position.x;\n translateY = position.y;\n } else if (boxWidth > 0 && boxHeight > 0 && coordinate) {\n translateX = getTranslate({\n key: 'x',\n tooltipDimension: boxWidth,\n viewBoxDimension: viewBox.width\n });\n translateY = getTranslate({\n key: 'y',\n tooltipDimension: boxHeight,\n viewBoxDimension: viewBox.height\n });\n } else {\n outerStyle.visibility = 'hidden';\n }\n outerStyle = _objectSpread(_objectSpread({}, translateStyle({\n transform: useTranslate3d ? \"translate3d(\".concat(translateX, \"px, \").concat(translateY, \"px, 0)\") : \"translate(\".concat(translateX, \"px, \").concat(translateY, \"px)\")\n })), outerStyle);\n if (isAnimationActive && active) {\n outerStyle = _objectSpread(_objectSpread({}, translateStyle({\n transition: \"transform \".concat(animationDuration, \"ms \").concat(animationEasing)\n })), outerStyle);\n }\n var cls = classNames(CLS_PREFIX, (_classNames = {}, _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-right\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX >= coordinate.x), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-left\"), isNumber(translateX) && coordinate && isNumber(coordinate.x) && translateX < coordinate.x), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-bottom\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY >= coordinate.y), _defineProperty(_classNames, \"\".concat(CLS_PREFIX, \"-top\"), isNumber(translateY) && coordinate && isNumber(coordinate.y) && translateY < coordinate.y), _classNames));\n return (\n /*#__PURE__*/\n // ESLint is disabled to allow listening to the `Escape` key. Refer to\n // https://github.com/recharts/recharts/pull/2925\n // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n React.createElement(\"div\", {\n tabIndex: -1,\n role: \"dialog\",\n className: cls,\n style: outerStyle,\n ref: wrapperNode\n }, renderContent(content, _objectSpread(_objectSpread({}, props), {}, {\n payload: finalPayload\n })))\n );\n};\n\n// needs to be set so that renderByOrder can find the correct handler function\nTooltip.displayName = 'Tooltip';\n\n/**\n * needs to be set so that renderByOrder can access an have default values for\n * children.props when there are no props set by the consumer\n * doesn't work if using default parameters\n */\nTooltip.defaultProps = tooltipDefaultProps;","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","/* eslint no-console: 0 */\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var warn = function warn(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n if (isDev && typeof console !== 'undefined' && console.warn) {\n if (format === undefined) {\n console.warn('LogUtils requires an error message argument');\n }\n if (!condition) {\n if (format === undefined) {\n console.warn('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var argIndex = 0;\n console.warn(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n }\n }\n }\n};","/**\n * @fileOverview Cross\n */\n\nexport var Cell = function Cell(_props) {\n return null;\n};\nCell.displayName = 'Cell';","var openParentheses = \"(\".charCodeAt(0);\nvar closeParentheses = \")\".charCodeAt(0);\nvar singleQuote = \"'\".charCodeAt(0);\nvar doubleQuote = '\"'.charCodeAt(0);\nvar backslash = \"\\\\\".charCodeAt(0);\nvar slash = \"/\".charCodeAt(0);\nvar comma = \",\".charCodeAt(0);\nvar colon = \":\".charCodeAt(0);\nvar star = \"*\".charCodeAt(0);\n\nmodule.exports = function(input) {\n var tokens = [];\n var value = input;\n\n var next, quote, prev, token, escape, escapePos, whitespacePos;\n var pos = 0;\n var code = value.charCodeAt(pos);\n var max = value.length;\n var stack = [{ nodes: tokens }];\n var balanced = 0;\n var parent;\n\n var name = \"\";\n var before = \"\";\n var after = \"\";\n\n while (pos < max) {\n // Whitespaces\n if (code <= 32) {\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n token = value.slice(pos, next);\n\n prev = tokens[tokens.length - 1];\n if (code === closeParentheses && balanced) {\n after = token;\n } else if (prev && prev.type === \"div\") {\n prev.after = token;\n } else if (\n code === comma ||\n code === colon ||\n (code === slash && value.charCodeAt(next + 1) !== star)\n ) {\n before = token;\n } else {\n tokens.push({\n type: \"space\",\n sourceIndex: pos,\n value: token\n });\n }\n\n pos = next;\n\n // Quotes\n } else if (code === singleQuote || code === doubleQuote) {\n next = pos;\n quote = code === singleQuote ? \"'\" : '\"';\n token = {\n type: \"string\",\n sourceIndex: pos,\n quote: quote\n };\n do {\n escape = false;\n next = value.indexOf(quote, next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += quote;\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n token.value = value.slice(pos + 1, next);\n\n tokens.push(token);\n pos = next + 1;\n code = value.charCodeAt(pos);\n\n // Comments\n } else if (code === slash && value.charCodeAt(pos + 1) === star) {\n token = {\n type: \"comment\",\n sourceIndex: pos\n };\n\n next = value.indexOf(\"*/\", pos);\n if (next === -1) {\n token.unclosed = true;\n next = value.length;\n }\n\n token.value = value.slice(pos + 2, next);\n tokens.push(token);\n\n pos = next + 2;\n code = value.charCodeAt(pos);\n\n // Dividers\n } else if (code === slash || code === comma || code === colon) {\n token = value[pos];\n\n tokens.push({\n type: \"div\",\n sourceIndex: pos - before.length,\n value: token,\n before: before,\n after: \"\"\n });\n before = \"\";\n\n pos += 1;\n code = value.charCodeAt(pos);\n\n // Open parentheses\n } else if (openParentheses === code) {\n // Whitespaces after open parentheses\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n token = {\n type: \"function\",\n sourceIndex: pos - name.length,\n value: name,\n before: value.slice(pos + 1, next)\n };\n pos = next;\n\n if (name === \"url\" && code !== singleQuote && code !== doubleQuote) {\n next -= 1;\n do {\n escape = false;\n next = value.indexOf(\")\", next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += \")\";\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n // Whitespaces before closed\n whitespacePos = next;\n do {\n whitespacePos -= 1;\n code = value.charCodeAt(whitespacePos);\n } while (code <= 32);\n if (pos !== whitespacePos + 1) {\n token.nodes = [\n {\n type: \"word\",\n sourceIndex: pos,\n value: value.slice(pos, whitespacePos + 1)\n }\n ];\n } else {\n token.nodes = [];\n }\n if (token.unclosed && whitespacePos + 1 !== next) {\n token.after = \"\";\n token.nodes.push({\n type: \"space\",\n sourceIndex: whitespacePos + 1,\n value: value.slice(whitespacePos + 1, next)\n });\n } else {\n token.after = value.slice(whitespacePos + 1, next);\n }\n pos = next + 1;\n code = value.charCodeAt(pos);\n tokens.push(token);\n } else {\n balanced += 1;\n token.after = \"\";\n tokens.push(token);\n stack.push(token);\n tokens = token.nodes = [];\n parent = token;\n }\n name = \"\";\n\n // Close parentheses\n } else if (closeParentheses === code && balanced) {\n pos += 1;\n code = value.charCodeAt(pos);\n\n parent.after = after;\n after = \"\";\n balanced -= 1;\n stack.pop();\n parent = stack[balanced];\n tokens = parent.nodes;\n\n // Words\n } else {\n next = pos;\n do {\n if (code === backslash) {\n next += 1;\n }\n next += 1;\n code = value.charCodeAt(next);\n } while (\n next < max &&\n !(\n code <= 32 ||\n code === singleQuote ||\n code === doubleQuote ||\n code === comma ||\n code === colon ||\n code === slash ||\n code === openParentheses ||\n (code === closeParentheses && balanced)\n )\n );\n token = value.slice(pos, next);\n\n if (openParentheses === code) {\n name = token;\n } else {\n tokens.push({\n type: \"word\",\n sourceIndex: pos,\n value: token\n });\n }\n\n pos = next;\n }\n }\n\n for (pos = stack.length - 1; pos; pos -= 1) {\n stack[pos].unclosed = true;\n }\n\n return stack[0].nodes;\n};\n","module.exports = function walk(nodes, cb, bubble) {\n var i, max, node, result;\n\n for (i = 0, max = nodes.length; i < max; i += 1) {\n node = nodes[i];\n if (!bubble) {\n result = cb(node, i, nodes);\n }\n\n if (\n result !== false &&\n node.type === \"function\" &&\n Array.isArray(node.nodes)\n ) {\n walk(node.nodes, cb, bubble);\n }\n\n if (bubble) {\n cb(node, i, nodes);\n }\n }\n};\n","function stringifyNode(node, custom) {\n var type = node.type;\n var value = node.value;\n var buf;\n var customResult;\n\n if (custom && (customResult = custom(node)) !== undefined) {\n return customResult;\n } else if (type === \"word\" || type === \"space\") {\n return value;\n } else if (type === \"string\") {\n buf = node.quote || \"\";\n return buf + value + (node.unclosed ? \"\" : buf);\n } else if (type === \"comment\") {\n return \"/*\" + value + (node.unclosed ? \"\" : \"*/\");\n } else if (type === \"div\") {\n return (node.before || \"\") + value + (node.after || \"\");\n } else if (Array.isArray(node.nodes)) {\n buf = stringify(node.nodes);\n if (type !== \"function\") {\n return buf;\n }\n return (\n value +\n \"(\" +\n (node.before || \"\") +\n buf +\n (node.after || \"\") +\n (node.unclosed ? \"\" : \")\")\n );\n }\n return value;\n}\n\nfunction stringify(nodes, custom) {\n var result, i;\n\n if (Array.isArray(nodes)) {\n result = \"\";\n for (i = nodes.length - 1; ~i; i -= 1) {\n result = stringifyNode(nodes[i], custom) + result;\n }\n return result;\n }\n return stringifyNode(nodes, custom);\n}\n\nmodule.exports = stringify;\n","var minus = \"-\".charCodeAt(0);\nvar plus = \"+\".charCodeAt(0);\nvar dot = \".\".charCodeAt(0);\nvar exp = \"e\".charCodeAt(0);\nvar EXP = \"E\".charCodeAt(0);\n\nmodule.exports = function(value) {\n var pos = 0;\n var length = value.length;\n var dotted = false;\n var sciPos = -1;\n var containsNumber = false;\n var code;\n\n while (pos < length) {\n code = value.charCodeAt(pos);\n\n if (code >= 48 && code <= 57) {\n containsNumber = true;\n } else if (code === exp || code === EXP) {\n if (sciPos > -1) {\n break;\n }\n sciPos = pos;\n } else if (code === dot) {\n if (dotted) {\n break;\n }\n dotted = true;\n } else if (code === plus || code === minus) {\n if (pos !== 0) {\n break;\n }\n } else {\n break;\n }\n\n pos += 1;\n }\n\n if (sciPos + 1 === pos) pos--;\n\n return containsNumber\n ? {\n number: value.slice(0, pos),\n unit: value.slice(pos)\n }\n : false;\n};\n","var parse = require(\"./parse\");\nvar walk = require(\"./walk\");\nvar stringify = require(\"./stringify\");\n\nfunction ValueParser(value) {\n if (this instanceof ValueParser) {\n this.nodes = parse(value);\n return this;\n }\n return new ValueParser(value);\n}\n\nValueParser.prototype.toString = function() {\n return Array.isArray(this.nodes) ? stringify(this.nodes) : \"\";\n};\n\nValueParser.prototype.walk = function(cb, bubble) {\n walk(this.nodes, cb, bubble);\n return this;\n};\n\nValueParser.unit = require(\"./unit\");\n\nValueParser.walk = walk;\n\nValueParser.stringify = stringify;\n\nmodule.exports = ValueParser;\n","\n/* parser generated by jison 0.6.1-215 */\n\n/*\n * Returns a Parser object of the following structure:\n *\n * Parser: {\n * yy: {} The so-called \"shared state\" or rather the *source* of it;\n * the real \"shared state\" `yy` passed around to\n * the rule actions, etc. is a derivative/copy of this one,\n * not a direct reference!\n * }\n *\n * Parser.prototype: {\n * yy: {},\n * EOF: 1,\n * TERROR: 2,\n *\n * trace: function(errorMessage, ...),\n *\n * JisonParserError: function(msg, hash),\n *\n * quoteName: function(name),\n * Helper function which can be overridden by user code later on: put suitable\n * quotes around literal IDs in a description string.\n *\n * originalQuoteName: function(name),\n * The basic quoteName handler provided by JISON.\n * `cleanupAfterParse()` will clean up and reset `quoteName()` to reference this function\n * at the end of the `parse()`.\n *\n * describeSymbol: function(symbol),\n * Return a more-or-less human-readable description of the given symbol, when\n * available, or the symbol itself, serving as its own 'description' for lack\n * of something better to serve up.\n *\n * Return NULL when the symbol is unknown to the parser.\n *\n * symbols_: {associative list: name ==> number},\n * terminals_: {associative list: number ==> name},\n * nonterminals: {associative list: rule-name ==> {associative list: number ==> rule-alt}},\n * terminal_descriptions_: (if there are any) {associative list: number ==> description},\n * productions_: [...],\n *\n * performAction: function parser__performAction(yytext, yyleng, yylineno, yyloc, yystate, yysp, yyvstack, yylstack, yystack, yysstack),\n *\n * The function parameters and `this` have the following value/meaning:\n * - `this` : reference to the `yyval` internal object, which has members (`$` and `_$`)\n * to store/reference the rule value `$$` and location info `@$`.\n *\n * One important thing to note about `this` a.k.a. `yyval`: every *reduce* action gets\n * to see the same object via the `this` reference, i.e. if you wish to carry custom\n * data from one reduce action through to the next within a single parse run, then you\n * may get nasty and use `yyval` a.k.a. `this` for storing you own semi-permanent data.\n *\n * `this.yy` is a direct reference to the `yy` shared state object.\n *\n * `%parse-param`-specified additional `parse()` arguments have been added to this `yy`\n * object at `parse()` start and are therefore available to the action code via the\n * same named `yy.xxxx` attributes (where `xxxx` represents a identifier name from\n * the %parse-param` list.\n *\n * - `yytext` : reference to the lexer value which belongs to the last lexer token used\n * to match this rule. This is *not* the look-ahead token, but the last token\n * that's actually part of this rule.\n *\n * Formulated another way, `yytext` is the value of the token immediately preceeding\n * the current look-ahead token.\n * Caveats apply for rules which don't require look-ahead, such as epsilon rules.\n *\n * - `yyleng` : ditto as `yytext`, only now for the lexer.yyleng value.\n *\n * - `yylineno`: ditto as `yytext`, only now for the lexer.yylineno value.\n *\n * - `yyloc` : ditto as `yytext`, only now for the lexer.yylloc lexer token location info.\n *\n * WARNING: since jison 0.4.18-186 this entry may be NULL/UNDEFINED instead\n * of an empty object when no suitable location info can be provided.\n *\n * - `yystate` : the current parser state number, used internally for dispatching and\n * executing the action code chunk matching the rule currently being reduced.\n *\n * - `yysp` : the current state stack position (a.k.a. 'stack pointer')\n *\n * This one comes in handy when you are going to do advanced things to the parser\n * stacks, all of which are accessible from your action code (see the next entries below).\n *\n * Also note that you can access this and other stack index values using the new double-hash\n * syntax, i.e. `##$ === ##0 === yysp`, while `##1` is the stack index for all things\n * related to the first rule term, just like you have `$1`, `@1` and `#1`.\n * This is made available to write very advanced grammar action rules, e.g. when you want\n * to investigate the parse state stack in your action code, which would, for example,\n * be relevant when you wish to implement error diagnostics and reporting schemes similar\n * to the work described here:\n *\n * + Pottier, F., 2016. Reachability and error diagnosis in LR(1) automata.\n * In Journées Francophones des Languages Applicatifs.\n *\n * + Jeffery, C.L., 2003. Generating LR syntax error messages from examples.\n * ACM Transactions on Programming Languages and Systems (TOPLAS), 25(5), pp.631–640.\n *\n * - `yyrulelength`: the current rule's term count, i.e. the number of entries occupied on the stack.\n *\n * This one comes in handy when you are going to do advanced things to the parser\n * stacks, all of which are accessible from your action code (see the next entries below).\n *\n * - `yyvstack`: reference to the parser value stack. Also accessed via the `$1` etc.\n * constructs.\n *\n * - `yylstack`: reference to the parser token location stack. Also accessed via\n * the `@1` etc. constructs.\n *\n * WARNING: since jison 0.4.18-186 this array MAY contain slots which are\n * UNDEFINED rather than an empty (location) object, when the lexer/parser\n * action code did not provide a suitable location info object when such a\n * slot was filled!\n *\n * - `yystack` : reference to the parser token id stack. Also accessed via the\n * `#1` etc. constructs.\n *\n * Note: this is a bit of a **white lie** as we can statically decode any `#n` reference to\n * its numeric token id value, hence that code wouldn't need the `yystack` but *you* might\n * want access this array for your own purposes, such as error analysis as mentioned above!\n *\n * Note that this stack stores the current stack of *tokens*, that is the sequence of\n * already parsed=reduced *nonterminals* (tokens representing rules) and *terminals*\n * (lexer tokens *shifted* onto the stack until the rule they belong to is found and\n * *reduced*.\n *\n * - `yysstack`: reference to the parser state stack. This one carries the internal parser\n * *states* such as the one in `yystate`, which are used to represent\n * the parser state machine in the *parse table*. *Very* *internal* stuff,\n * what can I say? If you access this one, you're clearly doing wicked things\n *\n * - `...` : the extra arguments you specified in the `%parse-param` statement in your\n * grammar definition file.\n *\n * table: [...],\n * State transition table\n * ----------------------\n *\n * index levels are:\n * - `state` --> hash table\n * - `symbol` --> action (number or array)\n *\n * If the `action` is an array, these are the elements' meaning:\n * - index [0]: 1 = shift, 2 = reduce, 3 = accept\n * - index [1]: GOTO `state`\n *\n * If the `action` is a number, it is the GOTO `state`\n *\n * defaultActions: {...},\n *\n * parseError: function(str, hash, ExceptionClass),\n * yyError: function(str, ...),\n * yyRecovering: function(),\n * yyErrOk: function(),\n * yyClearIn: function(),\n *\n * constructParseErrorInfo: function(error_message, exception_object, expected_token_set, is_recoverable),\n * Helper function **which will be set up during the first invocation of the `parse()` method**.\n * Produces a new errorInfo 'hash object' which can be passed into `parseError()`.\n * See it's use in this parser kernel in many places; example usage:\n *\n * var infoObj = parser.constructParseErrorInfo('fail!', null,\n * parser.collect_expected_token_set(state), true);\n * var retVal = parser.parseError(infoObj.errStr, infoObj, parser.JisonParserError);\n *\n * originalParseError: function(str, hash, ExceptionClass),\n * The basic `parseError` handler provided by JISON.\n * `cleanupAfterParse()` will clean up and reset `parseError()` to reference this function\n * at the end of the `parse()`.\n *\n * options: { ... parser %options ... },\n *\n * parse: function(input[, args...]),\n * Parse the given `input` and return the parsed value (or `true` when none was provided by\n * the root action, in which case the parser is acting as a *matcher*).\n * You MAY use the additional `args...` parameters as per `%parse-param` spec of this grammar:\n * these extra `args...` are added verbatim to the `yy` object reference as member variables.\n *\n * WARNING:\n * Parser's additional `args...` parameters (via `%parse-param`) MAY conflict with\n * any attributes already added to `yy` by the jison run-time;\n * when such a collision is detected an exception is thrown to prevent the generated run-time\n * from silently accepting this confusing and potentially hazardous situation!\n *\n * The lexer MAY add its own set of additional parameters (via the `%parse-param` line in\n * the lexer section of the grammar spec): these will be inserted in the `yy` shared state\n * object and any collision with those will be reported by the lexer via a thrown exception.\n *\n * cleanupAfterParse: function(resultValue, invoke_post_methods, do_not_nuke_errorinfos),\n * Helper function **which will be set up during the first invocation of the `parse()` method**.\n * This helper API is invoked at the end of the `parse()` call, unless an exception was thrown\n * and `%options no-try-catch` has been defined for this grammar: in that case this helper MAY\n * be invoked by calling user code to ensure the `post_parse` callbacks are invoked and\n * the internal parser gets properly garbage collected under these particular circumstances.\n *\n * yyMergeLocationInfo: function(first_index, last_index, first_yylloc, last_yylloc, dont_look_back),\n * Helper function **which will be set up during the first invocation of the `parse()` method**.\n * This helper API can be invoked to calculate a spanning `yylloc` location info object.\n *\n * Note: %epsilon rules MAY specify no `first_index` and `first_yylloc`, in which case\n * this function will attempt to obtain a suitable location marker by inspecting the location stack\n * backwards.\n *\n * For more info see the documentation comment further below, immediately above this function's\n * implementation.\n *\n * lexer: {\n * yy: {...}, A reference to the so-called \"shared state\" `yy` once\n * received via a call to the `.setInput(input, yy)` lexer API.\n * EOF: 1,\n * ERROR: 2,\n * JisonLexerError: function(msg, hash),\n * parseError: function(str, hash, ExceptionClass),\n * setInput: function(input, [yy]),\n * input: function(),\n * unput: function(str),\n * more: function(),\n * reject: function(),\n * less: function(n),\n * pastInput: function(n),\n * upcomingInput: function(n),\n * showPosition: function(),\n * test_match: function(regex_match_array, rule_index, ...),\n * next: function(...),\n * lex: function(...),\n * begin: function(condition),\n * pushState: function(condition),\n * popState: function(),\n * topState: function(),\n * _currentRules: function(),\n * stateStackSize: function(),\n * cleanupAfterLex: function()\n *\n * options: { ... lexer %options ... },\n *\n * performAction: function(yy, yy_, $avoiding_name_collisions, YY_START, ...),\n * rules: [...],\n * conditions: {associative list: name ==> set},\n * }\n * }\n *\n *\n * token location info (@$, _$, etc.): {\n * first_line: n,\n * last_line: n,\n * first_column: n,\n * last_column: n,\n * range: [start_number, end_number]\n * (where the numbers are indexes into the input string, zero-based)\n * }\n *\n * ---\n *\n * The `parseError` function receives a 'hash' object with these members for lexer and\n * parser errors:\n *\n * {\n * text: (matched text)\n * token: (the produced terminal token, if any)\n * token_id: (the produced terminal token numeric ID, if any)\n * line: (yylineno)\n * loc: (yylloc)\n * }\n *\n * parser (grammar) errors will also provide these additional members:\n *\n * {\n * expected: (array describing the set of expected tokens;\n * may be UNDEFINED when we cannot easily produce such a set)\n * state: (integer (or array when the table includes grammar collisions);\n * represents the current internal state of the parser kernel.\n * can, for example, be used to pass to the `collect_expected_token_set()`\n * API to obtain the expected token set)\n * action: (integer; represents the current internal action which will be executed)\n * new_state: (integer; represents the next/planned internal state, once the current\n * action has executed)\n * recoverable: (boolean: TRUE when the parser MAY have an error recovery rule\n * available for this particular error)\n * state_stack: (array: the current parser LALR/LR internal state stack; this can be used,\n * for instance, for advanced error analysis and reporting)\n * value_stack: (array: the current parser LALR/LR internal `$$` value stack; this can be used,\n * for instance, for advanced error analysis and reporting)\n * location_stack: (array: the current parser LALR/LR internal location stack; this can be used,\n * for instance, for advanced error analysis and reporting)\n * yy: (object: the current parser internal \"shared state\" `yy`\n * as is also available in the rule actions; this can be used,\n * for instance, for advanced error analysis and reporting)\n * lexer: (reference to the current lexer instance used by the parser)\n * parser: (reference to the current parser instance)\n * }\n *\n * while `this` will reference the current parser instance.\n *\n * When `parseError` is invoked by the lexer, `this` will still reference the related *parser*\n * instance, while these additional `hash` fields will also be provided:\n *\n * {\n * lexer: (reference to the current lexer instance which reported the error)\n * }\n *\n * When `parseError` is invoked by the parser due to a **JavaScript exception** being fired\n * from either the parser or lexer, `this` will still reference the related *parser*\n * instance, while these additional `hash` fields will also be provided:\n *\n * {\n * exception: (reference to the exception thrown)\n * }\n *\n * Please do note that in the latter situation, the `expected` field will be omitted as\n * this type of failure is assumed not to be due to *parse errors* but rather due to user\n * action code in either parser or lexer failing unexpectedly.\n *\n * ---\n *\n * You can specify parser options by setting / modifying the `.yy` object of your Parser instance.\n * These options are available:\n *\n * ### options which are global for all parser instances\n *\n * Parser.pre_parse: function(yy)\n * optional: you can specify a pre_parse() function in the chunk following\n * the grammar, i.e. after the last `%%`.\n * Parser.post_parse: function(yy, retval, parseInfo) { return retval; }\n * optional: you can specify a post_parse() function in the chunk following\n * the grammar, i.e. after the last `%%`. When it does not return any value,\n * the parser will return the original `retval`.\n *\n * ### options which can be set up per parser instance\n *\n * yy: {\n * pre_parse: function(yy)\n * optional: is invoked before the parse cycle starts (and before the first\n * invocation of `lex()`) but immediately after the invocation of\n * `parser.pre_parse()`).\n * post_parse: function(yy, retval, parseInfo) { return retval; }\n * optional: is invoked when the parse terminates due to success ('accept')\n * or failure (even when exceptions are thrown).\n * `retval` contains the return value to be produced by `Parser.parse()`;\n * this function can override the return value by returning another.\n * When it does not return any value, the parser will return the original\n * `retval`.\n * This function is invoked immediately before `parser.post_parse()`.\n *\n * parseError: function(str, hash, ExceptionClass)\n * optional: overrides the default `parseError` function.\n * quoteName: function(name),\n * optional: overrides the default `quoteName` function.\n * }\n *\n * parser.lexer.options: {\n * pre_lex: function()\n * optional: is invoked before the lexer is invoked to produce another token.\n * `this` refers to the Lexer object.\n * post_lex: function(token) { return token; }\n * optional: is invoked when the lexer has produced a token `token`;\n * this function can override the returned token value by returning another.\n * When it does not return any (truthy) value, the lexer will return\n * the original `token`.\n * `this` refers to the Lexer object.\n *\n * ranges: boolean\n * optional: `true` ==> token location info will include a .range[] member.\n * flex: boolean\n * optional: `true` ==> flex-like lexing behaviour where the rules are tested\n * exhaustively to find the longest match.\n * backtrack_lexer: boolean\n * optional: `true` ==> lexer regexes are tested in order and for invoked;\n * the lexer terminates the scan when a token is returned by the action code.\n * xregexp: boolean\n * optional: `true` ==> lexer rule regexes are \"extended regex format\" requiring the\n * `XRegExp` library. When this `%option` has not been specified at compile time, all lexer\n * rule regexes have been written as standard JavaScript RegExp expressions.\n * }\n */\n\n \n \n var parser = (function () {\n\n\n// See also:\n// http://stackoverflow.com/questions/1382107/whats-a-good-way-to-extend-error-in-javascript/#35881508\n// but we keep the prototype.constructor and prototype.name assignment lines too for compatibility\n// with userland code which might access the derived class in a 'classic' way.\nfunction JisonParserError(msg, hash) {\n Object.defineProperty(this, 'name', {\n enumerable: false,\n writable: false,\n value: 'JisonParserError'\n });\n\n if (msg == null) msg = '???';\n\n Object.defineProperty(this, 'message', {\n enumerable: false,\n writable: true,\n value: msg\n });\n\n this.hash = hash;\n\n var stacktrace;\n if (hash && hash.exception instanceof Error) {\n var ex2 = hash.exception;\n this.message = ex2.message || msg;\n stacktrace = ex2.stack;\n }\n if (!stacktrace) {\n if (Error.hasOwnProperty('captureStackTrace')) { // V8/Chrome engine\n Error.captureStackTrace(this, this.constructor);\n } else {\n stacktrace = (new Error(msg)).stack;\n }\n }\n if (stacktrace) {\n Object.defineProperty(this, 'stack', {\n enumerable: false,\n writable: false,\n value: stacktrace\n });\n }\n}\n\nif (typeof Object.setPrototypeOf === 'function') {\n Object.setPrototypeOf(JisonParserError.prototype, Error.prototype);\n} else {\n JisonParserError.prototype = Object.create(Error.prototype);\n}\nJisonParserError.prototype.constructor = JisonParserError;\nJisonParserError.prototype.name = 'JisonParserError';\n\n\n\n\n // helper: reconstruct the productions[] table\n function bp(s) {\n var rv = [];\n var p = s.pop;\n var r = s.rule;\n for (var i = 0, l = p.length; i < l; i++) {\n rv.push([\n p[i],\n r[i]\n ]);\n }\n return rv;\n }\n \n\n\n // helper: reconstruct the defaultActions[] table\n function bda(s) {\n var rv = {};\n var d = s.idx;\n var g = s.goto;\n for (var i = 0, l = d.length; i < l; i++) {\n var j = d[i];\n rv[j] = g[i];\n }\n return rv;\n }\n \n\n\n // helper: reconstruct the 'goto' table\n function bt(s) {\n var rv = [];\n var d = s.len;\n var y = s.symbol;\n var t = s.type;\n var a = s.state;\n var m = s.mode;\n var g = s.goto;\n for (var i = 0, l = d.length; i < l; i++) {\n var n = d[i];\n var q = {};\n for (var j = 0; j < n; j++) {\n var z = y.shift();\n switch (t.shift()) {\n case 2:\n q[z] = [\n m.shift(),\n g.shift()\n ];\n break;\n\n case 0:\n q[z] = a.shift();\n break;\n\n default:\n // type === 1: accept\n q[z] = [\n 3\n ];\n }\n }\n rv.push(q);\n }\n return rv;\n }\n \n\n\n // helper: runlength encoding with increment step: code, length: step (default step = 0)\n // `this` references an array\n function s(c, l, a) {\n a = a || 0;\n for (var i = 0; i < l; i++) {\n this.push(c);\n c += a;\n }\n }\n\n // helper: duplicate sequence from *relative* offset and length.\n // `this` references an array\n function c(i, l) {\n i = this.length - i;\n for (l += i; i < l; i++) {\n this.push(this[i]);\n }\n }\n\n // helper: unpack an array using helpers and data, all passed in an array argument 'a'.\n function u(a) {\n var rv = [];\n for (var i = 0, l = a.length; i < l; i++) {\n var e = a[i];\n // Is this entry a helper function?\n if (typeof e === 'function') {\n i++;\n e.apply(rv, a[i]);\n } else {\n rv.push(e);\n }\n }\n return rv;\n }\n \n\nvar parser = {\n // Code Generator Information Report\n // ---------------------------------\n //\n // Options:\n //\n // default action mode: ............. [\"classic\",\"merge\"]\n // test-compile action mode: ........ \"parser:*,lexer:*\"\n // try..catch: ...................... true\n // default resolve on conflict: ..... true\n // on-demand look-ahead: ............ false\n // error recovery token skip maximum: 3\n // yyerror in parse actions is: ..... NOT recoverable,\n // yyerror in lexer actions and other non-fatal lexer are:\n // .................................. NOT recoverable,\n // debug grammar/output: ............ false\n // has partial LR conflict upgrade: true\n // rudimentary token-stack support: false\n // parser table compression mode: ... 2\n // export debug tables: ............. false\n // export *all* tables: ............. false\n // module type: ..................... commonjs\n // parser engine type: .............. lalr\n // output main() in the module: ..... true\n // has user-specified main(): ....... false\n // has user-specified require()/import modules for main():\n // .................................. false\n // number of expected conflicts: .... 0\n //\n //\n // Parser Analysis flags:\n //\n // no significant actions (parser is a language matcher only):\n // .................................. false\n // uses yyleng: ..................... false\n // uses yylineno: ................... false\n // uses yytext: ..................... false\n // uses yylloc: ..................... false\n // uses ParseError API: ............. false\n // uses YYERROR: .................... false\n // uses YYRECOVERING: ............... false\n // uses YYERROK: .................... false\n // uses YYCLEARIN: .................. false\n // tracks rule values: .............. true\n // assigns rule values: ............. true\n // uses location tracking: .......... false\n // assigns location: ................ false\n // uses yystack: .................... false\n // uses yysstack: ................... false\n // uses yysp: ....................... true\n // uses yyrulelength: ............... false\n // uses yyMergeLocationInfo API: .... false\n // has error recovery: .............. false\n // has error reporting: ............. false\n //\n // --------- END OF REPORT -----------\n\ntrace: function no_op_trace() { },\nJisonParserError: JisonParserError,\nyy: {},\noptions: {\n type: \"lalr\",\n hasPartialLrUpgradeOnConflict: true,\n errorRecoveryTokenDiscardCount: 3\n},\nsymbols_: {\n \"$accept\": 0,\n \"$end\": 1,\n \"ADD\": 3,\n \"ANGLE\": 16,\n \"CHS\": 22,\n \"COMMA\": 14,\n \"CSS_CPROP\": 13,\n \"CSS_VAR\": 12,\n \"DIV\": 6,\n \"EMS\": 20,\n \"EOF\": 1,\n \"EXS\": 21,\n \"FREQ\": 18,\n \"LENGTH\": 15,\n \"LPAREN\": 7,\n \"MUL\": 5,\n \"NESTED_CALC\": 9,\n \"NUMBER\": 11,\n \"PERCENTAGE\": 28,\n \"PREFIX\": 10,\n \"REMS\": 23,\n \"RES\": 19,\n \"RPAREN\": 8,\n \"SUB\": 4,\n \"TIME\": 17,\n \"VHS\": 24,\n \"VMAXS\": 27,\n \"VMINS\": 26,\n \"VWS\": 25,\n \"css_value\": 33,\n \"css_variable\": 32,\n \"error\": 2,\n \"expression\": 29,\n \"math_expression\": 30,\n \"value\": 31\n},\nterminals_: {\n 1: \"EOF\",\n 2: \"error\",\n 3: \"ADD\",\n 4: \"SUB\",\n 5: \"MUL\",\n 6: \"DIV\",\n 7: \"LPAREN\",\n 8: \"RPAREN\",\n 9: \"NESTED_CALC\",\n 10: \"PREFIX\",\n 11: \"NUMBER\",\n 12: \"CSS_VAR\",\n 13: \"CSS_CPROP\",\n 14: \"COMMA\",\n 15: \"LENGTH\",\n 16: \"ANGLE\",\n 17: \"TIME\",\n 18: \"FREQ\",\n 19: \"RES\",\n 20: \"EMS\",\n 21: \"EXS\",\n 22: \"CHS\",\n 23: \"REMS\",\n 24: \"VHS\",\n 25: \"VWS\",\n 26: \"VMINS\",\n 27: \"VMAXS\",\n 28: \"PERCENTAGE\"\n},\nTERROR: 2,\n EOF: 1,\n\n // internals: defined here so the object *structure* doesn't get modified by parse() et al,\n // thus helping JIT compilers like Chrome V8.\n originalQuoteName: null,\n originalParseError: null,\n cleanupAfterParse: null,\n constructParseErrorInfo: null,\n yyMergeLocationInfo: null,\n\n __reentrant_call_depth: 0, // INTERNAL USE ONLY\n __error_infos: [], // INTERNAL USE ONLY: the set of parseErrorInfo objects created since the last cleanup\n __error_recovery_infos: [], // INTERNAL USE ONLY: the set of parseErrorInfo objects created since the last cleanup\n\n // APIs which will be set up depending on user action code analysis:\n //yyRecovering: 0,\n //yyErrOk: 0,\n //yyClearIn: 0,\n\n // Helper APIs\n // -----------\n\n // Helper function which can be overridden by user code later on: put suitable quotes around\n // literal IDs in a description string.\n quoteName: function parser_quoteName(id_str) {\n return '\"' + id_str + '\"';\n },\n\n // Return the name of the given symbol (terminal or non-terminal) as a string, when available.\n //\n // Return NULL when the symbol is unknown to the parser.\n getSymbolName: function parser_getSymbolName(symbol) {\n if (this.terminals_[symbol]) {\n return this.terminals_[symbol];\n }\n\n // Otherwise... this might refer to a RULE token i.e. a non-terminal: see if we can dig that one up.\n //\n // An example of this may be where a rule's action code contains a call like this:\n //\n // parser.getSymbolName(#$)\n //\n // to obtain a human-readable name of the current grammar rule.\n var s = this.symbols_;\n for (var key in s) {\n if (s[key] === symbol) {\n return key;\n }\n }\n return null;\n },\n\n // Return a more-or-less human-readable description of the given symbol, when available,\n // or the symbol itself, serving as its own 'description' for lack of something better to serve up.\n //\n // Return NULL when the symbol is unknown to the parser.\n describeSymbol: function parser_describeSymbol(symbol) {\n if (symbol !== this.EOF && this.terminal_descriptions_ && this.terminal_descriptions_[symbol]) {\n return this.terminal_descriptions_[symbol];\n }\n else if (symbol === this.EOF) {\n return 'end of input';\n }\n var id = this.getSymbolName(symbol);\n if (id) {\n return this.quoteName(id);\n }\n return null;\n },\n\n // Produce a (more or less) human-readable list of expected tokens at the point of failure.\n //\n // The produced list may contain token or token set descriptions instead of the tokens\n // themselves to help turning this output into something that easier to read by humans\n // unless `do_not_describe` parameter is set, in which case a list of the raw, *numeric*,\n // expected terminals and nonterminals is produced.\n //\n // The returned list (array) will not contain any duplicate entries.\n collect_expected_token_set: function parser_collect_expected_token_set(state, do_not_describe) {\n var TERROR = this.TERROR;\n var tokenset = [];\n var check = {};\n // Has this (error?) state been outfitted with a custom expectations description text for human consumption?\n // If so, use that one instead of the less palatable token set.\n if (!do_not_describe && this.state_descriptions_ && this.state_descriptions_[state]) {\n return [\n this.state_descriptions_[state]\n ];\n }\n for (var p in this.table[state]) {\n p = +p;\n if (p !== TERROR) {\n var d = do_not_describe ? p : this.describeSymbol(p);\n if (d && !check[d]) {\n tokenset.push(d);\n check[d] = true; // Mark this token description as already mentioned to prevent outputting duplicate entries.\n }\n }\n }\n return tokenset;\n },\nproductions_: bp({\n pop: u([\n 29,\n s,\n [30, 10],\n 31,\n 31,\n 32,\n 32,\n s,\n [33, 15]\n]),\n rule: u([\n 2,\n s,\n [3, 5],\n 4,\n 7,\n s,\n [1, 4],\n 2,\n 4,\n 6,\n s,\n [1, 14],\n 2\n])\n}),\nperformAction: function parser__PerformAction(yystate /* action[1] */, yysp, yyvstack) {\n\n /* this == yyval */\n\n // the JS engine itself can go and remove these statements when `yy` turns out to be unused in any action code!\n var yy = this.yy;\n var yyparser = yy.parser;\n var yylexer = yy.lexer;\n\n \n\n switch (yystate) {\ncase 0:\n /*! Production:: $accept : expression $end */\n\n // default action (generated by JISON mode classic/merge :: 1,VT,VA,-,-,-,-,-,-):\n this.$ = yyvstack[yysp - 1];\n // END of default action (generated by JISON mode classic/merge :: 1,VT,VA,-,-,-,-,-,-)\n break;\n\ncase 1:\n /*! Production:: expression : math_expression EOF */\n\n // default action (generated by JISON mode classic/merge :: 2,VT,VA,-,-,-,-,-,-):\n this.$ = yyvstack[yysp - 1];\n // END of default action (generated by JISON mode classic/merge :: 2,VT,VA,-,-,-,-,-,-)\n \n \n return yyvstack[yysp - 1];\n break;\n\ncase 2:\n /*! Production:: math_expression : math_expression ADD math_expression */\ncase 3:\n /*! Production:: math_expression : math_expression SUB math_expression */\ncase 4:\n /*! Production:: math_expression : math_expression MUL math_expression */\ncase 5:\n /*! Production:: math_expression : math_expression DIV math_expression */\n\n this.$ = { type: 'MathExpression', operator: yyvstack[yysp - 1], left: yyvstack[yysp - 2], right: yyvstack[yysp] };\n break;\n\ncase 6:\n /*! Production:: math_expression : LPAREN math_expression RPAREN */\n\n this.$ = yyvstack[yysp - 1];\n break;\n\ncase 7:\n /*! Production:: math_expression : NESTED_CALC LPAREN math_expression RPAREN */\n\n this.$ = { type: 'Calc', value: yyvstack[yysp - 1] };\n break;\n\ncase 8:\n /*! Production:: math_expression : SUB PREFIX SUB NESTED_CALC LPAREN math_expression RPAREN */\n\n this.$ = { type: 'Calc', value: yyvstack[yysp - 1], prefix: yyvstack[yysp - 5] };\n break;\n\ncase 9:\n /*! Production:: math_expression : css_variable */\ncase 10:\n /*! Production:: math_expression : css_value */\ncase 11:\n /*! Production:: math_expression : value */\n\n this.$ = yyvstack[yysp];\n break;\n\ncase 12:\n /*! Production:: value : NUMBER */\n\n this.$ = { type: 'Value', value: parseFloat(yyvstack[yysp]) };\n break;\n\ncase 13:\n /*! Production:: value : SUB NUMBER */\n\n this.$ = { type: 'Value', value: parseFloat(yyvstack[yysp]) * -1 };\n break;\n\ncase 14:\n /*! Production:: css_variable : CSS_VAR LPAREN CSS_CPROP RPAREN */\n\n this.$ = { type: 'CssVariable', value: yyvstack[yysp - 1] };\n break;\n\ncase 15:\n /*! Production:: css_variable : CSS_VAR LPAREN CSS_CPROP COMMA math_expression RPAREN */\n\n this.$ = { type: 'CssVariable', value: yyvstack[yysp - 3], fallback: yyvstack[yysp - 1] };\n break;\n\ncase 16:\n /*! Production:: css_value : LENGTH */\n\n this.$ = { type: 'LengthValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 17:\n /*! Production:: css_value : ANGLE */\n\n this.$ = { type: 'AngleValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 18:\n /*! Production:: css_value : TIME */\n\n this.$ = { type: 'TimeValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 19:\n /*! Production:: css_value : FREQ */\n\n this.$ = { type: 'FrequencyValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 20:\n /*! Production:: css_value : RES */\n\n this.$ = { type: 'ResolutionValue', value: parseFloat(yyvstack[yysp]), unit: /[a-z]+/.exec(yyvstack[yysp])[0] };\n break;\n\ncase 21:\n /*! Production:: css_value : EMS */\n\n this.$ = { type: 'EmValue', value: parseFloat(yyvstack[yysp]), unit: 'em' };\n break;\n\ncase 22:\n /*! Production:: css_value : EXS */\n\n this.$ = { type: 'ExValue', value: parseFloat(yyvstack[yysp]), unit: 'ex' };\n break;\n\ncase 23:\n /*! Production:: css_value : CHS */\n\n this.$ = { type: 'ChValue', value: parseFloat(yyvstack[yysp]), unit: 'ch' };\n break;\n\ncase 24:\n /*! Production:: css_value : REMS */\n\n this.$ = { type: 'RemValue', value: parseFloat(yyvstack[yysp]), unit: 'rem' };\n break;\n\ncase 25:\n /*! Production:: css_value : VHS */\n\n this.$ = { type: 'VhValue', value: parseFloat(yyvstack[yysp]), unit: 'vh' };\n break;\n\ncase 26:\n /*! Production:: css_value : VWS */\n\n this.$ = { type: 'VwValue', value: parseFloat(yyvstack[yysp]), unit: 'vw' };\n break;\n\ncase 27:\n /*! Production:: css_value : VMINS */\n\n this.$ = { type: 'VminValue', value: parseFloat(yyvstack[yysp]), unit: 'vmin' };\n break;\n\ncase 28:\n /*! Production:: css_value : VMAXS */\n\n this.$ = { type: 'VmaxValue', value: parseFloat(yyvstack[yysp]), unit: 'vmax' };\n break;\n\ncase 29:\n /*! Production:: css_value : PERCENTAGE */\n\n this.$ = { type: 'PercentageValue', value: parseFloat(yyvstack[yysp]), unit: '%' };\n break;\n\ncase 30:\n /*! Production:: css_value : SUB css_value */\n\n var prev = yyvstack[yysp]; prev.value *= -1; this.$ = prev;\n break;\n\n}\n},\ntable: bt({\n len: u([\n 24,\n 1,\n 5,\n 23,\n 1,\n 18,\n s,\n [0, 3],\n 1,\n s,\n [0, 16],\n s,\n [23, 4],\n c,\n [28, 3],\n 0,\n 0,\n 16,\n 1,\n 6,\n 6,\n s,\n [0, 3],\n 5,\n 1,\n 2,\n c,\n [37, 3],\n c,\n [20, 3],\n 5,\n 0,\n 0\n]),\n symbol: u([\n 4,\n 7,\n 9,\n 11,\n 12,\n s,\n [15, 19, 1],\n 1,\n 1,\n s,\n [3, 4, 1],\n c,\n [30, 19],\n c,\n [29, 4],\n 7,\n 4,\n 10,\n 11,\n c,\n [22, 14],\n c,\n [19, 3],\n c,\n [43, 22],\n c,\n [23, 69],\n c,\n [139, 4],\n 8,\n c,\n [51, 24],\n 4,\n c,\n [138, 15],\n 13,\n c,\n [186, 5],\n 8,\n c,\n [6, 6],\n c,\n [5, 5],\n 9,\n 8,\n 14,\n c,\n [159, 47],\n c,\n [60, 10]\n]),\n type: u([\n s,\n [2, 19],\n s,\n [0, 5],\n 1,\n s,\n [2, 24],\n s,\n [0, 4],\n c,\n [22, 19],\n c,\n [43, 42],\n c,\n [23, 70],\n c,\n [28, 25],\n c,\n [45, 25],\n c,\n [113, 54]\n]),\n state: u([\n 1,\n 2,\n 8,\n 6,\n 7,\n 30,\n c,\n [4, 3],\n 33,\n 37,\n c,\n [5, 3],\n 38,\n c,\n [4, 3],\n 39,\n c,\n [4, 3],\n 40,\n c,\n [4, 3],\n 42,\n c,\n [21, 4],\n 50,\n c,\n [5, 3],\n 51,\n c,\n [4, 3]\n]),\n mode: u([\n s,\n [1, 179],\n s,\n [2, 3],\n c,\n [5, 5],\n c,\n [6, 4],\n s,\n [1, 57]\n]),\n goto: u([\n 5,\n 3,\n 4,\n 24,\n s,\n [9, 15, 1],\n s,\n [25, 5, 1],\n c,\n [24, 19],\n 31,\n 35,\n 32,\n 34,\n c,\n [18, 14],\n 36,\n c,\n [38, 19],\n c,\n [19, 57],\n c,\n [118, 4],\n 41,\n c,\n [24, 19],\n 43,\n 35,\n c,\n [16, 14],\n 44,\n s,\n [2, 3],\n 28,\n 29,\n 2,\n s,\n [3, 3],\n 28,\n 29,\n 3,\n c,\n [53, 4],\n s,\n [45, 5, 1],\n c,\n [100, 42],\n 52,\n c,\n [5, 4],\n 53\n])\n}),\ndefaultActions: bda({\n idx: u([\n 6,\n 7,\n 8,\n s,\n [10, 16, 1],\n 33,\n 34,\n 39,\n 40,\n 41,\n 45,\n 47,\n 52,\n 53\n]),\n goto: u([\n 9,\n 10,\n 11,\n s,\n [16, 14, 1],\n 12,\n 1,\n 30,\n 13,\n s,\n [4, 4, 1],\n 14,\n 15,\n 8\n])\n}),\nparseError: function parseError(str, hash, ExceptionClass) {\n if (hash.recoverable) {\n if (typeof this.trace === 'function') {\n this.trace(str);\n }\n hash.destroy(); // destroy... well, *almost*!\n } else {\n if (typeof this.trace === 'function') {\n this.trace(str);\n }\n if (!ExceptionClass) {\n ExceptionClass = this.JisonParserError;\n }\n throw new ExceptionClass(str, hash);\n }\n},\nparse: function parse(input) {\n var self = this;\n var stack = new Array(128); // token stack: stores token which leads to state at the same index (column storage)\n var sstack = new Array(128); // state stack: stores states (column storage)\n\n var vstack = new Array(128); // semantic value stack\n\n var table = this.table;\n var sp = 0; // 'stack pointer': index into the stacks\n\n\n \n\n\n var symbol = 0;\n\n\n\n var TERROR = this.TERROR;\n var EOF = this.EOF;\n var ERROR_RECOVERY_TOKEN_DISCARD_COUNT = (this.options.errorRecoveryTokenDiscardCount | 0) || 3;\n var NO_ACTION = [0, 54 /* === table.length :: ensures that anyone using this new state will fail dramatically! */];\n\n var lexer;\n if (this.__lexer__) {\n lexer = this.__lexer__;\n } else {\n lexer = this.__lexer__ = Object.create(this.lexer);\n }\n\n var sharedState_yy = {\n parseError: undefined,\n quoteName: undefined,\n lexer: undefined,\n parser: undefined,\n pre_parse: undefined,\n post_parse: undefined,\n pre_lex: undefined,\n post_lex: undefined // WARNING: must be written this way for the code expanders to work correctly in both ES5 and ES6 modes!\n };\n\n var ASSERT;\n if (typeof assert !== 'function') {\n ASSERT = function JisonAssert(cond, msg) {\n if (!cond) {\n throw new Error('assertion failed: ' + (msg || '***'));\n }\n };\n } else {\n ASSERT = assert;\n }\n\n this.yyGetSharedState = function yyGetSharedState() {\n return sharedState_yy;\n };\n\n\n\n\n\n\n\n\n function shallow_copy_noclobber(dst, src) {\n for (var k in src) {\n if (typeof dst[k] === 'undefined' && Object.prototype.hasOwnProperty.call(src, k)) {\n dst[k] = src[k];\n }\n }\n }\n\n // copy state\n shallow_copy_noclobber(sharedState_yy, this.yy);\n\n sharedState_yy.lexer = lexer;\n sharedState_yy.parser = this;\n\n\n\n\n\n\n // Does the shared state override the default `parseError` that already comes with this instance?\n if (typeof sharedState_yy.parseError === 'function') {\n this.parseError = function parseErrorAlt(str, hash, ExceptionClass) {\n if (!ExceptionClass) {\n ExceptionClass = this.JisonParserError;\n }\n return sharedState_yy.parseError.call(this, str, hash, ExceptionClass);\n };\n } else {\n this.parseError = this.originalParseError;\n }\n\n // Does the shared state override the default `quoteName` that already comes with this instance?\n if (typeof sharedState_yy.quoteName === 'function') {\n this.quoteName = function quoteNameAlt(id_str) {\n return sharedState_yy.quoteName.call(this, id_str);\n };\n } else {\n this.quoteName = this.originalQuoteName;\n }\n\n // set up the cleanup function; make it an API so that external code can re-use this one in case of\n // calamities or when the `%options no-try-catch` option has been specified for the grammar, in which\n // case this parse() API method doesn't come with a `finally { ... }` block any more!\n //\n // NOTE: as this API uses parse() as a closure, it MUST be set again on every parse() invocation,\n // or else your `sharedState`, etc. references will be *wrong*!\n this.cleanupAfterParse = function parser_cleanupAfterParse(resultValue, invoke_post_methods, do_not_nuke_errorinfos) {\n var rv;\n\n if (invoke_post_methods) {\n var hash;\n\n if (sharedState_yy.post_parse || this.post_parse) {\n // create an error hash info instance: we re-use this API in a **non-error situation**\n // as this one delivers all parser internals ready for access by userland code.\n hash = this.constructParseErrorInfo(null /* no error! */, null /* no exception! */, null, false);\n }\n\n if (sharedState_yy.post_parse) {\n rv = sharedState_yy.post_parse.call(this, sharedState_yy, resultValue, hash);\n if (typeof rv !== 'undefined') resultValue = rv;\n }\n if (this.post_parse) {\n rv = this.post_parse.call(this, sharedState_yy, resultValue, hash);\n if (typeof rv !== 'undefined') resultValue = rv;\n }\n\n // cleanup:\n if (hash && hash.destroy) {\n hash.destroy();\n }\n }\n\n if (this.__reentrant_call_depth > 1) return resultValue; // do not (yet) kill the sharedState when this is a reentrant run.\n\n // clean up the lingering lexer structures as well:\n if (lexer.cleanupAfterLex) {\n lexer.cleanupAfterLex(do_not_nuke_errorinfos);\n }\n\n // prevent lingering circular references from causing memory leaks:\n if (sharedState_yy) {\n sharedState_yy.lexer = undefined;\n sharedState_yy.parser = undefined;\n if (lexer.yy === sharedState_yy) {\n lexer.yy = undefined;\n }\n }\n sharedState_yy = undefined;\n this.parseError = this.originalParseError;\n this.quoteName = this.originalQuoteName;\n\n // nuke the vstack[] array at least as that one will still reference obsoleted user values.\n // To be safe, we nuke the other internal stack columns as well...\n stack.length = 0; // fastest way to nuke an array without overly bothering the GC\n sstack.length = 0;\n\n vstack.length = 0;\n sp = 0;\n\n // nuke the error hash info instances created during this run.\n // Userland code must COPY any data/references\n // in the error hash instance(s) it is more permanently interested in.\n if (!do_not_nuke_errorinfos) {\n for (var i = this.__error_infos.length - 1; i >= 0; i--) {\n var el = this.__error_infos[i];\n if (el && typeof el.destroy === 'function') {\n el.destroy();\n }\n }\n this.__error_infos.length = 0;\n\n\n }\n\n return resultValue;\n };\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n // NOTE: as this API uses parse() as a closure, it MUST be set again on every parse() invocation,\n // or else your `lexer`, `sharedState`, etc. references will be *wrong*!\n this.constructParseErrorInfo = function parser_constructParseErrorInfo(msg, ex, expected, recoverable) {\n var pei = {\n errStr: msg,\n exception: ex,\n text: lexer.match,\n value: lexer.yytext,\n token: this.describeSymbol(symbol) || symbol,\n token_id: symbol,\n line: lexer.yylineno,\n\n expected: expected,\n recoverable: recoverable,\n state: state,\n action: action,\n new_state: newState,\n symbol_stack: stack,\n state_stack: sstack,\n value_stack: vstack,\n\n stack_pointer: sp,\n yy: sharedState_yy,\n lexer: lexer,\n parser: this,\n\n // and make sure the error info doesn't stay due to potential\n // ref cycle via userland code manipulations.\n // These would otherwise all be memory leak opportunities!\n //\n // Note that only array and object references are nuked as those\n // constitute the set of elements which can produce a cyclic ref.\n // The rest of the members is kept intact as they are harmless.\n destroy: function destructParseErrorInfo() {\n // remove cyclic references added to error info:\n // info.yy = null;\n // info.lexer = null;\n // info.value = null;\n // info.value_stack = null;\n // ...\n var rec = !!this.recoverable;\n for (var key in this) {\n if (this.hasOwnProperty(key) && typeof key === 'object') {\n this[key] = undefined;\n }\n }\n this.recoverable = rec;\n }\n };\n // track this instance so we can `destroy()` it once we deem it superfluous and ready for garbage collection!\n this.__error_infos.push(pei);\n return pei;\n };\n\n\n\n\n\n\n\n\n\n\n\n\n\n function getNonTerminalFromCode(symbol) {\n var tokenName = self.getSymbolName(symbol);\n if (!tokenName) {\n tokenName = symbol;\n }\n return tokenName;\n }\n\n\n function stdLex() {\n var token = lexer.lex();\n // if token isn't its numeric value, convert\n if (typeof token !== 'number') {\n token = self.symbols_[token] || token;\n }\n\n return token || EOF;\n }\n\n function fastLex() {\n var token = lexer.fastLex();\n // if token isn't its numeric value, convert\n if (typeof token !== 'number') {\n token = self.symbols_[token] || token;\n }\n\n return token || EOF;\n }\n\n var lex = stdLex;\n\n\n var state, action, r, t;\n var yyval = {\n $: true,\n _$: undefined,\n yy: sharedState_yy\n };\n var p;\n var yyrulelen;\n var this_production;\n var newState;\n var retval = false;\n\n\n try {\n this.__reentrant_call_depth++;\n\n lexer.setInput(input, sharedState_yy);\n\n // NOTE: we *assume* no lexer pre/post handlers are set up *after* \n // this initial `setInput()` call: hence we can now check and decide\n // whether we'll go with the standard, slower, lex() API or the\n // `fast_lex()` one:\n if (typeof lexer.canIUse === 'function') {\n var lexerInfo = lexer.canIUse();\n if (lexerInfo.fastLex && typeof fastLex === 'function') {\n lex = fastLex;\n }\n } \n\n\n\n vstack[sp] = null;\n sstack[sp] = 0;\n stack[sp] = 0;\n ++sp;\n\n\n\n\n\n if (this.pre_parse) {\n this.pre_parse.call(this, sharedState_yy);\n }\n if (sharedState_yy.pre_parse) {\n sharedState_yy.pre_parse.call(this, sharedState_yy);\n }\n\n newState = sstack[sp - 1];\n for (;;) {\n // retrieve state number from top of stack\n state = newState; // sstack[sp - 1];\n\n // use default actions if available\n if (this.defaultActions[state]) {\n action = 2;\n newState = this.defaultActions[state];\n } else {\n // The single `==` condition below covers both these `===` comparisons in a single\n // operation:\n //\n // if (symbol === null || typeof symbol === 'undefined') ...\n if (!symbol) {\n symbol = lex();\n }\n // read action for current state and first input\n t = (table[state] && table[state][symbol]) || NO_ACTION;\n newState = t[1];\n action = t[0];\n\n\n\n\n\n\n\n\n\n\n\n // handle parse error\n if (!action) {\n var errStr;\n var errSymbolDescr = (this.describeSymbol(symbol) || symbol);\n var expected = this.collect_expected_token_set(state);\n\n // Report error\n if (typeof lexer.yylineno === 'number') {\n errStr = 'Parse error on line ' + (lexer.yylineno + 1) + ': ';\n } else {\n errStr = 'Parse error: ';\n }\n if (typeof lexer.showPosition === 'function') {\n errStr += '\\n' + lexer.showPosition(79 - 10, 10) + '\\n';\n }\n if (expected.length) {\n errStr += 'Expecting ' + expected.join(', ') + ', got unexpected ' + errSymbolDescr;\n } else {\n errStr += 'Unexpected ' + errSymbolDescr;\n }\n // we cannot recover from the error!\n p = this.constructParseErrorInfo(errStr, null, expected, false);\n r = this.parseError(p.errStr, p, this.JisonParserError);\n if (typeof r !== 'undefined') {\n retval = r;\n }\n break;\n }\n\n\n }\n\n\n\n\n\n\n\n\n\n\n switch (action) {\n // catch misc. parse failures:\n default:\n // this shouldn't happen, unless resolve defaults are off\n if (action instanceof Array) {\n p = this.constructParseErrorInfo('Parse Error: multiple actions possible at state: ' + state + ', token: ' + symbol, null, null, false);\n r = this.parseError(p.errStr, p, this.JisonParserError);\n if (typeof r !== 'undefined') {\n retval = r;\n }\n break;\n }\n // Another case of better safe than sorry: in case state transitions come out of another error recovery process\n // or a buggy LUT (LookUp Table):\n p = this.constructParseErrorInfo('Parsing halted. No viable error recovery approach available due to internal system failure.', null, null, false);\n r = this.parseError(p.errStr, p, this.JisonParserError);\n if (typeof r !== 'undefined') {\n retval = r;\n }\n break;\n\n // shift:\n case 1:\n stack[sp] = symbol;\n vstack[sp] = lexer.yytext;\n\n sstack[sp] = newState; // push state\n\n ++sp;\n symbol = 0;\n\n\n\n\n // Pick up the lexer details for the current symbol as that one is not 'look-ahead' any more:\n\n\n\n\n continue;\n\n // reduce:\n case 2:\n\n\n\n this_production = this.productions_[newState - 1]; // `this.productions_[]` is zero-based indexed while states start from 1 upwards...\n yyrulelen = this_production[1];\n\n\n\n\n\n\n\n\n\n\n r = this.performAction.call(yyval, newState, sp - 1, vstack);\n\n if (typeof r !== 'undefined') {\n retval = r;\n break;\n }\n\n // pop off stack\n sp -= yyrulelen;\n\n // don't overwrite the `symbol` variable: use a local var to speed things up:\n var ntsymbol = this_production[0]; // push nonterminal (reduce)\n stack[sp] = ntsymbol;\n vstack[sp] = yyval.$;\n\n // goto new state = table[STATE][NONTERMINAL]\n newState = table[sstack[sp - 1]][ntsymbol];\n sstack[sp] = newState;\n ++sp;\n\n\n\n\n\n\n\n\n\n continue;\n\n // accept:\n case 3:\n if (sp !== -2) {\n retval = true;\n // Return the `$accept` rule's `$$` result, if available.\n //\n // Also note that JISON always adds this top-most `$accept` rule (with implicit,\n // default, action):\n //\n // $accept: $end\n // %{ $$ = $1; @$ = @1; %}\n //\n // which, combined with the parse kernel's `$accept` state behaviour coded below,\n // will produce the `$$` value output of the rule as the parse result,\n // IFF that result is *not* `undefined`. (See also the parser kernel code.)\n //\n // In code:\n //\n // %{\n // @$ = @1; // if location tracking support is included\n // if (typeof $1 !== 'undefined')\n // return $1;\n // else\n // return true; // the default parse result if the rule actions don't produce anything\n // %}\n sp--;\n if (typeof vstack[sp] !== 'undefined') {\n retval = vstack[sp];\n }\n }\n break;\n }\n\n // break out of loop: we accept or fail with error\n break;\n }\n } catch (ex) {\n // report exceptions through the parseError callback too, but keep the exception intact\n // if it is a known parser or lexer error which has been thrown by parseError() already:\n if (ex instanceof this.JisonParserError) {\n throw ex;\n }\n else if (lexer && typeof lexer.JisonLexerError === 'function' && ex instanceof lexer.JisonLexerError) {\n throw ex;\n }\n\n p = this.constructParseErrorInfo('Parsing aborted due to exception.', ex, null, false);\n retval = false;\n r = this.parseError(p.errStr, p, this.JisonParserError);\n if (typeof r !== 'undefined') {\n retval = r;\n }\n } finally {\n retval = this.cleanupAfterParse(retval, true, true);\n this.__reentrant_call_depth--;\n } // /finally\n\n return retval;\n}\n};\nparser.originalParseError = parser.parseError;\nparser.originalQuoteName = parser.quoteName;\n/* lexer generated by jison-lex 0.6.1-215 */\n\n/*\n * Returns a Lexer object of the following structure:\n *\n * Lexer: {\n * yy: {} The so-called \"shared state\" or rather the *source* of it;\n * the real \"shared state\" `yy` passed around to\n * the rule actions, etc. is a direct reference!\n *\n * This \"shared context\" object was passed to the lexer by way of \n * the `lexer.setInput(str, yy)` API before you may use it.\n *\n * This \"shared context\" object is passed to the lexer action code in `performAction()`\n * so userland code in the lexer actions may communicate with the outside world \n * and/or other lexer rules' actions in more or less complex ways.\n *\n * }\n *\n * Lexer.prototype: {\n * EOF: 1,\n * ERROR: 2,\n *\n * yy: The overall \"shared context\" object reference.\n *\n * JisonLexerError: function(msg, hash),\n *\n * performAction: function lexer__performAction(yy, yyrulenumber, YY_START),\n *\n * The function parameters and `this` have the following value/meaning:\n * - `this` : reference to the `lexer` instance. \n * `yy_` is an alias for `this` lexer instance reference used internally.\n *\n * - `yy` : a reference to the `yy` \"shared state\" object which was passed to the lexer\n * by way of the `lexer.setInput(str, yy)` API before.\n *\n * Note:\n * The extra arguments you specified in the `%parse-param` statement in your\n * **parser** grammar definition file are passed to the lexer via this object\n * reference as member variables.\n *\n * - `yyrulenumber` : index of the matched lexer rule (regex), used internally.\n *\n * - `YY_START`: the current lexer \"start condition\" state.\n *\n * parseError: function(str, hash, ExceptionClass),\n *\n * constructLexErrorInfo: function(error_message, is_recoverable),\n * Helper function.\n * Produces a new errorInfo 'hash object' which can be passed into `parseError()`.\n * See it's use in this lexer kernel in many places; example usage:\n *\n * var infoObj = lexer.constructParseErrorInfo('fail!', true);\n * var retVal = lexer.parseError(infoObj.errStr, infoObj, lexer.JisonLexerError);\n *\n * options: { ... lexer %options ... },\n *\n * lex: function(),\n * Produce one token of lexed input, which was passed in earlier via the `lexer.setInput()` API.\n * You MAY use the additional `args...` parameters as per `%parse-param` spec of the **lexer** grammar:\n * these extra `args...` are added verbatim to the `yy` object reference as member variables.\n *\n * WARNING:\n * Lexer's additional `args...` parameters (via lexer's `%parse-param`) MAY conflict with\n * any attributes already added to `yy` by the **parser** or the jison run-time; \n * when such a collision is detected an exception is thrown to prevent the generated run-time \n * from silently accepting this confusing and potentially hazardous situation! \n *\n * cleanupAfterLex: function(do_not_nuke_errorinfos),\n * Helper function.\n *\n * This helper API is invoked when the **parse process** has completed: it is the responsibility\n * of the **parser** (or the calling userland code) to invoke this method once cleanup is desired. \n *\n * This helper may be invoked by user code to ensure the internal lexer gets properly garbage collected.\n *\n * setInput: function(input, [yy]),\n *\n *\n * input: function(),\n *\n *\n * unput: function(str),\n *\n *\n * more: function(),\n *\n *\n * reject: function(),\n *\n *\n * less: function(n),\n *\n *\n * pastInput: function(n),\n *\n *\n * upcomingInput: function(n),\n *\n *\n * showPosition: function(),\n *\n *\n * test_match: function(regex_match_array, rule_index),\n *\n *\n * next: function(),\n *\n *\n * begin: function(condition),\n *\n *\n * pushState: function(condition),\n *\n *\n * popState: function(),\n *\n *\n * topState: function(),\n *\n *\n * _currentRules: function(),\n *\n *\n * stateStackSize: function(),\n *\n *\n * performAction: function(yy, yy_, yyrulenumber, YY_START),\n *\n *\n * rules: [...],\n *\n *\n * conditions: {associative list: name ==> set},\n * }\n *\n *\n * token location info (`yylloc`): {\n * first_line: n,\n * last_line: n,\n * first_column: n,\n * last_column: n,\n * range: [start_number, end_number]\n * (where the numbers are indexes into the input string, zero-based)\n * }\n *\n * ---\n *\n * The `parseError` function receives a 'hash' object with these members for lexer errors:\n *\n * {\n * text: (matched text)\n * token: (the produced terminal token, if any)\n * token_id: (the produced terminal token numeric ID, if any)\n * line: (yylineno)\n * loc: (yylloc)\n * recoverable: (boolean: TRUE when the parser MAY have an error recovery rule\n * available for this particular error)\n * yy: (object: the current parser internal \"shared state\" `yy`\n * as is also available in the rule actions; this can be used,\n * for instance, for advanced error analysis and reporting)\n * lexer: (reference to the current lexer instance used by the parser)\n * }\n *\n * while `this` will reference the current lexer instance.\n *\n * When `parseError` is invoked by the lexer, the default implementation will\n * attempt to invoke `yy.parser.parseError()`; when this callback is not provided\n * it will try to invoke `yy.parseError()` instead. When that callback is also not\n * provided, a `JisonLexerError` exception will be thrown containing the error\n * message and `hash`, as constructed by the `constructLexErrorInfo()` API.\n *\n * Note that the lexer's `JisonLexerError` error class is passed via the\n * `ExceptionClass` argument, which is invoked to construct the exception\n * instance to be thrown, so technically `parseError` will throw the object\n * produced by the `new ExceptionClass(str, hash)` JavaScript expression.\n *\n * ---\n *\n * You can specify lexer options by setting / modifying the `.options` object of your Lexer instance.\n * These options are available:\n *\n * (Options are permanent.)\n * \n * yy: {\n * parseError: function(str, hash, ExceptionClass)\n * optional: overrides the default `parseError` function.\n * }\n *\n * lexer.options: {\n * pre_lex: function()\n * optional: is invoked before the lexer is invoked to produce another token.\n * `this` refers to the Lexer object.\n * post_lex: function(token) { return token; }\n * optional: is invoked when the lexer has produced a token `token`;\n * this function can override the returned token value by returning another.\n * When it does not return any (truthy) value, the lexer will return\n * the original `token`.\n * `this` refers to the Lexer object.\n *\n * WARNING: the next set of options are not meant to be changed. They echo the abilities of\n * the lexer as per when it was compiled!\n *\n * ranges: boolean\n * optional: `true` ==> token location info will include a .range[] member.\n * flex: boolean\n * optional: `true` ==> flex-like lexing behaviour where the rules are tested\n * exhaustively to find the longest match.\n * backtrack_lexer: boolean\n * optional: `true` ==> lexer regexes are tested in order and for invoked;\n * the lexer terminates the scan when a token is returned by the action code.\n * xregexp: boolean\n * optional: `true` ==> lexer rule regexes are \"extended regex format\" requiring the\n * `XRegExp` library. When this %option has not been specified at compile time, all lexer\n * rule regexes have been written as standard JavaScript RegExp expressions.\n * }\n */\n\n\nvar lexer = function() {\n /**\n * See also:\n * http://stackoverflow.com/questions/1382107/whats-a-good-way-to-extend-error-in-javascript/#35881508\n * but we keep the prototype.constructor and prototype.name assignment lines too for compatibility\n * with userland code which might access the derived class in a 'classic' way.\n *\n * @public\n * @constructor\n * @nocollapse\n */\n function JisonLexerError(msg, hash) {\n Object.defineProperty(this, 'name', {\n enumerable: false,\n writable: false,\n value: 'JisonLexerError'\n });\n\n if (msg == null)\n msg = '???';\n\n Object.defineProperty(this, 'message', {\n enumerable: false,\n writable: true,\n value: msg\n });\n\n this.hash = hash;\n var stacktrace;\n\n if (hash && hash.exception instanceof Error) {\n var ex2 = hash.exception;\n this.message = ex2.message || msg;\n stacktrace = ex2.stack;\n }\n\n if (!stacktrace) {\n if (Error.hasOwnProperty('captureStackTrace')) {\n // V8\n Error.captureStackTrace(this, this.constructor);\n } else {\n stacktrace = new Error(msg).stack;\n }\n }\n\n if (stacktrace) {\n Object.defineProperty(this, 'stack', {\n enumerable: false,\n writable: false,\n value: stacktrace\n });\n }\n }\n\n if (typeof Object.setPrototypeOf === 'function') {\n Object.setPrototypeOf(JisonLexerError.prototype, Error.prototype);\n } else {\n JisonLexerError.prototype = Object.create(Error.prototype);\n }\n\n JisonLexerError.prototype.constructor = JisonLexerError;\n JisonLexerError.prototype.name = 'JisonLexerError';\n\n var lexer = {\n \n// Code Generator Information Report\n// ---------------------------------\n//\n// Options:\n//\n// backtracking: .................... false\n// location.ranges: ................. false\n// location line+column tracking: ... true\n//\n//\n// Forwarded Parser Analysis flags:\n//\n// uses yyleng: ..................... false\n// uses yylineno: ................... false\n// uses yytext: ..................... false\n// uses yylloc: ..................... false\n// uses lexer values: ............... true / true\n// location tracking: ............... false\n// location assignment: ............. false\n//\n//\n// Lexer Analysis flags:\n//\n// uses yyleng: ..................... ???\n// uses yylineno: ................... ???\n// uses yytext: ..................... ???\n// uses yylloc: ..................... ???\n// uses ParseError API: ............. ???\n// uses yyerror: .................... ???\n// uses location tracking & editing: ???\n// uses more() API: ................. ???\n// uses unput() API: ................ ???\n// uses reject() API: ............... ???\n// uses less() API: ................. ???\n// uses display APIs pastInput(), upcomingInput(), showPosition():\n// ............................. ???\n// uses describeYYLLOC() API: ....... ???\n//\n// --------- END OF REPORT -----------\n\nEOF: 1,\n ERROR: 2,\n\n // JisonLexerError: JisonLexerError, /// <-- injected by the code generator\n\n // options: {}, /// <-- injected by the code generator\n\n // yy: ..., /// <-- injected by setInput()\n\n __currentRuleSet__: null, /// INTERNAL USE ONLY: internal rule set cache for the current lexer state \n\n __error_infos: [], /// INTERNAL USE ONLY: the set of lexErrorInfo objects created since the last cleanup \n __decompressed: false, /// INTERNAL USE ONLY: mark whether the lexer instance has been 'unfolded' completely and is now ready for use \n done: false, /// INTERNAL USE ONLY \n _backtrack: false, /// INTERNAL USE ONLY \n _input: '', /// INTERNAL USE ONLY \n _more: false, /// INTERNAL USE ONLY \n _signaled_error_token: false, /// INTERNAL USE ONLY \n conditionStack: [], /// INTERNAL USE ONLY; managed via `pushState()`, `popState()`, `topState()` and `stateStackSize()` \n match: '', /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks input which has been matched so far for the lexer token under construction. `match` is identical to `yytext` except that this one still contains the matched input string after `lexer.performAction()` has been invoked, where userland code MAY have changed/replaced the `yytext` value entirely! \n matched: '', /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks entire input which has been matched so far \n matches: false, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks RE match result for last (successful) match attempt \n yytext: '', /// ADVANCED USE ONLY: tracks input which has been matched so far for the lexer token under construction; this value is transferred to the parser as the 'token value' when the parser consumes the lexer token produced through a call to the `lex()` API. \n offset: 0, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks the 'cursor position' in the input string, i.e. the number of characters matched so far \n yyleng: 0, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: length of matched input for the token under construction (`yytext`) \n yylineno: 0, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: 'line number' at which the token under construction is located \n yylloc: null, /// READ-ONLY EXTERNAL ACCESS - ADVANCED USE ONLY: tracks location info (lines + columns) for the token under construction \n\n /**\n * INTERNAL USE: construct a suitable error info hash object instance for `parseError`.\n * \n * @public\n * @this {RegExpLexer}\n */\n constructLexErrorInfo: function lexer_constructLexErrorInfo(msg, recoverable, show_input_position) {\n msg = '' + msg;\n\n // heuristic to determine if the error message already contains a (partial) source code dump\n // as produced by either `showPosition()` or `prettyPrintRange()`:\n if (show_input_position == undefined) {\n show_input_position = !(msg.indexOf('\\n') > 0 && msg.indexOf('^') > 0);\n }\n\n if (this.yylloc && show_input_position) {\n if (typeof this.prettyPrintRange === 'function') {\n var pretty_src = this.prettyPrintRange(this.yylloc);\n\n if (!/\\n\\s*$/.test(msg)) {\n msg += '\\n';\n }\n\n msg += '\\n Erroneous area:\\n' + this.prettyPrintRange(this.yylloc);\n } else if (typeof this.showPosition === 'function') {\n var pos_str = this.showPosition();\n\n if (pos_str) {\n if (msg.length && msg[msg.length - 1] !== '\\n' && pos_str[0] !== '\\n') {\n msg += '\\n' + pos_str;\n } else {\n msg += pos_str;\n }\n }\n }\n }\n\n /** @constructor */\n var pei = {\n errStr: msg,\n recoverable: !!recoverable,\n text: this.match, // This one MAY be empty; userland code should use the `upcomingInput` API to obtain more text which follows the 'lexer cursor position'... \n token: null,\n line: this.yylineno,\n loc: this.yylloc,\n yy: this.yy,\n lexer: this,\n\n /**\n * and make sure the error info doesn't stay due to potential\n * ref cycle via userland code manipulations.\n * These would otherwise all be memory leak opportunities!\n * \n * Note that only array and object references are nuked as those\n * constitute the set of elements which can produce a cyclic ref.\n * The rest of the members is kept intact as they are harmless.\n * \n * @public\n * @this {LexErrorInfo}\n */\n destroy: function destructLexErrorInfo() {\n // remove cyclic references added to error info:\n // info.yy = null;\n // info.lexer = null;\n // ...\n var rec = !!this.recoverable;\n\n for (var key in this) {\n if (this.hasOwnProperty(key) && typeof key === 'object') {\n this[key] = undefined;\n }\n }\n\n this.recoverable = rec;\n }\n };\n\n // track this instance so we can `destroy()` it once we deem it superfluous and ready for garbage collection!\n this.__error_infos.push(pei);\n\n return pei;\n },\n\n /**\n * handler which is invoked when a lexer error occurs.\n * \n * @public\n * @this {RegExpLexer}\n */\n parseError: function lexer_parseError(str, hash, ExceptionClass) {\n if (!ExceptionClass) {\n ExceptionClass = this.JisonLexerError;\n }\n\n if (this.yy) {\n if (this.yy.parser && typeof this.yy.parser.parseError === 'function') {\n return this.yy.parser.parseError.call(this, str, hash, ExceptionClass) || this.ERROR;\n } else if (typeof this.yy.parseError === 'function') {\n return this.yy.parseError.call(this, str, hash, ExceptionClass) || this.ERROR;\n }\n }\n\n throw new ExceptionClass(str, hash);\n },\n\n /**\n * method which implements `yyerror(str, ...args)` functionality for use inside lexer actions.\n * \n * @public\n * @this {RegExpLexer}\n */\n yyerror: function yyError(str /*, ...args */) {\n var lineno_msg = '';\n\n if (this.yylloc) {\n lineno_msg = ' on line ' + (this.yylineno + 1);\n }\n\n var p = this.constructLexErrorInfo(\n 'Lexical error' + lineno_msg + ': ' + str,\n this.options.lexerErrorsAreRecoverable\n );\n\n // Add any extra args to the hash under the name `extra_error_attributes`:\n var args = Array.prototype.slice.call(arguments, 1);\n\n if (args.length) {\n p.extra_error_attributes = args;\n }\n\n return this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;\n },\n\n /**\n * final cleanup function for when we have completed lexing the input;\n * make it an API so that external code can use this one once userland\n * code has decided it's time to destroy any lingering lexer error\n * hash object instances and the like: this function helps to clean\n * up these constructs, which *may* carry cyclic references which would\n * otherwise prevent the instances from being properly and timely\n * garbage-collected, i.e. this function helps prevent memory leaks!\n * \n * @public\n * @this {RegExpLexer}\n */\n cleanupAfterLex: function lexer_cleanupAfterLex(do_not_nuke_errorinfos) {\n // prevent lingering circular references from causing memory leaks:\n this.setInput('', {});\n\n // nuke the error hash info instances created during this run.\n // Userland code must COPY any data/references\n // in the error hash instance(s) it is more permanently interested in.\n if (!do_not_nuke_errorinfos) {\n for (var i = this.__error_infos.length - 1; i >= 0; i--) {\n var el = this.__error_infos[i];\n\n if (el && typeof el.destroy === 'function') {\n el.destroy();\n }\n }\n\n this.__error_infos.length = 0;\n }\n\n return this;\n },\n\n /**\n * clear the lexer token context; intended for internal use only\n * \n * @public\n * @this {RegExpLexer}\n */\n clear: function lexer_clear() {\n this.yytext = '';\n this.yyleng = 0;\n this.match = '';\n\n // - DO NOT reset `this.matched`\n this.matches = false;\n\n this._more = false;\n this._backtrack = false;\n var col = (this.yylloc ? this.yylloc.last_column : 0);\n\n this.yylloc = {\n first_line: this.yylineno + 1,\n first_column: col,\n last_line: this.yylineno + 1,\n last_column: col,\n range: [this.offset, this.offset]\n };\n },\n\n /**\n * resets the lexer, sets new input\n * \n * @public\n * @this {RegExpLexer}\n */\n setInput: function lexer_setInput(input, yy) {\n this.yy = yy || this.yy || {};\n\n // also check if we've fully initialized the lexer instance,\n // including expansion work to be done to go from a loaded\n // lexer to a usable lexer:\n if (!this.__decompressed) {\n // step 1: decompress the regex list:\n var rules = this.rules;\n\n for (var i = 0, len = rules.length; i < len; i++) {\n var rule_re = rules[i];\n\n // compression: is the RE an xref to another RE slot in the rules[] table?\n if (typeof rule_re === 'number') {\n rules[i] = rules[rule_re];\n }\n }\n\n // step 2: unfold the conditions[] set to make these ready for use:\n var conditions = this.conditions;\n\n for (var k in conditions) {\n var spec = conditions[k];\n var rule_ids = spec.rules;\n var len = rule_ids.length;\n var rule_regexes = new Array(len + 1); // slot 0 is unused; we use a 1-based index approach here to keep the hottest code in `lexer_next()` fast and simple! \n var rule_new_ids = new Array(len + 1);\n\n for (var i = 0; i < len; i++) {\n var idx = rule_ids[i];\n var rule_re = rules[idx];\n rule_regexes[i + 1] = rule_re;\n rule_new_ids[i + 1] = idx;\n }\n\n spec.rules = rule_new_ids;\n spec.__rule_regexes = rule_regexes;\n spec.__rule_count = len;\n }\n\n this.__decompressed = true;\n }\n\n this._input = input || '';\n this.clear();\n this._signaled_error_token = false;\n this.done = false;\n this.yylineno = 0;\n this.matched = '';\n this.conditionStack = ['INITIAL'];\n this.__currentRuleSet__ = null;\n\n this.yylloc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0,\n range: [0, 0]\n };\n\n this.offset = 0;\n return this;\n },\n\n /**\n * edit the remaining input via user-specified callback.\n * This can be used to forward-adjust the input-to-parse, \n * e.g. inserting macro expansions and alike in the\n * input which has yet to be lexed.\n * The behaviour of this API contrasts the `unput()` et al\n * APIs as those act on the *consumed* input, while this\n * one allows one to manipulate the future, without impacting\n * the current `yyloc` cursor location or any history. \n * \n * Use this API to help implement C-preprocessor-like\n * `#include` statements, etc.\n * \n * The provided callback must be synchronous and is\n * expected to return the edited input (string).\n *\n * The `cpsArg` argument value is passed to the callback\n * as-is.\n *\n * `callback` interface: \n * `function callback(input, cpsArg)`\n * \n * - `input` will carry the remaining-input-to-lex string\n * from the lexer.\n * - `cpsArg` is `cpsArg` passed into this API.\n * \n * The `this` reference for the callback will be set to\n * reference this lexer instance so that userland code\n * in the callback can easily and quickly access any lexer\n * API. \n *\n * When the callback returns a non-string-type falsey value,\n * we assume the callback did not edit the input and we\n * will using the input as-is.\n *\n * When the callback returns a non-string-type value, it\n * is converted to a string for lexing via the `\"\" + retval`\n * operation. (See also why: http://2ality.com/2012/03/converting-to-string.html \n * -- that way any returned object's `toValue()` and `toString()`\n * methods will be invoked in a proper/desirable order.)\n * \n * @public\n * @this {RegExpLexer}\n */\n editRemainingInput: function lexer_editRemainingInput(callback, cpsArg) {\n var rv = callback.call(this, this._input, cpsArg);\n\n if (typeof rv !== 'string') {\n if (rv) {\n this._input = '' + rv;\n } \n // else: keep `this._input` as is. \n } else {\n this._input = rv;\n }\n\n return this;\n },\n\n /**\n * consumes and returns one char from the input\n * \n * @public\n * @this {RegExpLexer}\n */\n input: function lexer_input() {\n if (!this._input) {\n //this.done = true; -- don't set `done` as we want the lex()/next() API to be able to produce one custom EOF token match after this anyhow. (lexer can match special <> tokens and perform user action code for a <> match, but only does so *once*)\n return null;\n }\n\n var ch = this._input[0];\n this.yytext += ch;\n this.yyleng++;\n this.offset++;\n this.match += ch;\n this.matched += ch;\n\n // Count the linenumber up when we hit the LF (or a stand-alone CR).\n // On CRLF, the linenumber is incremented when you fetch the CR or the CRLF combo\n // and we advance immediately past the LF as well, returning both together as if\n // it was all a single 'character' only.\n var slice_len = 1;\n\n var lines = false;\n\n if (ch === '\\n') {\n lines = true;\n } else if (ch === '\\r') {\n lines = true;\n var ch2 = this._input[1];\n\n if (ch2 === '\\n') {\n slice_len++;\n ch += ch2;\n this.yytext += ch2;\n this.yyleng++;\n this.offset++;\n this.match += ch2;\n this.matched += ch2;\n this.yylloc.range[1]++;\n }\n }\n\n if (lines) {\n this.yylineno++;\n this.yylloc.last_line++;\n this.yylloc.last_column = 0;\n } else {\n this.yylloc.last_column++;\n }\n\n this.yylloc.range[1]++;\n this._input = this._input.slice(slice_len);\n return ch;\n },\n\n /**\n * unshifts one char (or an entire string) into the input\n * \n * @public\n * @this {RegExpLexer}\n */\n unput: function lexer_unput(ch) {\n var len = ch.length;\n var lines = ch.split(/(?:\\r\\n?|\\n)/g);\n this._input = ch + this._input;\n this.yytext = this.yytext.substr(0, this.yytext.length - len);\n this.yyleng = this.yytext.length;\n this.offset -= len;\n this.match = this.match.substr(0, this.match.length - len);\n this.matched = this.matched.substr(0, this.matched.length - len);\n\n if (lines.length > 1) {\n this.yylineno -= lines.length - 1;\n this.yylloc.last_line = this.yylineno + 1;\n\n // Get last entirely matched line into the `pre_lines[]` array's\n // last index slot; we don't mind when other previously \n // matched lines end up in the array too. \n var pre = this.match;\n\n var pre_lines = pre.split(/(?:\\r\\n?|\\n)/g);\n\n if (pre_lines.length === 1) {\n pre = this.matched;\n pre_lines = pre.split(/(?:\\r\\n?|\\n)/g);\n }\n\n this.yylloc.last_column = pre_lines[pre_lines.length - 1].length;\n } else {\n this.yylloc.last_column -= len;\n }\n\n this.yylloc.range[1] = this.yylloc.range[0] + this.yyleng;\n this.done = false;\n return this;\n },\n\n /**\n * cache matched text and append it on next action\n * \n * @public\n * @this {RegExpLexer}\n */\n more: function lexer_more() {\n this._more = true;\n return this;\n },\n\n /**\n * signal the lexer that this rule fails to match the input, so the\n * next matching rule (regex) should be tested instead.\n * \n * @public\n * @this {RegExpLexer}\n */\n reject: function lexer_reject() {\n if (this.options.backtrack_lexer) {\n this._backtrack = true;\n } else {\n // when the `parseError()` call returns, we MUST ensure that the error is registered.\n // We accomplish this by signaling an 'error' token to be produced for the current\n // `.lex()` run.\n var lineno_msg = '';\n\n if (this.yylloc) {\n lineno_msg = ' on line ' + (this.yylineno + 1);\n }\n\n var p = this.constructLexErrorInfo(\n 'Lexical error' + lineno_msg + ': You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).',\n false\n );\n\n this._signaled_error_token = this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;\n }\n\n return this;\n },\n\n /**\n * retain first n characters of the match\n * \n * @public\n * @this {RegExpLexer}\n */\n less: function lexer_less(n) {\n return this.unput(this.match.slice(n));\n },\n\n /**\n * return (part of the) already matched input, i.e. for error\n * messages.\n * \n * Limit the returned string length to `maxSize` (default: 20).\n * \n * Limit the returned string to the `maxLines` number of lines of\n * input (default: 1).\n * \n * Negative limit values equal *unlimited*.\n * \n * @public\n * @this {RegExpLexer}\n */\n pastInput: function lexer_pastInput(maxSize, maxLines) {\n var past = this.matched.substring(0, this.matched.length - this.match.length);\n\n if (maxSize < 0)\n maxSize = past.length;\n else if (!maxSize)\n maxSize = 20;\n\n if (maxLines < 0)\n maxLines = past.length; // can't ever have more input lines than this! \n else if (!maxLines)\n maxLines = 1;\n\n // `substr` anticipation: treat \\r\\n as a single character and take a little\n // more than necessary so that we can still properly check against maxSize\n // after we've transformed and limited the newLines in here:\n past = past.substr(-maxSize * 2 - 2);\n\n // now that we have a significantly reduced string to process, transform the newlines\n // and chop them, then limit them:\n var a = past.replace(/\\r\\n|\\r/g, '\\n').split('\\n');\n\n a = a.slice(-maxLines);\n past = a.join('\\n');\n\n // When, after limiting to maxLines, we still have too much to return,\n // do add an ellipsis prefix...\n if (past.length > maxSize) {\n past = '...' + past.substr(-maxSize);\n }\n\n return past;\n },\n\n /**\n * return (part of the) upcoming input, i.e. for error messages.\n * \n * Limit the returned string length to `maxSize` (default: 20).\n * \n * Limit the returned string to the `maxLines` number of lines of input (default: 1).\n * \n * Negative limit values equal *unlimited*.\n *\n * > ### NOTE ###\n * >\n * > *\"upcoming input\"* is defined as the whole of the both\n * > the *currently lexed* input, together with any remaining input\n * > following that. *\"currently lexed\"* input is the input \n * > already recognized by the lexer but not yet returned with\n * > the lexer token. This happens when you are invoking this API\n * > from inside any lexer rule action code block. \n * >\n * \n * @public\n * @this {RegExpLexer}\n */\n upcomingInput: function lexer_upcomingInput(maxSize, maxLines) {\n var next = this.match;\n\n if (maxSize < 0)\n maxSize = next.length + this._input.length;\n else if (!maxSize)\n maxSize = 20;\n\n if (maxLines < 0)\n maxLines = maxSize; // can't ever have more input lines than this! \n else if (!maxLines)\n maxLines = 1;\n\n // `substring` anticipation: treat \\r\\n as a single character and take a little\n // more than necessary so that we can still properly check against maxSize\n // after we've transformed and limited the newLines in here:\n if (next.length < maxSize * 2 + 2) {\n next += this._input.substring(0, maxSize * 2 + 2); // substring is faster on Chrome/V8 \n }\n\n // now that we have a significantly reduced string to process, transform the newlines\n // and chop them, then limit them:\n var a = next.replace(/\\r\\n|\\r/g, '\\n').split('\\n');\n\n a = a.slice(0, maxLines);\n next = a.join('\\n');\n\n // When, after limiting to maxLines, we still have too much to return,\n // do add an ellipsis postfix...\n if (next.length > maxSize) {\n next = next.substring(0, maxSize) + '...';\n }\n\n return next;\n },\n\n /**\n * return a string which displays the character position where the\n * lexing error occurred, i.e. for error messages\n * \n * @public\n * @this {RegExpLexer}\n */\n showPosition: function lexer_showPosition(maxPrefix, maxPostfix) {\n var pre = this.pastInput(maxPrefix).replace(/\\s/g, ' ');\n var c = new Array(pre.length + 1).join('-');\n return pre + this.upcomingInput(maxPostfix).replace(/\\s/g, ' ') + '\\n' + c + '^';\n },\n\n /**\n * return an YYLLOC info object derived off the given context (actual, preceding, following, current).\n * Use this method when the given `actual` location is not guaranteed to exist (i.e. when\n * it MAY be NULL) and you MUST have a valid location info object anyway:\n * then we take the given context of the `preceding` and `following` locations, IFF those are available,\n * and reconstruct the `actual` location info from those.\n * If this fails, the heuristic is to take the `current` location, IFF available.\n * If this fails as well, we assume the sought location is at/around the current lexer position\n * and then produce that one as a response. DO NOTE that these heuristic/derived location info\n * values MAY be inaccurate!\n *\n * NOTE: `deriveLocationInfo()` ALWAYS produces a location info object *copy* of `actual`, not just\n * a *reference* hence all input location objects can be assumed to be 'constant' (function has no side-effects).\n * \n * @public\n * @this {RegExpLexer}\n */\n deriveLocationInfo: function lexer_deriveYYLLOC(actual, preceding, following, current) {\n var loc = {\n first_line: 1,\n first_column: 0,\n last_line: 1,\n last_column: 0,\n range: [0, 0]\n };\n\n if (actual) {\n loc.first_line = actual.first_line | 0;\n loc.last_line = actual.last_line | 0;\n loc.first_column = actual.first_column | 0;\n loc.last_column = actual.last_column | 0;\n\n if (actual.range) {\n loc.range[0] = actual.range[0] | 0;\n loc.range[1] = actual.range[1] | 0;\n }\n }\n\n if (loc.first_line <= 0 || loc.last_line < loc.first_line) {\n // plan B: heuristic using preceding and following:\n if (loc.first_line <= 0 && preceding) {\n loc.first_line = preceding.last_line | 0;\n loc.first_column = preceding.last_column | 0;\n\n if (preceding.range) {\n loc.range[0] = actual.range[1] | 0;\n }\n }\n\n if ((loc.last_line <= 0 || loc.last_line < loc.first_line) && following) {\n loc.last_line = following.first_line | 0;\n loc.last_column = following.first_column | 0;\n\n if (following.range) {\n loc.range[1] = actual.range[0] | 0;\n }\n }\n\n // plan C?: see if the 'current' location is useful/sane too:\n if (loc.first_line <= 0 && current && (loc.last_line <= 0 || current.last_line <= loc.last_line)) {\n loc.first_line = current.first_line | 0;\n loc.first_column = current.first_column | 0;\n\n if (current.range) {\n loc.range[0] = current.range[0] | 0;\n }\n }\n\n if (loc.last_line <= 0 && current && (loc.first_line <= 0 || current.first_line >= loc.first_line)) {\n loc.last_line = current.last_line | 0;\n loc.last_column = current.last_column | 0;\n\n if (current.range) {\n loc.range[1] = current.range[1] | 0;\n }\n }\n }\n\n // sanitize: fix last_line BEFORE we fix first_line as we use the 'raw' value of the latter\n // or plan D heuristics to produce a 'sensible' last_line value:\n if (loc.last_line <= 0) {\n if (loc.first_line <= 0) {\n loc.first_line = this.yylloc.first_line;\n loc.last_line = this.yylloc.last_line;\n loc.first_column = this.yylloc.first_column;\n loc.last_column = this.yylloc.last_column;\n loc.range[0] = this.yylloc.range[0];\n loc.range[1] = this.yylloc.range[1];\n } else {\n loc.last_line = this.yylloc.last_line;\n loc.last_column = this.yylloc.last_column;\n loc.range[1] = this.yylloc.range[1];\n }\n }\n\n if (loc.first_line <= 0) {\n loc.first_line = loc.last_line;\n loc.first_column = 0; // loc.last_column; \n loc.range[1] = loc.range[0];\n }\n\n if (loc.first_column < 0) {\n loc.first_column = 0;\n }\n\n if (loc.last_column < 0) {\n loc.last_column = (loc.first_column > 0 ? loc.first_column : 80);\n }\n\n return loc;\n },\n\n /**\n * return a string which displays the lines & columns of input which are referenced \n * by the given location info range, plus a few lines of context.\n * \n * This function pretty-prints the indicated section of the input, with line numbers \n * and everything!\n * \n * This function is very useful to provide highly readable error reports, while\n * the location range may be specified in various flexible ways:\n * \n * - `loc` is the location info object which references the area which should be\n * displayed and 'marked up': these lines & columns of text are marked up by `^`\n * characters below each character in the entire input range.\n * \n * - `context_loc` is the *optional* location info object which instructs this\n * pretty-printer how much *leading* context should be displayed alongside\n * the area referenced by `loc`. This can help provide context for the displayed\n * error, etc.\n * \n * When this location info is not provided, a default context of 3 lines is\n * used.\n * \n * - `context_loc2` is another *optional* location info object, which serves\n * a similar purpose to `context_loc`: it specifies the amount of *trailing*\n * context lines to display in the pretty-print output.\n * \n * When this location info is not provided, a default context of 1 line only is\n * used.\n * \n * Special Notes:\n * \n * - when the `loc`-indicated range is very large (about 5 lines or more), then\n * only the first and last few lines of this block are printed while a\n * `...continued...` message will be printed between them.\n * \n * This serves the purpose of not printing a huge amount of text when the `loc`\n * range happens to be huge: this way a manageable & readable output results\n * for arbitrary large ranges.\n * \n * - this function can display lines of input which whave not yet been lexed.\n * `prettyPrintRange()` can access the entire input!\n * \n * @public\n * @this {RegExpLexer}\n */\n prettyPrintRange: function lexer_prettyPrintRange(loc, context_loc, context_loc2) {\n loc = this.deriveLocationInfo(loc, context_loc, context_loc2);\n const CONTEXT = 3;\n const CONTEXT_TAIL = 1;\n const MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT = 2;\n var input = this.matched + this._input;\n var lines = input.split('\\n');\n var l0 = Math.max(1, (context_loc ? context_loc.first_line : loc.first_line - CONTEXT));\n var l1 = Math.max(1, (context_loc2 ? context_loc2.last_line : loc.last_line + CONTEXT_TAIL));\n var lineno_display_width = 1 + Math.log10(l1 | 1) | 0;\n var ws_prefix = new Array(lineno_display_width).join(' ');\n var nonempty_line_indexes = [];\n\n var rv = lines.slice(l0 - 1, l1 + 1).map(function injectLineNumber(line, index) {\n var lno = index + l0;\n var lno_pfx = (ws_prefix + lno).substr(-lineno_display_width);\n var rv = lno_pfx + ': ' + line;\n var errpfx = new Array(lineno_display_width + 1).join('^');\n var offset = 2 + 1;\n var len = 0;\n\n if (lno === loc.first_line) {\n offset += loc.first_column;\n\n len = Math.max(\n 2,\n ((lno === loc.last_line ? loc.last_column : line.length)) - loc.first_column + 1\n );\n } else if (lno === loc.last_line) {\n len = Math.max(2, loc.last_column + 1);\n } else if (lno > loc.first_line && lno < loc.last_line) {\n len = Math.max(2, line.length + 1);\n }\n\n if (len) {\n var lead = new Array(offset).join('.');\n var mark = new Array(len).join('^');\n rv += '\\n' + errpfx + lead + mark;\n\n if (line.trim().length > 0) {\n nonempty_line_indexes.push(index);\n }\n }\n\n rv = rv.replace(/\\t/g, ' ');\n return rv;\n });\n\n // now make sure we don't print an overly large amount of error area: limit it \n // to the top and bottom line count:\n if (nonempty_line_indexes.length > 2 * MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT) {\n var clip_start = nonempty_line_indexes[MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT - 1] + 1;\n var clip_end = nonempty_line_indexes[nonempty_line_indexes.length - MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT] - 1;\n var intermediate_line = new Array(lineno_display_width + 1).join(' ') + ' (...continued...)';\n intermediate_line += '\\n' + new Array(lineno_display_width + 1).join('-') + ' (---------------)';\n rv.splice(clip_start, clip_end - clip_start + 1, intermediate_line);\n }\n\n return rv.join('\\n');\n },\n\n /**\n * helper function, used to produce a human readable description as a string, given\n * the input `yylloc` location object.\n * \n * Set `display_range_too` to TRUE to include the string character index position(s)\n * in the description if the `yylloc.range` is available.\n * \n * @public\n * @this {RegExpLexer}\n */\n describeYYLLOC: function lexer_describe_yylloc(yylloc, display_range_too) {\n var l1 = yylloc.first_line;\n var l2 = yylloc.last_line;\n var c1 = yylloc.first_column;\n var c2 = yylloc.last_column;\n var dl = l2 - l1;\n var dc = c2 - c1;\n var rv;\n\n if (dl === 0) {\n rv = 'line ' + l1 + ', ';\n\n if (dc <= 1) {\n rv += 'column ' + c1;\n } else {\n rv += 'columns ' + c1 + ' .. ' + c2;\n }\n } else {\n rv = 'lines ' + l1 + '(column ' + c1 + ') .. ' + l2 + '(column ' + c2 + ')';\n }\n\n if (yylloc.range && display_range_too) {\n var r1 = yylloc.range[0];\n var r2 = yylloc.range[1] - 1;\n\n if (r2 <= r1) {\n rv += ' {String Offset: ' + r1 + '}';\n } else {\n rv += ' {String Offset range: ' + r1 + ' .. ' + r2 + '}';\n }\n }\n\n return rv;\n },\n\n /**\n * test the lexed token: return FALSE when not a match, otherwise return token.\n * \n * `match` is supposed to be an array coming out of a regex match, i.e. `match[0]`\n * contains the actually matched text string.\n * \n * Also move the input cursor forward and update the match collectors:\n * \n * - `yytext`\n * - `yyleng`\n * - `match`\n * - `matches`\n * - `yylloc`\n * - `offset`\n * \n * @public\n * @this {RegExpLexer}\n */\n test_match: function lexer_test_match(match, indexed_rule) {\n var token, lines, backup, match_str, match_str_len;\n\n if (this.options.backtrack_lexer) {\n // save context\n backup = {\n yylineno: this.yylineno,\n\n yylloc: {\n first_line: this.yylloc.first_line,\n last_line: this.yylloc.last_line,\n first_column: this.yylloc.first_column,\n last_column: this.yylloc.last_column,\n range: this.yylloc.range.slice(0)\n },\n\n yytext: this.yytext,\n match: this.match,\n matches: this.matches,\n matched: this.matched,\n yyleng: this.yyleng,\n offset: this.offset,\n _more: this._more,\n _input: this._input,\n\n //_signaled_error_token: this._signaled_error_token,\n yy: this.yy,\n\n conditionStack: this.conditionStack.slice(0),\n done: this.done\n };\n }\n\n match_str = match[0];\n match_str_len = match_str.length;\n\n // if (match_str.indexOf('\\n') !== -1 || match_str.indexOf('\\r') !== -1) {\n lines = match_str.split(/(?:\\r\\n?|\\n)/g);\n\n if (lines.length > 1) {\n this.yylineno += lines.length - 1;\n this.yylloc.last_line = this.yylineno + 1;\n this.yylloc.last_column = lines[lines.length - 1].length;\n } else {\n this.yylloc.last_column += match_str_len;\n }\n\n // }\n this.yytext += match_str;\n\n this.match += match_str;\n this.matched += match_str;\n this.matches = match;\n this.yyleng = this.yytext.length;\n this.yylloc.range[1] += match_str_len;\n\n // previous lex rules MAY have invoked the `more()` API rather than producing a token:\n // those rules will already have moved this `offset` forward matching their match lengths,\n // hence we must only add our own match length now:\n this.offset += match_str_len;\n\n this._more = false;\n this._backtrack = false;\n this._input = this._input.slice(match_str_len);\n\n // calling this method:\n //\n // function lexer__performAction(yy, yyrulenumber, YY_START) {...}\n token = this.performAction.call(\n this,\n this.yy,\n indexed_rule,\n this.conditionStack[this.conditionStack.length - 1] /* = YY_START */\n );\n\n // otherwise, when the action codes are all simple return token statements:\n //token = this.simpleCaseActionClusters[indexed_rule];\n\n if (this.done && this._input) {\n this.done = false;\n }\n\n if (token) {\n return token;\n } else if (this._backtrack) {\n // recover context\n for (var k in backup) {\n this[k] = backup[k];\n }\n\n this.__currentRuleSet__ = null;\n return false; // rule action called reject() implying the next rule should be tested instead. \n } else if (this._signaled_error_token) {\n // produce one 'error' token as `.parseError()` in `reject()`\n // did not guarantee a failure signal by throwing an exception!\n token = this._signaled_error_token;\n\n this._signaled_error_token = false;\n return token;\n }\n\n return false;\n },\n\n /**\n * return next match in input\n * \n * @public\n * @this {RegExpLexer}\n */\n next: function lexer_next() {\n if (this.done) {\n this.clear();\n return this.EOF;\n }\n\n if (!this._input) {\n this.done = true;\n }\n\n var token, match, tempMatch, index;\n\n if (!this._more) {\n this.clear();\n }\n\n var spec = this.__currentRuleSet__;\n\n if (!spec) {\n // Update the ruleset cache as we apparently encountered a state change or just started lexing.\n // The cache is set up for fast lookup -- we assume a lexer will switch states much less often than it will\n // invoke the `lex()` token-producing API and related APIs, hence caching the set for direct access helps\n // speed up those activities a tiny bit.\n spec = this.__currentRuleSet__ = this._currentRules();\n\n // Check whether a *sane* condition has been pushed before: this makes the lexer robust against\n // user-programmer bugs such as https://github.com/zaach/jison-lex/issues/19\n if (!spec || !spec.rules) {\n var lineno_msg = '';\n\n if (this.options.trackPosition) {\n lineno_msg = ' on line ' + (this.yylineno + 1);\n }\n\n var p = this.constructLexErrorInfo(\n 'Internal lexer engine error' + lineno_msg + ': The lex grammar programmer pushed a non-existing condition name \"' + this.topState() + '\"; this is a fatal error and should be reported to the application programmer team!',\n false\n );\n\n // produce one 'error' token until this situation has been resolved, most probably by parse termination!\n return this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;\n }\n }\n\n var rule_ids = spec.rules;\n var regexes = spec.__rule_regexes;\n var len = spec.__rule_count;\n\n // Note: the arrays are 1-based, while `len` itself is a valid index,\n // hence the non-standard less-or-equal check in the next loop condition!\n for (var i = 1; i <= len; i++) {\n tempMatch = this._input.match(regexes[i]);\n\n if (tempMatch && (!match || tempMatch[0].length > match[0].length)) {\n match = tempMatch;\n index = i;\n\n if (this.options.backtrack_lexer) {\n token = this.test_match(tempMatch, rule_ids[i]);\n\n if (token !== false) {\n return token;\n } else if (this._backtrack) {\n match = undefined;\n continue; // rule action called reject() implying a rule MISmatch. \n } else {\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n } else if (!this.options.flex) {\n break;\n }\n }\n }\n\n if (match) {\n token = this.test_match(match, rule_ids[index]);\n\n if (token !== false) {\n return token;\n }\n\n // else: this is a lexer rule which consumes input without producing a token (e.g. whitespace)\n return false;\n }\n\n if (!this._input) {\n this.done = true;\n this.clear();\n return this.EOF;\n } else {\n var lineno_msg = '';\n\n if (this.options.trackPosition) {\n lineno_msg = ' on line ' + (this.yylineno + 1);\n }\n\n var p = this.constructLexErrorInfo(\n 'Lexical error' + lineno_msg + ': Unrecognized text.',\n this.options.lexerErrorsAreRecoverable\n );\n\n var pendingInput = this._input;\n var activeCondition = this.topState();\n var conditionStackDepth = this.conditionStack.length;\n token = this.parseError(p.errStr, p, this.JisonLexerError) || this.ERROR;\n\n if (token === this.ERROR) {\n // we can try to recover from a lexer error that `parseError()` did not 'recover' for us\n // by moving forward at least one character at a time IFF the (user-specified?) `parseError()`\n // has not consumed/modified any pending input or changed state in the error handler:\n if (!this.matches && // and make sure the input has been modified/consumed ...\n pendingInput === this._input && // ...or the lexer state has been modified significantly enough\n // to merit a non-consuming error handling action right now.\n activeCondition === this.topState() && conditionStackDepth === this.conditionStack.length) {\n this.input();\n }\n }\n\n return token;\n }\n },\n\n /**\n * return next match that has a token\n * \n * @public\n * @this {RegExpLexer}\n */\n lex: function lexer_lex() {\n var r;\n\n // allow the PRE/POST handlers set/modify the return token for maximum flexibility of the generated lexer:\n if (typeof this.pre_lex === 'function') {\n r = this.pre_lex.call(this, 0);\n }\n\n if (typeof this.options.pre_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.options.pre_lex.call(this, r) || r;\n }\n\n if (this.yy && typeof this.yy.pre_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.yy.pre_lex.call(this, r) || r;\n }\n\n while (!r) {\n r = this.next();\n }\n\n if (this.yy && typeof this.yy.post_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.yy.post_lex.call(this, r) || r;\n }\n\n if (typeof this.options.post_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.options.post_lex.call(this, r) || r;\n }\n\n if (typeof this.post_lex === 'function') {\n // (also account for a userdef function which does not return any value: keep the token as is)\n r = this.post_lex.call(this, r) || r;\n }\n\n return r;\n },\n\n /**\n * return next match that has a token. Identical to the `lex()` API but does not invoke any of the \n * `pre_lex()` nor any of the `post_lex()` callbacks.\n * \n * @public\n * @this {RegExpLexer}\n */\n fastLex: function lexer_fastLex() {\n var r;\n\n while (!r) {\n r = this.next();\n }\n\n return r;\n },\n\n /**\n * return info about the lexer state that can help a parser or other lexer API user to use the\n * most efficient means available. This API is provided to aid run-time performance for larger\n * systems which employ this lexer.\n * \n * @public\n * @this {RegExpLexer}\n */\n canIUse: function lexer_canIUse() {\n var rv = {\n fastLex: !(typeof this.pre_lex === 'function' || typeof this.options.pre_lex === 'function' || this.yy && typeof this.yy.pre_lex === 'function' || this.yy && typeof this.yy.post_lex === 'function' || typeof this.options.post_lex === 'function' || typeof this.post_lex === 'function') && typeof this.fastLex === 'function'\n };\n\n return rv;\n },\n\n /**\n * backwards compatible alias for `pushState()`;\n * the latter is symmetrical with `popState()` and we advise to use\n * those APIs in any modern lexer code, rather than `begin()`.\n * \n * @public\n * @this {RegExpLexer}\n */\n begin: function lexer_begin(condition) {\n return this.pushState(condition);\n },\n\n /**\n * activates a new lexer condition state (pushes the new lexer\n * condition state onto the condition stack)\n * \n * @public\n * @this {RegExpLexer}\n */\n pushState: function lexer_pushState(condition) {\n this.conditionStack.push(condition);\n this.__currentRuleSet__ = null;\n return this;\n },\n\n /**\n * pop the previously active lexer condition state off the condition\n * stack\n * \n * @public\n * @this {RegExpLexer}\n */\n popState: function lexer_popState() {\n var n = this.conditionStack.length - 1;\n\n if (n > 0) {\n this.__currentRuleSet__ = null;\n return this.conditionStack.pop();\n } else {\n return this.conditionStack[0];\n }\n },\n\n /**\n * return the currently active lexer condition state; when an index\n * argument is provided it produces the N-th previous condition state,\n * if available\n * \n * @public\n * @this {RegExpLexer}\n */\n topState: function lexer_topState(n) {\n n = this.conditionStack.length - 1 - Math.abs(n || 0);\n\n if (n >= 0) {\n return this.conditionStack[n];\n } else {\n return 'INITIAL';\n }\n },\n\n /**\n * (internal) determine the lexer rule set which is active for the\n * currently active lexer condition state\n * \n * @public\n * @this {RegExpLexer}\n */\n _currentRules: function lexer__currentRules() {\n if (this.conditionStack.length && this.conditionStack[this.conditionStack.length - 1]) {\n return this.conditions[this.conditionStack[this.conditionStack.length - 1]];\n } else {\n return this.conditions['INITIAL'];\n }\n },\n\n /**\n * return the number of states currently on the stack\n * \n * @public\n * @this {RegExpLexer}\n */\n stateStackSize: function lexer_stateStackSize() {\n return this.conditionStack.length;\n },\n\n options: {\n trackPosition: true\n },\n\n JisonLexerError: JisonLexerError,\n\n performAction: function lexer__performAction(yy, yyrulenumber, YY_START) {\n var yy_ = this;\n var YYSTATE = YY_START;\n\n switch (yyrulenumber) {\n case 1:\n /*! Conditions:: INITIAL */\n /*! Rule:: \\s+ */\n /* skip whitespace */\n break;\n\n default:\n return this.simpleCaseActionClusters[yyrulenumber];\n }\n },\n\n simpleCaseActionClusters: {\n /*! Conditions:: INITIAL */\n /*! Rule:: (--[0-9a-z-A-Z-]*) */\n 0: 13,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\* */\n 2: 5,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\/ */\n 3: 6,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\+ */\n 4: 3,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: - */\n 5: 4,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)px\\b */\n 6: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)cm\\b */\n 7: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)mm\\b */\n 8: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)in\\b */\n 9: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)pt\\b */\n 10: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)pc\\b */\n 11: 15,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)deg\\b */\n 12: 16,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)grad\\b */\n 13: 16,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)rad\\b */\n 14: 16,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)turn\\b */\n 15: 16,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)s\\b */\n 16: 17,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)ms\\b */\n 17: 17,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)Hz\\b */\n 18: 18,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)kHz\\b */\n 19: 18,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)dpi\\b */\n 20: 19,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)dpcm\\b */\n 21: 19,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)dppx\\b */\n 22: 19,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)em\\b */\n 23: 20,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)ex\\b */\n 24: 21,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)ch\\b */\n 25: 22,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)rem\\b */\n 26: 23,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)vw\\b */\n 27: 25,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)vh\\b */\n 28: 24,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)vmin\\b */\n 29: 26,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)vmax\\b */\n 30: 27,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)% */\n 31: 28,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([0-9]+(\\.[0-9]*)?|\\.[0-9]+)\\b */\n 32: 11,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: (calc) */\n 33: 9,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: (var) */\n 34: 12,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: ([a-z]+) */\n 35: 10,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\( */\n 36: 7,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: \\) */\n 37: 8,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: , */\n 38: 14,\n\n /*! Conditions:: INITIAL */\n /*! Rule:: $ */\n 39: 1\n },\n\n rules: [\n /* 0: */ /^(?:(--[\\d\\-A-Za-z]*))/,\n /* 1: */ /^(?:\\s+)/,\n /* 2: */ /^(?:\\*)/,\n /* 3: */ /^(?:\\/)/,\n /* 4: */ /^(?:\\+)/,\n /* 5: */ /^(?:-)/,\n /* 6: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)px\\b)/,\n /* 7: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)cm\\b)/,\n /* 8: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)mm\\b)/,\n /* 9: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)in\\b)/,\n /* 10: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)pt\\b)/,\n /* 11: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)pc\\b)/,\n /* 12: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)deg\\b)/,\n /* 13: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)grad\\b)/,\n /* 14: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)rad\\b)/,\n /* 15: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)turn\\b)/,\n /* 16: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)s\\b)/,\n /* 17: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)ms\\b)/,\n /* 18: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)Hz\\b)/,\n /* 19: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)kHz\\b)/,\n /* 20: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)dpi\\b)/,\n /* 21: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)dpcm\\b)/,\n /* 22: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)dppx\\b)/,\n /* 23: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)em\\b)/,\n /* 24: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)ex\\b)/,\n /* 25: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)ch\\b)/,\n /* 26: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)rem\\b)/,\n /* 27: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)vw\\b)/,\n /* 28: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)vh\\b)/,\n /* 29: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)vmin\\b)/,\n /* 30: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)vmax\\b)/,\n /* 31: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)%)/,\n /* 32: */ /^(?:(\\d+(\\.\\d*)?|\\.\\d+)\\b)/,\n /* 33: */ /^(?:(calc))/,\n /* 34: */ /^(?:(var))/,\n /* 35: */ /^(?:([a-z]+))/,\n /* 36: */ /^(?:\\()/,\n /* 37: */ /^(?:\\))/,\n /* 38: */ /^(?:,)/,\n /* 39: */ /^(?:$)/\n ],\n\n conditions: {\n 'INITIAL': {\n rules: [\n 0,\n 1,\n 2,\n 3,\n 4,\n 5,\n 6,\n 7,\n 8,\n 9,\n 10,\n 11,\n 12,\n 13,\n 14,\n 15,\n 16,\n 17,\n 18,\n 19,\n 20,\n 21,\n 22,\n 23,\n 24,\n 25,\n 26,\n 27,\n 28,\n 29,\n 30,\n 31,\n 32,\n 33,\n 34,\n 35,\n 36,\n 37,\n 38,\n 39\n ],\n\n inclusive: true\n }\n }\n };\n\n return lexer;\n}();\nparser.lexer = lexer;\n\n\n\nfunction Parser() {\n this.yy = {};\n}\nParser.prototype = parser;\nparser.Parser = Parser;\n\nreturn new Parser();\n})();\n\n \n\n\nif (typeof require !== 'undefined' && typeof exports !== 'undefined') {\n exports.parser = parser;\n exports.Parser = parser.Parser;\n exports.parse = function () {\n return parser.parse.apply(parser, arguments);\n };\n \n}\n","var conversions = {\r\n // length\r\n 'px': {\r\n 'px': 1,\r\n 'cm': 96.0/2.54,\r\n 'mm': 96.0/25.4,\r\n 'in': 96,\r\n 'pt': 96.0/72.0,\r\n 'pc': 16\r\n },\r\n 'cm': {\r\n 'px': 2.54/96.0,\r\n 'cm': 1,\r\n 'mm': 0.1,\r\n 'in': 2.54,\r\n 'pt': 2.54/72.0,\r\n 'pc': 2.54/6.0\r\n },\r\n 'mm': {\r\n 'px': 25.4/96.0,\r\n 'cm': 10,\r\n 'mm': 1,\r\n 'in': 25.4,\r\n 'pt': 25.4/72.0,\r\n 'pc': 25.4/6.0\r\n },\r\n 'in': {\r\n 'px': 1.0/96.0,\r\n 'cm': 1.0/2.54,\r\n 'mm': 1.0/25.4,\r\n 'in': 1,\r\n 'pt': 1.0/72.0,\r\n 'pc': 1.0/6.0\r\n },\r\n 'pt': {\r\n 'px': 0.75,\r\n 'cm': 72.0/2.54,\r\n 'mm': 72.0/25.4,\r\n 'in': 72,\r\n 'pt': 1,\r\n 'pc': 12\r\n },\r\n 'pc': {\r\n 'px': 6.0/96.0,\r\n 'cm': 6.0/2.54,\r\n 'mm': 6.0/25.4,\r\n 'in': 6,\r\n 'pt': 6.0/72.0,\r\n 'pc': 1\r\n },\r\n // angle\r\n 'deg': {\r\n 'deg': 1,\r\n 'grad': 0.9,\r\n 'rad': 180/Math.PI,\r\n 'turn': 360\r\n },\r\n 'grad': {\r\n 'deg': 400/360,\r\n 'grad': 1,\r\n 'rad': 200/Math.PI,\r\n 'turn': 400\r\n },\r\n 'rad': {\r\n 'deg': Math.PI/180,\r\n 'grad': Math.PI/200,\r\n 'rad': 1,\r\n 'turn': Math.PI*2\r\n },\r\n 'turn': {\r\n 'deg': 1/360,\r\n 'grad': 1/400,\r\n 'rad': 0.5/Math.PI,\r\n 'turn': 1\r\n },\r\n // time\r\n 's': {\r\n 's': 1,\r\n 'ms': 1/1000\r\n },\r\n 'ms': {\r\n 's': 1000,\r\n 'ms': 1\r\n },\r\n // frequency\r\n 'Hz': {\r\n 'Hz': 1,\r\n 'kHz': 1000\r\n },\r\n 'kHz': {\r\n 'Hz': 1/1000,\r\n 'kHz': 1\r\n },\r\n // resolution\r\n 'dpi': {\r\n 'dpi': 1,\r\n 'dpcm': 1.0/2.54,\r\n 'dppx': 1/96\r\n },\r\n 'dpcm': {\r\n 'dpi': 2.54,\r\n 'dpcm': 1,\r\n 'dppx': 2.54/96.0\r\n },\r\n 'dppx': {\r\n 'dpi': 96,\r\n 'dpcm': 96.0/2.54,\r\n 'dppx': 1\r\n }\r\n};\r\n\r\nmodule.exports = function (value, sourceUnit, targetUnit, precision) {\r\n if (!conversions.hasOwnProperty(targetUnit))\r\n throw new Error(\"Cannot convert to \" + targetUnit);\r\n\r\n if (!conversions[targetUnit].hasOwnProperty(sourceUnit))\r\n throw new Error(\"Cannot convert from \" + sourceUnit + \" to \" + targetUnit);\r\n \r\n var converted = conversions[targetUnit][sourceUnit] * value;\r\n \r\n if (precision !== false) {\r\n precision = Math.pow(10, parseInt(precision) || 5);\r\n return Math.round(converted * precision) / precision;\r\n }\r\n \r\n return converted;\r\n};\r\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _cssUnitConverter = require('css-unit-converter');\n\nvar _cssUnitConverter2 = _interopRequireDefault(_cssUnitConverter);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction convertNodes(left, right, precision) {\n switch (left.type) {\n case 'LengthValue':\n case 'AngleValue':\n case 'TimeValue':\n case 'FrequencyValue':\n case 'ResolutionValue':\n return convertAbsoluteLength(left, right, precision);\n default:\n return { left: left, right: right };\n }\n}\n\nfunction convertAbsoluteLength(left, right, precision) {\n if (right.type === left.type) {\n right = {\n type: left.type,\n value: (0, _cssUnitConverter2.default)(right.value, right.unit, left.unit, precision),\n unit: left.unit\n };\n }\n return { left: left, right: right };\n}\n\nexports.default = convertNodes;\nmodule.exports = exports['default'];","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.flip = flip;\n\nvar _convert = require(\"./convert\");\n\nvar _convert2 = _interopRequireDefault(_convert);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction reduce(node, precision) {\n if (node.type === \"MathExpression\") return reduceMathExpression(node, precision);\n if (node.type === \"Calc\") return reduce(node.value, precision);\n\n return node;\n}\n\nfunction isEqual(left, right) {\n return left.type === right.type && left.value === right.value;\n}\n\nfunction isValueType(type) {\n switch (type) {\n case 'LengthValue':\n case 'AngleValue':\n case 'TimeValue':\n case 'FrequencyValue':\n case 'ResolutionValue':\n case 'EmValue':\n case 'ExValue':\n case 'ChValue':\n case 'RemValue':\n case 'VhValue':\n case 'VwValue':\n case 'VminValue':\n case 'VmaxValue':\n case 'PercentageValue':\n case 'Value':\n return true;\n }\n return false;\n}\n\nfunction convertMathExpression(node, precision) {\n var nodes = (0, _convert2.default)(node.left, node.right, precision);\n var left = reduce(nodes.left, precision);\n var right = reduce(nodes.right, precision);\n\n if (left.type === \"MathExpression\" && right.type === \"MathExpression\") {\n\n if (left.operator === '/' && right.operator === '*' || left.operator === '-' && right.operator === '+' || left.operator === '*' && right.operator === '/' || left.operator === '+' && right.operator === '-') {\n\n if (isEqual(left.right, right.right)) nodes = (0, _convert2.default)(left.left, right.left, precision);else if (isEqual(left.right, right.left)) nodes = (0, _convert2.default)(left.left, right.right, precision);\n\n left = reduce(nodes.left, precision);\n right = reduce(nodes.right, precision);\n }\n }\n\n node.left = left;\n node.right = right;\n return node;\n}\n\nfunction flip(operator) {\n return operator === '+' ? '-' : '+';\n}\n\nfunction flipValue(node) {\n if (isValueType(node.type)) node.value = -node.value;else if (node.type == 'MathExpression') {\n node.left = flipValue(node.left);\n node.right = flipValue(node.right);\n }\n return node;\n}\n\nfunction reduceAddSubExpression(node, precision) {\n var _node = node,\n left = _node.left,\n right = _node.right,\n op = _node.operator;\n\n\n if (left.type === 'CssVariable' || right.type === 'CssVariable') return node;\n\n // something + 0 => something\n // something - 0 => something\n if (right.value === 0) return left;\n\n // 0 + something => something\n if (left.value === 0 && op === \"+\") return right;\n\n // 0 - something => -something\n if (left.value === 0 && op === \"-\") return flipValue(right);\n\n // value + value\n // value - value\n if (left.type === right.type && isValueType(left.type)) {\n node = Object.assign({}, left);\n if (op === \"+\") node.value = left.value + right.value;else node.value = left.value - right.value;\n }\n\n // value (expr)\n if (isValueType(left.type) && (right.operator === '+' || right.operator === '-') && right.type === 'MathExpression') {\n // value + (value + something) => (value + value) + something\n // value + (value - something) => (value + value) - something\n // value - (value + something) => (value - value) - something\n // value - (value - something) => (value - value) + something\n if (left.type === right.left.type) {\n node = Object.assign({}, node);\n node.left = reduce({\n type: 'MathExpression',\n operator: op,\n left: left,\n right: right.left\n }, precision);\n node.right = right.right;\n node.operator = op === '-' ? flip(right.operator) : right.operator;\n return reduce(node, precision);\n }\n // value + (something + value) => (value + value) + something\n // value + (something - value) => (value - value) + something\n // value - (something + value) => (value - value) - something\n // value - (something - value) => (value + value) - something\n else if (left.type === right.right.type) {\n node = Object.assign({}, node);\n node.left = reduce({\n type: 'MathExpression',\n operator: op === '-' ? flip(right.operator) : right.operator,\n left: left,\n right: right.right\n }, precision);\n node.right = right.left;\n return reduce(node, precision);\n }\n }\n\n // (expr) value\n if (left.type === 'MathExpression' && (left.operator === '+' || left.operator === '-') && isValueType(right.type)) {\n // (value + something) + value => (value + value) + something\n // (value - something) + value => (value + value) - something\n // (value + something) - value => (value - value) + something\n // (value - something) - value => (value - value) - something\n if (right.type === left.left.type) {\n node = Object.assign({}, left);\n node.left = reduce({\n type: 'MathExpression',\n operator: op,\n left: left.left,\n right: right\n }, precision);\n return reduce(node, precision);\n }\n // (something + value) + value => something + (value + value)\n // (something - value1) + value2 => something - (value2 - value1)\n // (something + value) - value => something + (value - value)\n // (something - value) - value => something - (value + value)\n else if (right.type === left.right.type) {\n node = Object.assign({}, left);\n if (left.operator === '-') {\n node.right = reduce({\n type: 'MathExpression',\n operator: op === '-' ? '+' : '-',\n left: right,\n right: left.right\n }, precision);\n node.operator = op === '-' ? '-' : '+';\n } else {\n node.right = reduce({\n type: 'MathExpression',\n operator: op,\n left: left.right,\n right: right\n }, precision);\n }\n if (node.right.value < 0) {\n node.right.value *= -1;\n node.operator = node.operator === '-' ? '+' : '-';\n }\n return reduce(node, precision);\n }\n }\n return node;\n}\n\nfunction reduceDivisionExpression(node, precision) {\n if (!isValueType(node.right.type)) return node;\n\n if (node.right.type !== 'Value') throw new Error(\"Cannot divide by \\\"\" + node.right.unit + \"\\\", number expected\");\n\n if (node.right.value === 0) throw new Error('Cannot divide by zero');\n\n // (expr) / value\n if (node.left.type === 'MathExpression') {\n if (isValueType(node.left.left.type) && isValueType(node.left.right.type)) {\n node.left.left.value /= node.right.value;\n node.left.right.value /= node.right.value;\n return reduce(node.left, precision);\n }\n return node;\n }\n // something / value\n else if (isValueType(node.left.type)) {\n node.left.value /= node.right.value;\n return node.left;\n }\n return node;\n}\n\nfunction reduceMultiplicationExpression(node) {\n // (expr) * value\n if (node.left.type === 'MathExpression' && node.right.type === 'Value') {\n if (isValueType(node.left.left.type) && isValueType(node.left.right.type)) {\n node.left.left.value *= node.right.value;\n node.left.right.value *= node.right.value;\n return node.left;\n }\n }\n // something * value\n else if (isValueType(node.left.type) && node.right.type === 'Value') {\n node.left.value *= node.right.value;\n return node.left;\n }\n // value * (expr)\n else if (node.left.type === 'Value' && node.right.type === 'MathExpression') {\n if (isValueType(node.right.left.type) && isValueType(node.right.right.type)) {\n node.right.left.value *= node.left.value;\n node.right.right.value *= node.left.value;\n return node.right;\n }\n }\n // value * something\n else if (node.left.type === 'Value' && isValueType(node.right.type)) {\n node.right.value *= node.left.value;\n return node.right;\n }\n return node;\n}\n\nfunction reduceMathExpression(node, precision) {\n node = convertMathExpression(node, precision);\n\n switch (node.operator) {\n case \"+\":\n case \"-\":\n return reduceAddSubExpression(node, precision);\n case \"/\":\n return reduceDivisionExpression(node, precision);\n case \"*\":\n return reduceMultiplicationExpression(node);\n }\n return node;\n}\n\nexports.default = reduce;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (calc, node, precision) {\n var str = stringify(node, precision);\n\n if (node.type === \"MathExpression\") {\n // if calc expression couldn't be resolved to a single value, re-wrap it as\n // a calc()\n str = calc + \"(\" + str + \")\";\n }\n return str;\n};\n\nvar _reducer = require(\"./reducer\");\n\nvar order = {\n \"*\": 0,\n \"/\": 0,\n \"+\": 1,\n \"-\": 1\n};\n\nfunction round(value, prec) {\n if (prec !== false) {\n var precision = Math.pow(10, prec);\n return Math.round(value * precision) / precision;\n }\n return value;\n}\n\nfunction stringify(node, prec) {\n switch (node.type) {\n case \"MathExpression\":\n {\n var left = node.left,\n right = node.right,\n op = node.operator;\n\n var str = \"\";\n\n if (left.type === 'MathExpression' && order[op] < order[left.operator]) str += \"(\" + stringify(left, prec) + \")\";else str += stringify(left, prec);\n\n str += \" \" + node.operator + \" \";\n\n if (right.type === 'MathExpression' && order[op] < order[right.operator]) {\n str += \"(\" + stringify(right, prec) + \")\";\n } else if (right.type === 'MathExpression' && op === \"-\" && [\"+\", \"-\"].includes(right.operator)) {\n // fix #52 : a-(b+c) = a-b-c\n right.operator = (0, _reducer.flip)(right.operator);\n str += stringify(right, prec);\n } else {\n str += stringify(right, prec);\n }\n\n return str;\n }\n case \"Value\":\n return round(node.value, prec);\n case 'CssVariable':\n if (node.fallback) {\n return \"var(\" + node.value + \", \" + stringify(node.fallback, prec, true) + \")\";\n }\n return \"var(\" + node.value + \")\";\n case 'Calc':\n if (node.prefix) {\n return \"-\" + node.prefix + \"-calc(\" + stringify(node.value, prec) + \")\";\n }\n return \"calc(\" + stringify(node.value, prec) + \")\";\n default:\n return round(node.value, prec) + node.unit;\n }\n}\n\nmodule.exports = exports[\"default\"];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _postcssValueParser = require('postcss-value-parser');\n\nvar _postcssValueParser2 = _interopRequireDefault(_postcssValueParser);\n\nvar _parser = require('./parser');\n\nvar _reducer = require('./lib/reducer');\n\nvar _reducer2 = _interopRequireDefault(_reducer);\n\nvar _stringifier = require('./lib/stringifier');\n\nvar _stringifier2 = _interopRequireDefault(_stringifier);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// eslint-disable-line\nvar MATCH_CALC = /((?:\\-[a-z]+\\-)?calc)/;\n\nexports.default = function (value) {\n var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;\n\n return (0, _postcssValueParser2.default)(value).walk(function (node) {\n // skip anything which isn't a calc() function\n if (node.type !== 'function' || !MATCH_CALC.test(node.value)) return;\n\n // stringify calc expression and produce an AST\n var contents = _postcssValueParser2.default.stringify(node.nodes);\n\n // skip constant() and env()\n if (contents.indexOf('constant') >= 0 || contents.indexOf('env') >= 0) return;\n\n var ast = _parser.parser.parse(contents);\n\n // reduce AST to its simplest form, that is, either to a single value\n // or a simplified calc expression\n var reducedAst = (0, _reducer2.default)(ast, precision);\n\n // stringify AST and write it back\n node.type = 'word';\n node.value = (0, _stringifier2.default)(node.value, reducedAst, precision);\n }, true).toString();\n};\n\nmodule.exports = exports['default'];","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { Global } from './Global';\nvar stringCache = {\n widthCache: {},\n cacheCount: 0\n};\nvar MAX_CACHE_NUM = 2000;\nvar SPAN_STYLE = {\n position: 'absolute',\n top: '-20000px',\n left: 0,\n padding: 0,\n margin: 0,\n border: 'none',\n whiteSpace: 'pre'\n};\nvar STYLE_LIST = ['minWidth', 'maxWidth', 'width', 'minHeight', 'maxHeight', 'height', 'top', 'left', 'fontSize', 'lineHeight', 'padding', 'margin', 'paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom', 'marginLeft', 'marginRight', 'marginTop', 'marginBottom'];\nvar MEASUREMENT_SPAN_ID = 'recharts_measurement_span';\nfunction autoCompleteStyle(name, value) {\n if (STYLE_LIST.indexOf(name) >= 0 && value === +value) {\n return \"\".concat(value, \"px\");\n }\n return value;\n}\nfunction camelToMiddleLine(text) {\n var strs = text.split('');\n var formatStrs = strs.reduce(function (result, entry) {\n if (entry === entry.toUpperCase()) {\n return [].concat(_toConsumableArray(result), ['-', entry.toLowerCase()]);\n }\n return [].concat(_toConsumableArray(result), [entry]);\n }, []);\n return formatStrs.join('');\n}\nexport var getStyleString = function getStyleString(style) {\n return Object.keys(style).reduce(function (result, s) {\n return \"\".concat(result).concat(camelToMiddleLine(s), \":\").concat(autoCompleteStyle(s, style[s]), \";\");\n }, '');\n};\nexport var getStringSize = function getStringSize(text) {\n var style = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (text === undefined || text === null || Global.isSsr) {\n return {\n width: 0,\n height: 0\n };\n }\n var str = \"\".concat(text);\n var styleString = getStyleString(style);\n var cacheKey = \"\".concat(str, \"-\").concat(styleString);\n if (stringCache.widthCache[cacheKey]) {\n return stringCache.widthCache[cacheKey];\n }\n try {\n var measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);\n if (!measurementSpan) {\n measurementSpan = document.createElement('span');\n measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);\n measurementSpan.setAttribute('aria-hidden', 'true');\n document.body.appendChild(measurementSpan);\n }\n // Need to use CSS Object Model (CSSOM) to be able to comply with Content Security Policy (CSP)\n // https://en.wikipedia.org/wiki/Content_Security_Policy\n var measurementSpanStyle = _objectSpread(_objectSpread({}, SPAN_STYLE), style);\n Object.keys(measurementSpanStyle).map(function (styleKey) {\n measurementSpan.style[styleKey] = measurementSpanStyle[styleKey];\n return styleKey;\n });\n measurementSpan.textContent = str;\n var rect = measurementSpan.getBoundingClientRect();\n var result = {\n width: rect.width,\n height: rect.height\n };\n stringCache.widthCache[cacheKey] = result;\n if (++stringCache.cacheCount > MAX_CACHE_NUM) {\n stringCache.cacheCount = 0;\n stringCache.widthCache = {};\n }\n return result;\n } catch (e) {\n return {\n width: 0,\n height: 0\n };\n }\n};\nexport var getOffset = function getOffset(el) {\n var html = el.ownerDocument.documentElement;\n var box = {\n top: 0,\n left: 0\n };\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 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 var calculateChartCoordinate = function calculateChartCoordinate(event, offset) {\n return {\n chartX: Math.round(event.pageX - offset.left),\n chartY: Math.round(event.pageY - offset.top)\n };\n};","import _isNil from \"lodash/isNil\";\nvar _excluded = [\"dx\", \"dy\", \"textAnchor\", \"verticalAnchor\", \"scaleToFit\", \"angle\", \"lineHeight\", \"capHeight\", \"className\", \"breakAll\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport React, { useMemo } from 'react';\nimport reduceCSSCalc from 'reduce-css-calc';\nimport classNames from 'classnames';\nimport { isNumber, isNumOrStr } from '../util/DataUtils';\nimport { Global } from '../util/Global';\nimport { filterProps } from '../util/ReactUtils';\nimport { getStringSize } from '../util/DOMUtils';\nvar BREAKING_SPACES = /[ \\f\\n\\r\\t\\v\\u2028\\u2029]+/;\nvar calculateWordWidths = function calculateWordWidths(_ref) {\n var children = _ref.children,\n breakAll = _ref.breakAll,\n style = _ref.style;\n try {\n var words = [];\n if (!_isNil(children)) {\n if (breakAll) {\n words = children.toString().split('');\n } else {\n words = children.toString().split(BREAKING_SPACES);\n }\n }\n var wordsWithComputedWidth = words.map(function (word) {\n return {\n word: word,\n width: getStringSize(word, style).width\n };\n });\n var spaceWidth = breakAll ? 0 : getStringSize(\"\\xA0\", style).width;\n return {\n wordsWithComputedWidth: wordsWithComputedWidth,\n spaceWidth: spaceWidth\n };\n } catch (e) {\n return null;\n }\n};\nvar calculateWordsByLines = function calculateWordsByLines(_ref2, initialWordsWithComputedWith, spaceWidth, lineWidth, scaleToFit) {\n var maxLines = _ref2.maxLines,\n children = _ref2.children,\n style = _ref2.style,\n breakAll = _ref2.breakAll;\n var shouldLimitLines = isNumber(maxLines);\n var text = children;\n var calculate = function calculate() {\n var words = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n return words.reduce(function (result, _ref3) {\n var word = _ref3.word,\n width = _ref3.width;\n var currentLine = result[result.length - 1];\n if (currentLine && (lineWidth == null || scaleToFit || currentLine.width + width + spaceWidth < Number(lineWidth))) {\n // Word can be added to an existing line\n currentLine.words.push(word);\n currentLine.width += width + spaceWidth;\n } else {\n // Add first word to line or word is too long to scaleToFit on existing line\n var newLine = {\n words: [word],\n width: width\n };\n result.push(newLine);\n }\n return result;\n }, []);\n };\n var originalResult = calculate(initialWordsWithComputedWith);\n var findLongestLine = function findLongestLine(words) {\n return words.reduce(function (a, b) {\n return a.width > b.width ? a : b;\n });\n };\n if (!shouldLimitLines) {\n return originalResult;\n }\n var suffix = '…';\n var checkOverflow = function checkOverflow(index) {\n var tempText = text.slice(0, index);\n var words = calculateWordWidths({\n breakAll: breakAll,\n style: style,\n children: tempText + suffix\n }).wordsWithComputedWidth;\n var result = calculate(words);\n var doesOverflow = result.length > maxLines || findLongestLine(result).width > Number(lineWidth);\n return [doesOverflow, result];\n };\n var start = 0;\n var end = text.length - 1;\n var iterations = 0;\n var trimmedResult;\n while (start <= end && iterations <= text.length - 1) {\n var middle = Math.floor((start + end) / 2);\n var prev = middle - 1;\n var _checkOverflow = checkOverflow(prev),\n _checkOverflow2 = _slicedToArray(_checkOverflow, 2),\n doesPrevOverflow = _checkOverflow2[0],\n result = _checkOverflow2[1];\n var _checkOverflow3 = checkOverflow(middle),\n _checkOverflow4 = _slicedToArray(_checkOverflow3, 1),\n doesMiddleOverflow = _checkOverflow4[0];\n if (!doesPrevOverflow && !doesMiddleOverflow) {\n start = middle + 1;\n }\n if (doesPrevOverflow && doesMiddleOverflow) {\n end = middle - 1;\n }\n if (!doesPrevOverflow && doesMiddleOverflow) {\n trimmedResult = result;\n break;\n }\n iterations++;\n }\n\n // Fallback to originalResult (result without trimming) if we cannot find the\n // where to trim. This should not happen :tm:\n return trimmedResult || originalResult;\n};\nvar getWordsWithoutCalculate = function getWordsWithoutCalculate(children) {\n var words = !_isNil(children) ? children.toString().split(BREAKING_SPACES) : [];\n return [{\n words: words\n }];\n};\nvar getWordsByLines = function getWordsByLines(_ref4) {\n var width = _ref4.width,\n scaleToFit = _ref4.scaleToFit,\n children = _ref4.children,\n style = _ref4.style,\n breakAll = _ref4.breakAll,\n maxLines = _ref4.maxLines;\n // Only perform calculations if using features that require them (multiline, scaleToFit)\n if ((width || scaleToFit) && !Global.isSsr) {\n var wordsWithComputedWidth, spaceWidth;\n var wordWidths = calculateWordWidths({\n breakAll: breakAll,\n children: children,\n style: style\n });\n if (wordWidths) {\n var wcw = wordWidths.wordsWithComputedWidth,\n sw = wordWidths.spaceWidth;\n wordsWithComputedWidth = wcw;\n spaceWidth = sw;\n } else {\n return getWordsWithoutCalculate(children);\n }\n return calculateWordsByLines({\n breakAll: breakAll,\n children: children,\n maxLines: maxLines,\n style: style\n }, wordsWithComputedWidth, spaceWidth, width, scaleToFit);\n }\n return getWordsWithoutCalculate(children);\n};\nvar textDefaultProps = {\n x: 0,\n y: 0,\n lineHeight: '1em',\n capHeight: '0.71em',\n // Magic number from d3\n scaleToFit: false,\n textAnchor: 'start',\n verticalAnchor: 'end',\n // Maintain compat with existing charts / default SVG behavior\n fill: '#808080'\n};\nexport var Text = function Text(props) {\n var wordsByLines = useMemo(function () {\n return getWordsByLines({\n breakAll: props.breakAll,\n children: props.children,\n maxLines: props.maxLines,\n scaleToFit: props.scaleToFit,\n style: props.style,\n width: props.width\n });\n }, [props.breakAll, props.children, props.maxLines, props.scaleToFit, props.style, props.width]);\n var dx = props.dx,\n dy = props.dy,\n textAnchor = props.textAnchor,\n verticalAnchor = props.verticalAnchor,\n scaleToFit = props.scaleToFit,\n angle = props.angle,\n lineHeight = props.lineHeight,\n capHeight = props.capHeight,\n className = props.className,\n breakAll = props.breakAll,\n textProps = _objectWithoutProperties(props, _excluded);\n if (!isNumOrStr(textProps.x) || !isNumOrStr(textProps.y)) {\n return null;\n }\n var x = textProps.x + (isNumber(dx) ? dx : 0);\n var y = textProps.y + (isNumber(dy) ? dy : 0);\n var startDy;\n switch (verticalAnchor) {\n case 'start':\n startDy = reduceCSSCalc(\"calc(\".concat(capHeight, \")\"));\n break;\n case 'middle':\n startDy = reduceCSSCalc(\"calc(\".concat((wordsByLines.length - 1) / 2, \" * -\").concat(lineHeight, \" + (\").concat(capHeight, \" / 2))\"));\n break;\n default:\n startDy = reduceCSSCalc(\"calc(\".concat(wordsByLines.length - 1, \" * -\").concat(lineHeight, \")\"));\n break;\n }\n var transforms = [];\n if (scaleToFit) {\n var lineWidth = wordsByLines[0].width;\n var width = props.width;\n transforms.push(\"scale(\".concat((isNumber(width) ? width / lineWidth : 1) / lineWidth, \")\"));\n }\n if (angle) {\n transforms.push(\"rotate(\".concat(angle, \", \").concat(x, \", \").concat(y, \")\"));\n }\n if (transforms.length) {\n textProps.transform = transforms.join(' ');\n }\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, filterProps(textProps, true), {\n x: x,\n y: y,\n className: classNames('recharts-text', className),\n textAnchor: textAnchor,\n fill: textProps.fill.includes('url') ? textDefaultProps.fill : textProps.fill\n }), wordsByLines.map(function (line, index) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"tspan\", {\n x: x,\n dy: index === 0 ? startDy : lineHeight,\n key: index\n }, line.words.join(breakAll ? '' : ' '))\n );\n }));\n};\nText.defaultProps = textDefaultProps;","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 isSymbol = require('./isSymbol');\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseExtremum;\n","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nmodule.exports = baseGt;\n","var baseExtremum = require('./_baseExtremum'),\n baseGt = require('./_baseGt'),\n identity = require('./identity');\n\n/**\n * Computes the maximum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * _.max([4, 2, 8, 6]);\n * // => 8\n *\n * _.max([]);\n * // => undefined\n */\nfunction max(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseGt)\n : undefined;\n}\n\nmodule.exports = max;\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nmodule.exports = baseLt;\n","var baseExtremum = require('./_baseExtremum'),\n baseLt = require('./_baseLt'),\n identity = require('./identity');\n\n/**\n * Computes the minimum value of `array`. If `array` is empty or falsey,\n * `undefined` is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {*} Returns the minimum value.\n * @example\n *\n * _.min([4, 2, 8, 6]);\n * // => 2\n *\n * _.min([]);\n * // => undefined\n */\nfunction min(array) {\n return (array && array.length)\n ? baseExtremum(array, identity, baseLt)\n : undefined;\n}\n\nmodule.exports = min;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","var baseFlatten = require('./_baseFlatten'),\n map = require('./map');\n\n/**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\nfunction flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n}\n\nmodule.exports = flatMap;\n","export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export class InternMap extends Map {\n constructor(entries, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (entries != null) for (const [key, value] of entries) this.set(key, value);\n }\n get(key) {\n return super.get(intern_get(this, key));\n }\n has(key) {\n return super.has(intern_get(this, key));\n }\n set(key, value) {\n return super.set(intern_set(this, key), value);\n }\n delete(key) {\n return super.delete(intern_delete(this, key));\n }\n}\n\nexport class InternSet extends Set {\n constructor(values, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (values != null) for (const value of values) this.add(value);\n }\n has(value) {\n return super.has(intern_get(this, value));\n }\n add(value) {\n return super.add(intern_set(this, value));\n }\n delete(value) {\n return super.delete(intern_delete(this, value));\n }\n}\n\nfunction intern_get({_intern, _key}, value) {\n const key = _key(value);\n return _intern.has(key) ? _intern.get(key) : value;\n}\n\nfunction intern_set({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) return _intern.get(key);\n _intern.set(key, value);\n return value;\n}\n\nfunction intern_delete({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) {\n value = _intern.get(key);\n _intern.delete(key);\n }\n return value;\n}\n\nfunction keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n","import ascending from \"./ascending.js\";\nimport permute from \"./permute.js\";\n\nexport default function sort(values, ...F) {\n if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n values = Array.from(values);\n let [f] = F;\n if ((f && f.length !== 2) || F.length > 1) {\n const index = Uint32Array.from(values, (d, i) => i);\n if (F.length > 1) {\n F = F.map(f => values.map(f));\n index.sort((i, j) => {\n for (const f of F) {\n const c = ascendingDefined(f[i], f[j]);\n if (c) return c;\n }\n });\n } else {\n f = values.map(f);\n index.sort((i, j) => ascendingDefined(f[i], f[j]));\n }\n return permute(values, index);\n }\n return values.sort(compareDefined(f));\n}\n\nexport function compareDefined(compare = ascending) {\n if (compare === ascending) return ascendingDefined;\n if (typeof compare !== \"function\") throw new TypeError(\"compare is not a function\");\n return (a, b) => {\n const x = compare(a, b);\n if (x || x === 0) return x;\n return (compare(b, b) === 0) - (compare(a, a) === 0);\n };\n}\n\nexport function ascendingDefined(a, b) {\n return (a == null || !(a >= a)) - (b == null || !(b >= b)) || (a < b ? -1 : a > b ? 1 : 0);\n}\n","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","import {ascendingDefined, compareDefined} from \"./sort.js\";\n\n// Based on https://github.com/mourner/quickselect\n// ISC license, Copyright 2018 Vladimir Agafonkin.\nexport default function quickselect(array, k, left = 0, right = Infinity, compare) {\n k = Math.floor(k);\n left = Math.floor(Math.max(0, left));\n right = Math.floor(Math.min(array.length - 1, right));\n\n if (!(left <= k && k <= right)) return array;\n\n compare = compare === undefined ? ascendingDefined : compareDefined(compare);\n\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n quickselect(array, k, newLeft, newRight, compare);\n }\n\n const t = array[k];\n let i = left;\n let j = right;\n\n swap(array, left, k);\n if (compare(array[right], t) > 0) swap(array, left, right);\n\n while (i < j) {\n swap(array, i, j), ++i, --j;\n while (compare(array[i], t) < 0) ++i;\n while (compare(array[j], t) > 0) --j;\n }\n\n if (compare(array[left], t) === 0) swap(array, left, j);\n else ++j, swap(array, j, right);\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n\n return array;\n}\n\nfunction swap(array, i, j) {\n const t = array[i];\n array[i] = array[j];\n array[j] = t;\n}\n","import max from \"./max.js\";\nimport maxIndex from \"./maxIndex.js\";\nimport min from \"./min.js\";\nimport minIndex from \"./minIndex.js\";\nimport quickselect from \"./quickselect.js\";\nimport number, {numbers} from \"./number.js\";\nimport {ascendingDefined} from \"./sort.js\";\nimport greatest from \"./greatest.js\";\n\nexport default function quantile(values, p, valueof) {\n values = Float64Array.from(numbers(values, valueof));\n if (!(n = values.length) || isNaN(p = +p)) return;\n if (p <= 0 || n < 2) return min(values);\n if (p >= 1) return max(values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),\n value1 = min(values.subarray(i0 + 1));\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileSorted(values, p, valueof = number) {\n if (!(n = values.length) || isNaN(p = +p)) return;\n if (p <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileIndex(values, p, valueof) {\n values = Float64Array.from(numbers(values, valueof));\n if (!(n = values.length) || isNaN(p = +p)) return;\n if (p <= 0 || n < 2) return minIndex(values);\n if (p >= 1) return maxIndex(values);\n var n,\n i = Math.floor((n - 1) * p),\n order = (i, j) => ascendingDefined(values[i], values[j]),\n index = quickselect(Uint32Array.from(values, (_, i) => i), i, 0, n - 1, order);\n return greatest(index.subarray(0, i + 1), i => values[i]);\n}\n","export default function range(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","import {InternMap} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new InternMap(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n let i = index.get(d);\n if (i === undefined) {\n if (unknown !== implicit) return unknown;\n index.set(d, i = domain.push(d) - 1);\n }\n return range[i % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new InternMap();\n for (const value of _) {\n if (index.has(value)) continue;\n index.set(value, domain.push(value) - 1);\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n if (!b) b = [];\n var n = a ? Math.min(b.length, a.length) : 0,\n c = b.slice(),\n i;\n return function(t) {\n for (i = 0; i < n; ++i) c[i] = a[i] * (1 - t) + b[i] * t;\n return c;\n };\n}\n\nexport function isNumberArray(x) {\n return ArrayBuffer.isView(x) && !(x instanceof DataView);\n}\n","import value from \"./value.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n return (isNumberArray(b) ? numberArray : genericArray)(a, b);\n}\n\nexport function genericArray(a, b) {\n var nb = b ? b.length : 0,\n na = a ? Math.min(nb, a.length) : 0,\n x = new Array(na),\n c = new Array(nb),\n i;\n\n for (i = 0; i < na; ++i) x[i] = value(a[i], b[i]);\n for (; i < nb; ++i) c[i] = b[i];\n\n return function(t) {\n for (i = 0; i < na; ++i) c[i] = x[i](t);\n return c;\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import value from \"./value.js\";\n\nexport default function(a, b) {\n var i = {},\n c = {},\n k;\n\n if (a === null || typeof a !== \"object\") a = {};\n if (b === null || typeof b !== \"object\") b = {};\n\n for (k in b) {\n if (k in a) {\n i[k] = value(a[k], b[k]);\n } else {\n c[k] = b[k];\n }\n }\n\n return function(t) {\n for (k in i) c[k] = i[k](t);\n return c;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","import {color} from \"d3-color\";\nimport rgb from \"./rgb.js\";\nimport {genericArray} from \"./array.js\";\nimport date from \"./date.js\";\nimport number from \"./number.js\";\nimport object from \"./object.js\";\nimport string from \"./string.js\";\nimport constant from \"./constant.js\";\nimport numberArray, {isNumberArray} from \"./numberArray.js\";\n\nexport default function(a, b) {\n var t = typeof b, c;\n return b == null || t === \"boolean\" ? constant(b)\n : (t === \"number\" ? number\n : t === \"string\" ? ((c = color(b)) ? (b = c, rgb) : string)\n : b instanceof color ? rgb\n : b instanceof Date ? date\n : isNumberArray(b) ? numberArray\n : Array.isArray(b) ? genericArray\n : typeof b.valueOf !== \"function\" && typeof b.toString !== \"function\" || isNaN(b) ? object\n : number)(a, b);\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return Math.round(a * (1 - t) + b * t);\n };\n}\n","import {default as value} from \"./value.js\";\n\nexport default function piecewise(interpolate, values) {\n if (values === undefined) values = interpolate, interpolate = value;\n var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n while (i < n) I[i] = interpolate(v, v = values[++i]);\n return function(t) {\n var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i](t - i);\n };\n}\n","export default function constants(x) {\n return function() {\n return x;\n };\n}\n","export default function number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nexport default function identity(domain) {\n var unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = Array.from(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return identity(domain).unknown(unknown);\n };\n\n domain = arguments.length ? Array.from(domain, number) : [0, 1];\n\n return linearish(scale);\n}\n","export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","import {ticks} from \"d3-array\";\nimport {format, formatSpecifier} from \"d3-format\";\nimport nice from \"./nice.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : x => Math.pow(base, x);\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), x => Math.log(x) / base);\n}\n\nfunction reflect(f) {\n return (x, k) => -f(-x, k);\n}\n\nexport function loggish(transform) {\n const scale = transform(transformLog, transformExp);\n const domain = scale.domain;\n let base = 10;\n let logs;\n let pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = count => {\n const d = domain();\n let u = d[0];\n let v = d[d.length - 1];\n const r = v < u;\n\n if (r) ([u, v] = [v, u]);\n\n let i = logs(u);\n let j = logs(v);\n let k;\n let t;\n const n = count == null ? 10 : +count;\n let z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.floor(i), j = Math.ceil(j);\n if (u > 0) for (; i <= j; ++i) {\n for (k = 1; k < base; ++k) {\n t = i < 0 ? k / pows(-i) : k * pows(i);\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i <= j; ++i) {\n for (k = base - 1; k >= 1; --k) {\n t = i > 0 ? k / pows(-i) : k * pows(i);\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n if (z.length * 2 < n) z = ticks(u, v, n);\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = (count, specifier) => {\n if (count == null) count = 10;\n if (specifier == null) specifier = base === 10 ? \"s\" : \",\";\n if (typeof specifier !== \"function\") {\n if (!(base % 1) && (specifier = formatSpecifier(specifier)).precision == null) specifier.trim = true;\n specifier = format(specifier);\n }\n if (count === Infinity) return specifier;\n const k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return d => {\n let i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = () => {\n return domain(nice(domain(), {\n floor: x => pows(Math.floor(logs(x))),\n ceil: x => pows(Math.ceil(logs(x)))\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n const scale = loggish(transformer()).domain([1, 10]);\n scale.copy = () => copy(scale, log()).base(scale.base());\n initRange.apply(scale, arguments);\n return scale;\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nexport function symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\n\nexport default function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, identity, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformPow(exponent) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity)\n : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n}\n\nexport default function pow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nexport function sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}\n","import continuous from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nfunction square(x) {\n return Math.sign(x) * x * x;\n}\n\nfunction unsquare(x) {\n return Math.sign(x) * Math.sqrt(Math.abs(x));\n}\n\nexport default function radial() {\n var squared = continuous(),\n range = [0, 1],\n round = false,\n unknown;\n\n function scale(x) {\n var y = unsquare(squared(x));\n return isNaN(y) ? unknown : round ? Math.round(y) : y;\n }\n\n scale.invert = function(y) {\n return squared.invert(square(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (squared.domain(_), scale) : squared.domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (squared.range((range = Array.from(_, number)).map(square)), scale) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return scale.range(_).round(true);\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, scale) : round;\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (squared.clamp(_), scale) : squared.clamp();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return radial(squared.domain(), range)\n .round(round)\n .clamp(squared.clamp())\n .unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {ascending, bisect, quantileSorted as threshold} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {linearish} from \"./linear.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = (date) => {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = (date) => {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = (date) => {\n const d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = (date, step) => {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = (start, stop, step) => {\n const range = [];\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n let previous;\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = (test) => {\n return timeInterval((date) => {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, (date, step) => {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = (start, end) => {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = (step) => {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? (d) => field(d) % step === 0\n : (d) => interval.count(0, d) % step === 0);\n };\n }\n\n return interval;\n}\n","import {timeInterval} from \"./interval.js\";\n\nexport const millisecond = timeInterval(() => {\n // noop\n}, (date, step) => {\n date.setTime(+date + step);\n}, (start, end) => {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = (k) => {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return timeInterval((date) => {\n date.setTime(Math.floor(date / k) * k);\n }, (date, step) => {\n date.setTime(+date + step * k);\n }, (start, end) => {\n return (end - start) / k;\n });\n};\n\nexport const milliseconds = millisecond.range;\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","import {timeInterval} from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nexport const second = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds());\n}, (date, step) => {\n date.setTime(+date + step * durationSecond);\n}, (start, end) => {\n return (end - start) / durationSecond;\n}, (date) => {\n return date.getUTCSeconds();\n});\n\nexport const seconds = second.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeMinute = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getMinutes();\n});\n\nexport const timeMinutes = timeMinute.range;\n\nexport const utcMinute = timeInterval((date) => {\n date.setUTCSeconds(0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getUTCMinutes();\n});\n\nexport const utcMinutes = utcMinute.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeHour = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getHours();\n});\n\nexport const timeHours = timeHour.range;\n\nexport const utcHour = timeInterval((date) => {\n date.setUTCMinutes(0, 0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getUTCHours();\n});\n\nexport const utcHours = utcHour.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nexport const timeDay = timeInterval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport const timeDays = timeDay.range;\n\nexport const utcDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return date.getUTCDate() - 1;\n});\n\nexport const utcDays = utcDay.range;\n\nexport const unixDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return Math.floor(date / durationDay);\n});\n\nexport const unixDays = unixDay.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction timeWeekday(i) {\n return timeInterval((date) => {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setDate(date.getDate() + step * 7);\n }, (start, end) => {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport const timeSunday = timeWeekday(0);\nexport const timeMonday = timeWeekday(1);\nexport const timeTuesday = timeWeekday(2);\nexport const timeWednesday = timeWeekday(3);\nexport const timeThursday = timeWeekday(4);\nexport const timeFriday = timeWeekday(5);\nexport const timeSaturday = timeWeekday(6);\n\nexport const timeSundays = timeSunday.range;\nexport const timeMondays = timeMonday.range;\nexport const timeTuesdays = timeTuesday.range;\nexport const timeWednesdays = timeWednesday.range;\nexport const timeThursdays = timeThursday.range;\nexport const timeFridays = timeFriday.range;\nexport const timeSaturdays = timeSaturday.range;\n\nfunction utcWeekday(i) {\n return timeInterval((date) => {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, (start, end) => {\n return (end - start) / durationWeek;\n });\n}\n\nexport const utcSunday = utcWeekday(0);\nexport const utcMonday = utcWeekday(1);\nexport const utcTuesday = utcWeekday(2);\nexport const utcWednesday = utcWeekday(3);\nexport const utcThursday = utcWeekday(4);\nexport const utcFriday = utcWeekday(5);\nexport const utcSaturday = utcWeekday(6);\n\nexport const utcSundays = utcSunday.range;\nexport const utcMondays = utcMonday.range;\nexport const utcTuesdays = utcTuesday.range;\nexport const utcWednesdays = utcWednesday.range;\nexport const utcThursdays = utcThursday.range;\nexport const utcFridays = utcFriday.range;\nexport const utcSaturdays = utcSaturday.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeMonth = timeInterval((date) => {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setMonth(date.getMonth() + step);\n}, (start, end) => {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, (date) => {\n return date.getMonth();\n});\n\nexport const timeMonths = timeMonth.range;\n\nexport const utcMonth = timeInterval((date) => {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, (start, end) => {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, (date) => {\n return date.getUTCMonth();\n});\n\nexport const utcMonths = utcMonth.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeYear = timeInterval((date) => {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setFullYear(date.getFullYear() + step);\n}, (start, end) => {\n return end.getFullYear() - start.getFullYear();\n}, (date) => {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\ntimeYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport const timeYears = timeYear.range;\n\nexport const utcYear = timeInterval((date) => {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, (start, end) => {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, (date) => {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport const utcYears = utcYear.range;\n","import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport {millisecond} from \"./millisecond.js\";\nimport {second} from \"./second.js\";\nimport {timeMinute, utcMinute} from \"./minute.js\";\nimport {timeHour, utcHour} from \"./hour.js\";\nimport {timeDay, unixDay} from \"./day.js\";\nimport {timeSunday, utcSunday} from \"./week.js\";\nimport {timeMonth, utcMonth} from \"./month.js\";\nimport {timeYear, utcYear} from \"./year.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcTicks, utcTickInterval} from \"d3-time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {calendar} from \"./time.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function utcTime() {\n return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","import {interpolate, interpolateRound} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1;\n return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport default function sequential() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect, quantile} from \"d3-array\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\n\nexport default function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (x != null && !isNaN(x = +x)) return interpolator((bisect(domain, x, 1) - 1) / (domain.length - 1));\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.range = function() {\n return domain.map((d, i) => interpolator(i / (domain.length - 1)));\n };\n\n scale.quantiles = function(n) {\n return Array.from({length: n + 1}, (_, i) => quantile(domain, i / n));\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n","import {interpolate, interpolateRound, piecewise} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {copy} from \"./sequential.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n s = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1, r2;\n return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;\n return scale;\n };\n}\n\nexport default function diverging() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingLog() {\n var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n scale.copy = function() {\n return copy(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}\n","/*\r\n * decimal.js-light v2.5.1\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js-light\r\n * Copyright (c) 2020 Michael Mclaughlin \r\n * MIT Expat Licence\r\n */\r\n\r\n\r\n// ------------------------------------ EDITABLE DEFAULTS ------------------------------------- //\r\n\r\n\r\n// The limit on the value of `precision`, and on the value of the first argument to\r\n// `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\r\nvar MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n defaults = {\r\n\r\n // These values must be integers within the stated ranges (inclusive).\r\n // Most of these values can be changed during run-time using `Decimal.config`.\r\n\r\n // The maximum number of significant digits of the result of a calculation or base conversion.\r\n // E.g. `Decimal.config({ precision: 20 });`\r\n precision: 20, // 1 to MAX_DIGITS\r\n\r\n // The rounding mode used by default by `toInteger`, `toDecimalPlaces`, `toExponential`,\r\n // `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n //\r\n // ROUND_UP 0 Away from zero.\r\n // ROUND_DOWN 1 Towards zero.\r\n // ROUND_CEIL 2 Towards +Infinity.\r\n // ROUND_FLOOR 3 Towards -Infinity.\r\n // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n //\r\n // E.g.\r\n // `Decimal.rounding = 4;`\r\n // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\r\n rounding: 4, // 0 to 8\r\n\r\n // The exponent value at and beneath which `toString` returns exponential notation.\r\n // JavaScript numbers: -7\r\n toExpNeg: -7, // 0 to -MAX_E\r\n\r\n // The exponent value at and above which `toString` returns exponential notation.\r\n // JavaScript numbers: 21\r\n toExpPos: 21, // 0 to MAX_E\r\n\r\n // The natural logarithm of 10.\r\n // 115 digits\r\n LN10: '2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286'\r\n },\r\n\r\n\r\n// ------------------------------------ END OF EDITABLE DEFAULTS -------------------------------- //\r\n\r\n\r\n Decimal,\r\n external = true,\r\n\r\n decimalError = '[DecimalError] ',\r\n invalidArgument = decimalError + 'Invalid argument: ',\r\n exponentOutOfRange = decimalError + 'Exponent out of range: ',\r\n\r\n mathfloor = Math.floor,\r\n mathpow = Math.pow,\r\n\r\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n ONE,\r\n BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_SAFE_INTEGER = 9007199254740991,\r\n MAX_E = mathfloor(MAX_SAFE_INTEGER / LOG_BASE), // 1286742750677284\r\n\r\n // Decimal.prototype object\r\n P = {};\r\n\r\n\r\n// Decimal prototype methods\r\n\r\n\r\n/*\r\n * absoluteValue abs\r\n * comparedTo cmp\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy idiv\r\n * equals eq\r\n * exponent\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * isInteger isint\r\n * isNegative isneg\r\n * isPositive ispos\r\n * isZero\r\n * lessThan lt\r\n * lessThanOrEqualTo lte\r\n * logarithm log\r\n * minus sub\r\n * modulo mod\r\n * naturalExponential exp\r\n * naturalLogarithm ln\r\n * negated neg\r\n * plus add\r\n * precision sd\r\n * squareRoot sqrt\r\n * times mul\r\n * toDecimalPlaces todp\r\n * toExponential\r\n * toFixed\r\n * toInteger toint\r\n * toNumber\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits tosd\r\n * toString\r\n * valueOf val\r\n */\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\r\nP.absoluteValue = P.abs = function () {\r\n var x = new this.constructor(this);\r\n if (x.s) x.s = 1;\r\n return x;\r\n};\r\n\r\n\r\n/*\r\n * Return\r\n * 1 if the value of this Decimal is greater than the value of `y`,\r\n * -1 if the value of this Decimal is less than the value of `y`,\r\n * 0 if they have the same value\r\n *\r\n */\r\nP.comparedTo = P.cmp = function (y) {\r\n var i, j, xdL, ydL,\r\n x = this;\r\n\r\n y = new x.constructor(y);\r\n\r\n // Signs differ?\r\n if (x.s !== y.s) return x.s || -y.s;\r\n\r\n // Compare exponents.\r\n if (x.e !== y.e) return x.e > y.e ^ x.s < 0 ? 1 : -1;\r\n\r\n xdL = x.d.length;\r\n ydL = y.d.length;\r\n\r\n // Compare digit by digit.\r\n for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\r\n if (x.d[i] !== y.d[i]) return x.d[i] > y.d[i] ^ x.s < 0 ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return xdL === ydL ? 0 : xdL > ydL ^ x.s < 0 ? 1 : -1;\r\n};\r\n\r\n\r\n/*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\r\nP.decimalPlaces = P.dp = function () {\r\n var x = this,\r\n w = x.d.length - 1,\r\n dp = (w - x.e) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n w = x.d[w];\r\n if (w) for (; w % 10 == 0; w /= 10) dp--;\r\n\r\n return dp < 0 ? 0 : dp;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\nP.dividedBy = P.div = function (y) {\r\n return divide(this, new this.constructor(y));\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n * by the value of `y`, truncated to `precision` significant digits.\r\n *\r\n */\r\nP.dividedToIntegerBy = P.idiv = function (y) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(divide(x, new Ctor(y), 0, 1), Ctor.precision);\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n *\r\n */\r\nP.equals = P.eq = function (y) {\r\n return !this.cmp(y);\r\n};\r\n\r\n\r\n/*\r\n * Return the (base 10) exponent value of this Decimal (this.e is the base 10000000 exponent).\r\n *\r\n */\r\nP.exponent = function () {\r\n return getBase10Exponent(this);\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n * false.\r\n *\r\n */\r\nP.greaterThan = P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n * otherwise return false.\r\n *\r\n */\r\nP.greaterThanOrEqualTo = P.gte = function (y) {\r\n return this.cmp(y) >= 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\r\nP.isInteger = P.isint = function () {\r\n return this.e > this.d.length - 2;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\r\nP.isNegative = P.isneg = function () {\r\n return this.s < 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\r\nP.isPositive = P.ispos = function () {\r\n return this.s > 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is 0, otherwise return false.\r\n *\r\n */\r\nP.isZero = function () {\r\n return this.s === 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\r\nP.lessThan = P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n};\r\n\r\n\r\n/*\r\n * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n *\r\n */\r\nP.lessThanOrEqualTo = P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n};\r\n\r\n\r\n/*\r\n * Return the logarithm of the value of this Decimal to the specified base, truncated to\r\n * `precision` significant digits.\r\n *\r\n * If no base is specified, return log[10](x).\r\n *\r\n * log[base](x) = ln(x) / ln(base)\r\n *\r\n * The maximum error of the result is 1 ulp (unit in the last place).\r\n *\r\n * [base] {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\nP.logarithm = P.log = function (base) {\r\n var r,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision,\r\n wpr = pr + 5;\r\n\r\n // Default base is 10.\r\n if (base === void 0) {\r\n base = new Ctor(10);\r\n } else {\r\n base = new Ctor(base);\r\n\r\n // log[-b](x) = NaN\r\n // log[0](x) = NaN\r\n // log[1](x) = NaN\r\n if (base.s < 1 || base.eq(ONE)) throw Error(decimalError + 'NaN');\r\n }\r\n\r\n // log[b](-x) = NaN\r\n // log[b](0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // log[b](1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n external = false;\r\n r = divide(ln(x, wpr), ln(base, wpr), wpr);\r\n external = true;\r\n\r\n return round(r, pr);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\nP.minus = P.sub = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? subtract(x, y) : add(x, (y.s = -y.s, y));\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\nP.modulo = P.mod = function (y) {\r\n var q,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n y = new Ctor(y);\r\n\r\n // x % 0 = NaN\r\n if (!y.s) throw Error(decimalError + 'NaN');\r\n\r\n // Return x if x is 0.\r\n if (!x.s) return round(new Ctor(x), pr);\r\n\r\n // Prevent rounding of intermediate calculations.\r\n external = false;\r\n q = divide(x, y, 0, 1).times(y);\r\n external = true;\r\n\r\n return x.minus(q);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n * i.e. the base e raised to the power the value of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\nP.naturalExponential = P.exp = function () {\r\n return exp(this);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * truncated to `precision` significant digits.\r\n *\r\n */\r\nP.naturalLogarithm = P.ln = function () {\r\n return ln(this);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n * -1.\r\n *\r\n */\r\nP.negated = P.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s || 0;\r\n return x;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\nP.plus = P.add = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? add(x, y) : subtract(x, (y.s = -y.s, y));\r\n};\r\n\r\n\r\n/*\r\n * Return the number of significant digits of the value of this Decimal.\r\n *\r\n * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n *\r\n */\r\nP.precision = P.sd = function (z) {\r\n var e, sd, w,\r\n x = this;\r\n\r\n if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\r\n\r\n e = getBase10Exponent(x) + 1;\r\n w = x.d.length - 1;\r\n sd = w * LOG_BASE + 1;\r\n w = x.d[w];\r\n\r\n // If non-zero...\r\n if (w) {\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n for (; w % 10 == 0; w /= 10) sd--;\r\n\r\n // Add the number of digits of the first word.\r\n for (w = x.d[0]; w >= 10; w /= 10) sd++;\r\n }\r\n\r\n return z && e > sd ? e : sd;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the square root of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\nP.squareRoot = P.sqrt = function () {\r\n var e, n, pr, r, s, t, wpr,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n // Negative or zero?\r\n if (x.s < 1) {\r\n if (!x.s) return new Ctor(0);\r\n\r\n // sqrt(-x) = NaN\r\n throw Error(decimalError + 'NaN');\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+x);\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = digitsToString(x.d);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(n);\r\n e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n pr = Ctor.precision;\r\n s = wpr = pr + 3;\r\n\r\n // Newton-Raphson iteration.\r\n for (;;) {\r\n t = r;\r\n r = t.plus(divide(x, t, wpr + 2)).times(0.5);\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === (n = digitsToString(r.d)).slice(0, wpr)) {\r\n n = n.slice(wpr - 3, wpr + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\r\n // 4999, i.e. approaching a rounding boundary, continue the iteration.\r\n if (s == wpr && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n round(t, pr + 1, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n } else if (n != '9999') {\r\n break;\r\n }\r\n\r\n wpr += 4;\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return round(r, pr);\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal times `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\nP.times = P.mul = function (y) {\r\n var carry, e, i, k, r, rL, t, xdL, ydL,\r\n x = this,\r\n Ctor = x.constructor,\r\n xd = x.d,\r\n yd = (y = new Ctor(y)).d;\r\n\r\n // Return 0 if either is 0.\r\n if (!x.s || !y.s) return new Ctor(0);\r\n\r\n y.s *= x.s;\r\n e = x.e + y.e;\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Ensure xd points to the longer array.\r\n if (xdL < ydL) {\r\n r = xd;\r\n xd = yd;\r\n yd = r;\r\n rL = xdL;\r\n xdL = ydL;\r\n ydL = rL;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n r = [];\r\n rL = xdL + ydL;\r\n for (i = rL; i--;) r.push(0);\r\n\r\n // Multiply!\r\n for (i = ydL; --i >= 0;) {\r\n carry = 0;\r\n for (k = xdL + i; k > i;) {\r\n t = r[k] + yd[i] * xd[k - i - 1] + carry;\r\n r[k--] = t % BASE | 0;\r\n carry = t / BASE | 0;\r\n }\r\n\r\n r[k] = (r[k] + carry) % BASE | 0;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; !r[--rL];) r.pop();\r\n\r\n if (carry) ++e;\r\n else r.shift();\r\n\r\n y.d = r;\r\n y.e = e;\r\n\r\n return external ? round(y, Ctor.precision) : y;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n *\r\n * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toDecimalPlaces = P.todp = function (dp, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n if (dp === void 0) return x;\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n return round(x, dp + getBase10Exponent(x) + 1, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in exponential notation rounded to\r\n * `dp` fixed decimal places using rounding mode `rounding`.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toExponential = function (dp, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = toString(x, true);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), dp + 1, rm);\r\n str = toString(x, true, dp + 1);\r\n }\r\n\r\n return str;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n * omitted.\r\n *\r\n * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n * (-0).toFixed(3) is '0.000'.\r\n * (-0.5).toFixed(0) is '-0'.\r\n *\r\n */\r\nP.toFixed = function (dp, rm) {\r\n var str, y,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) return toString(x);\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n y = round(new Ctor(x), dp + getBase10Exponent(x) + 1, rm);\r\n str = toString(y.abs(), false, dp + getBase10Exponent(y) + 1);\r\n\r\n // To determine whether to add the minus sign look at the value before it was rounded,\r\n // i.e. look at `x` rather than `y`.\r\n return x.isneg() && !x.isZero() ? '-' + str : str;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n * rounding mode `rounding`.\r\n *\r\n */\r\nP.toInteger = P.toint = function () {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(new Ctor(x), getBase10Exponent(x) + 1, Ctor.rounding);\r\n};\r\n\r\n\r\n/*\r\n * Return the value of this Decimal converted to a number primitive.\r\n *\r\n */\r\nP.toNumber = function () {\r\n return +this;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`,\r\n * truncated to `precision` significant digits.\r\n *\r\n * For non-integer or very large exponents pow(x, y) is calculated using\r\n *\r\n * x^y = exp(y*ln(x))\r\n *\r\n * The maximum error is 1 ulp (unit in last place).\r\n *\r\n * y {number|string|Decimal} The power to which to raise this Decimal.\r\n *\r\n */\r\nP.toPower = P.pow = function (y) {\r\n var e, k, pr, r, sign, yIsInt,\r\n x = this,\r\n Ctor = x.constructor,\r\n guard = 12,\r\n yn = +(y = new Ctor(y));\r\n\r\n // pow(x, 0) = 1\r\n if (!y.s) return new Ctor(ONE);\r\n\r\n x = new Ctor(x);\r\n\r\n // pow(0, y > 0) = 0\r\n // pow(0, y < 0) = Infinity\r\n if (!x.s) {\r\n if (y.s < 1) throw Error(decimalError + 'Infinity');\r\n return x;\r\n }\r\n\r\n // pow(1, y) = 1\r\n if (x.eq(ONE)) return x;\r\n\r\n pr = Ctor.precision;\r\n\r\n // pow(x, 1) = x\r\n if (y.eq(ONE)) return round(x, pr);\r\n\r\n e = y.e;\r\n k = y.d.length - 1;\r\n yIsInt = e >= k;\r\n sign = x.s;\r\n\r\n if (!yIsInt) {\r\n\r\n // pow(x < 0, y non-integer) = NaN\r\n if (sign < 0) throw Error(decimalError + 'NaN');\r\n\r\n // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n } else if ((k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n r = new Ctor(ONE);\r\n\r\n // Max k of 9007199254740991 takes 53 loop iterations.\r\n // Maximum digits array length; leaves [28, 34] guard digits.\r\n e = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n external = false;\r\n\r\n for (;;) {\r\n if (k % 2) {\r\n r = r.times(x);\r\n truncate(r.d, e);\r\n }\r\n\r\n k = mathfloor(k / 2);\r\n if (k === 0) break;\r\n\r\n x = x.times(x);\r\n truncate(x.d, e);\r\n }\r\n\r\n external = true;\r\n\r\n return y.s < 0 ? new Ctor(ONE).div(r) : round(r, pr);\r\n }\r\n\r\n // Result is negative if x is negative and the last digit of integer y is odd.\r\n sign = sign < 0 && y.d[Math.max(e, k)] & 1 ? -1 : 1;\r\n\r\n x.s = 1;\r\n external = false;\r\n r = y.times(ln(x, pr + guard));\r\n external = true;\r\n r = exp(r);\r\n r.s = sign;\r\n\r\n return r;\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toPrecision = function (sd, rm) {\r\n var e, str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n e = getBase10Exponent(x);\r\n str = toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), sd, rm);\r\n e = getBase10Exponent(x);\r\n str = toString(x, sd <= e || e <= Ctor.toExpNeg, sd);\r\n }\r\n\r\n return str;\r\n};\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n * omitted.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\nP.toSignificantDigits = P.tosd = function (sd, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n }\r\n\r\n return round(new Ctor(x), sd, rm);\r\n};\r\n\r\n\r\n/*\r\n * Return a string representing the value of this Decimal.\r\n *\r\n * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n *\r\n */\r\nP.toString = P.valueOf = P.val = P.toJSON = P[Symbol.for('nodejs.util.inspect.custom')] = function () {\r\n var x = this,\r\n e = getBase10Exponent(x),\r\n Ctor = x.constructor;\r\n\r\n return toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n};\r\n\r\n\r\n// Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\r\n\r\n\r\n/*\r\n * add P.minus, P.plus\r\n * checkInt32 P.todp, P.toExponential, P.toFixed, P.toPrecision, P.tosd\r\n * digitsToString P.log, P.sqrt, P.pow, toString, exp, ln\r\n * divide P.div, P.idiv, P.log, P.mod, P.sqrt, exp, ln\r\n * exp P.exp, P.pow\r\n * getBase10Exponent P.exponent, P.sd, P.toint, P.sqrt, P.todp, P.toFixed, P.toPrecision,\r\n * P.toString, divide, round, toString, exp, ln\r\n * getLn10 P.log, ln\r\n * getZeroString digitsToString, toString\r\n * ln P.log, P.ln, P.pow, exp\r\n * parseDecimal Decimal\r\n * round P.abs, P.idiv, P.log, P.minus, P.mod, P.neg, P.plus, P.toint, P.sqrt,\r\n * P.times, P.todp, P.toExponential, P.toFixed, P.pow, P.toPrecision, P.tosd,\r\n * divide, getLn10, exp, ln\r\n * subtract P.minus, P.plus\r\n * toString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf\r\n * truncate P.pow\r\n *\r\n * Throws: P.log, P.mod, P.sd, P.sqrt, P.pow, checkInt32, divide, round,\r\n * getLn10, exp, ln, parseDecimal, Decimal, config\r\n */\r\n\r\n\r\nfunction add(x, y) {\r\n var carry, d, e, i, k, len, xd, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // If either is zero...\r\n if (!x.s || !y.s) {\r\n\r\n // Return x if y is zero.\r\n // Return y if y is non-zero.\r\n if (!y.s) y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n k = x.e;\r\n e = y.e;\r\n xd = xd.slice();\r\n i = k - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (i) {\r\n if (i < 0) {\r\n d = xd;\r\n i = -i;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = k;\r\n len = xd.length;\r\n }\r\n\r\n // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\r\n k = Math.ceil(pr / LOG_BASE);\r\n len = k > len ? k + 1 : len + 1;\r\n\r\n if (i > len) {\r\n i = len;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\r\n d.reverse();\r\n for (; i--;) d.push(0);\r\n d.reverse();\r\n }\r\n\r\n len = xd.length;\r\n i = yd.length;\r\n\r\n // If yd is longer than xd, swap xd and yd so xd points to the longer array.\r\n if (len - i < 0) {\r\n i = len;\r\n d = yd;\r\n yd = xd;\r\n xd = d;\r\n }\r\n\r\n // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\r\n for (carry = 0; i;) {\r\n carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\r\n xd[i] %= BASE;\r\n }\r\n\r\n if (carry) {\r\n xd.unshift(carry);\r\n ++e;\r\n }\r\n\r\n // Remove trailing zeros.\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n for (len = xd.length; xd[--len] == 0;) xd.pop();\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n return external ? round(y, pr) : y;\r\n}\r\n\r\n\r\nfunction checkInt32(i, min, max) {\r\n if (i !== ~~i || i < min || i > max) {\r\n throw Error(invalidArgument + i);\r\n }\r\n}\r\n\r\n\r\nfunction digitsToString(d) {\r\n var i, k, ws,\r\n indexOfLastWord = d.length - 1,\r\n str = '',\r\n w = d[0];\r\n\r\n if (indexOfLastWord > 0) {\r\n str += w;\r\n for (i = 1; i < indexOfLastWord; i++) {\r\n ws = d[i] + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n str += ws;\r\n }\r\n\r\n w = d[i];\r\n ws = w + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n } else if (w === 0) {\r\n return '0';\r\n }\r\n\r\n // Remove trailing zeros of last w.\r\n for (; w % 10 === 0;) w /= 10;\r\n\r\n return str + w;\r\n}\r\n\r\n\r\nvar divide = (function () {\r\n\r\n // Assumes non-zero x and k, and hence non-zero result.\r\n function multiplyInteger(x, k) {\r\n var temp,\r\n carry = 0,\r\n i = x.length;\r\n\r\n for (x = x.slice(); i--;) {\r\n temp = x[i] * k + carry;\r\n x[i] = temp % BASE | 0;\r\n carry = temp / BASE | 0;\r\n }\r\n\r\n if (carry) x.unshift(carry);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, r;\r\n\r\n if (aL != bL) {\r\n r = aL > bL ? 1 : -1;\r\n } else {\r\n for (i = r = 0; i < aL; i++) {\r\n if (a[i] != b[i]) {\r\n r = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n function subtract(a, b, aL) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * BASE + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1;) a.shift();\r\n }\r\n\r\n return function (x, y, pr, dp) {\r\n var cmp, e, i, k, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0, yL, yz,\r\n Ctor = x.constructor,\r\n sign = x.s == y.s ? 1 : -1,\r\n xd = x.d,\r\n yd = y.d;\r\n\r\n // Either 0?\r\n if (!x.s) return new Ctor(x);\r\n if (!y.s) throw Error(decimalError + 'Division by zero');\r\n\r\n e = x.e - y.e;\r\n yL = yd.length;\r\n xL = xd.length;\r\n q = new Ctor(sign);\r\n qd = q.d = [];\r\n\r\n // Result exponent may be one less than e.\r\n for (i = 0; yd[i] == (xd[i] || 0); ) ++i;\r\n if (yd[i] > (xd[i] || 0)) --e;\r\n\r\n if (pr == null) {\r\n sd = pr = Ctor.precision;\r\n } else if (dp) {\r\n sd = pr + (getBase10Exponent(x) - getBase10Exponent(y)) + 1;\r\n } else {\r\n sd = pr;\r\n }\r\n\r\n if (sd < 0) return new Ctor(0);\r\n\r\n // Convert precision in number of base 10 digits to base 1e7 digits.\r\n sd = sd / LOG_BASE + 2 | 0;\r\n i = 0;\r\n\r\n // divisor < 1e7\r\n if (yL == 1) {\r\n k = 0;\r\n yd = yd[0];\r\n sd++;\r\n\r\n // k is the carry.\r\n for (; (i < xL || k) && sd--; i++) {\r\n t = k * BASE + (xd[i] || 0);\r\n qd[i] = t / yd | 0;\r\n k = t % yd | 0;\r\n }\r\n\r\n // divisor >= 1e7\r\n } else {\r\n\r\n // Normalise xd and yd so highest order digit of yd is >= BASE/2\r\n k = BASE / (yd[0] + 1) | 0;\r\n\r\n if (k > 1) {\r\n yd = multiplyInteger(yd, k);\r\n xd = multiplyInteger(xd, k);\r\n yL = yd.length;\r\n xL = xd.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xd.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL;) rem[remL++] = 0;\r\n\r\n yz = yd.slice();\r\n yz.unshift(0);\r\n yd0 = yd[0];\r\n\r\n if (yd[1] >= BASE / 2) ++yd0;\r\n\r\n do {\r\n k = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, k.\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * BASE + (rem[1] || 0);\r\n\r\n // k will be how many times the divisor goes into the current remainder.\r\n k = rem0 / yd0 | 0;\r\n\r\n // Algorithm:\r\n // 1. product = divisor * trial digit (k)\r\n // 2. if product > remainder: product -= divisor, k--\r\n // 3. remainder -= product\r\n // 4. if product was < remainder at 2:\r\n // 5. compare new remainder and divisor\r\n // 6. If remainder > divisor: remainder -= divisor, k++\r\n\r\n if (k > 1) {\r\n if (k >= BASE) k = BASE - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiplyInteger(yd, k);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n cmp = compare(prod, rem, prodL, remL);\r\n\r\n // product > remainder.\r\n if (cmp == 1) {\r\n k--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yd, prodL);\r\n }\r\n } else {\r\n\r\n // cmp is -1.\r\n // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\r\n // to avoid it. If k is 1 there is a need to compare yd and rem again below.\r\n if (k == 0) cmp = k = 1;\r\n prod = yd.slice();\r\n }\r\n\r\n prodL = prod.length;\r\n if (prodL < remL) prod.unshift(0);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL);\r\n\r\n // If product was < previous remainder.\r\n if (cmp == -1) {\r\n remL = rem.length;\r\n\r\n // Compare divisor and new remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n if (cmp < 1) {\r\n k++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yd, remL);\r\n }\r\n }\r\n\r\n remL = rem.length;\r\n } else if (cmp === 0) {\r\n k++;\r\n rem = [0];\r\n } // if cmp === 1, k will be 0\r\n\r\n // Add the next digit, k, to the result array.\r\n qd[i++] = k;\r\n\r\n // Update the remainder.\r\n if (cmp && rem[0]) {\r\n rem[remL++] = xd[xi] || 0;\r\n } else {\r\n rem = [xd[xi]];\r\n remL = 1;\r\n }\r\n\r\n } while ((xi++ < xL || rem[0] !== void 0) && sd--);\r\n }\r\n\r\n // Leading zero?\r\n if (!qd[0]) qd.shift();\r\n\r\n q.e = e;\r\n\r\n return round(q, dp ? pr + getBase10Exponent(q) + 1 : pr);\r\n };\r\n})();\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural exponential of `x` truncated to `sd`\r\n * significant digits.\r\n *\r\n * Taylor/Maclaurin series.\r\n *\r\n * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n *\r\n * Argument reduction:\r\n * Repeat x = x / 32, k += 5, until |x| < 0.1\r\n * exp(x) = exp(x / 2^k)^(2^k)\r\n *\r\n * Previously, the argument was initially reduced by\r\n * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10)\r\n * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n * found to be slower than just dividing repeatedly by 32 as above.\r\n *\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n */\r\nfunction exp(x, sd) {\r\n var denominator, guard, pow, sum, t, wpr,\r\n i = 0,\r\n k = 0,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n if (getBase10Exponent(x) > 16) throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n\r\n // exp(0) = 1\r\n if (!x.s) return new Ctor(ONE);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n t = new Ctor(0.03125);\r\n\r\n while (x.abs().gte(0.1)) {\r\n x = x.times(t); // x = x / 2^5\r\n k += 5;\r\n }\r\n\r\n // Estimate the precision increase necessary to ensure the first 4 rounding digits are correct.\r\n guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\r\n wpr += guard;\r\n denominator = pow = sum = new Ctor(ONE);\r\n Ctor.precision = wpr;\r\n\r\n for (;;) {\r\n pow = round(pow.times(x), wpr);\r\n denominator = denominator.times(++i);\r\n t = sum.plus(divide(pow, denominator, wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n while (k--) sum = round(sum.times(sum), wpr);\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n }\r\n}\r\n\r\n\r\n// Calculate the base 10 exponent from the base 1e7 exponent.\r\nfunction getBase10Exponent(x) {\r\n var e = x.e * LOG_BASE,\r\n w = x.d[0];\r\n\r\n // Add the number of digits of the first word of the digits array.\r\n for (; w >= 10; w /= 10) e++;\r\n return e;\r\n}\r\n\r\n\r\nfunction getLn10(Ctor, sd, pr) {\r\n\r\n if (sd > Ctor.LN10.sd()) {\r\n\r\n\r\n // Reset global state in case the exception is caught.\r\n external = true;\r\n if (pr) Ctor.precision = pr;\r\n throw Error(decimalError + 'LN10 precision limit exceeded');\r\n }\r\n\r\n return round(new Ctor(Ctor.LN10), sd);\r\n}\r\n\r\n\r\nfunction getZeroString(k) {\r\n var zs = '';\r\n for (; k--;) zs += '0';\r\n return zs;\r\n}\r\n\r\n\r\n/*\r\n * Return a new Decimal whose value is the natural logarithm of `x` truncated to `sd` significant\r\n * digits.\r\n *\r\n * ln(n) is non-terminating (n != 1)\r\n *\r\n */\r\nfunction ln(y, sd) {\r\n var c, c0, denominator, e, numerator, sum, t, wpr, x2,\r\n n = 1,\r\n guard = 10,\r\n x = y,\r\n xd = x.d,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // ln(-x) = NaN\r\n // ln(0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // ln(1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n if (x.eq(10)) {\r\n if (sd == null) external = true;\r\n return getLn10(Ctor, wpr);\r\n }\r\n\r\n wpr += guard;\r\n Ctor.precision = wpr;\r\n c = digitsToString(xd);\r\n c0 = c.charAt(0);\r\n e = getBase10Exponent(x);\r\n\r\n if (Math.abs(e) < 1.5e15) {\r\n\r\n // Argument reduction.\r\n // The series converges faster the closer the argument is to 1, so using\r\n // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b\r\n // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\r\n // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\r\n // later be divided by this number, then separate out the power of 10 using\r\n // ln(a*10^b) = ln(a) + b*ln(10).\r\n\r\n // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\r\n //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\r\n // max n is 6 (gives 0.7 - 1.3)\r\n while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\r\n x = x.times(y);\r\n c = digitsToString(x.d);\r\n c0 = c.charAt(0);\r\n n++;\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n\r\n if (c0 > 1) {\r\n x = new Ctor('0.' + c);\r\n e++;\r\n } else {\r\n x = new Ctor(c0 + '.' + c.slice(1));\r\n }\r\n } else {\r\n\r\n // The argument reduction method above may result in overflow if the argument y is a massive\r\n // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\r\n // function using ln(x*10^e) = ln(x) + e*ln(10).\r\n t = getLn10(Ctor, wpr + 2, pr).times(e + '');\r\n x = ln(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(x, pr)) : x;\r\n }\r\n\r\n // x is reduced to a value near 1.\r\n\r\n // Taylor series.\r\n // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\r\n // where x = (y - 1)/(y + 1) (|x| < 1)\r\n sum = numerator = x = divide(x.minus(ONE), x.plus(ONE), wpr);\r\n x2 = round(x.times(x), wpr);\r\n denominator = 3;\r\n\r\n for (;;) {\r\n numerator = round(numerator.times(x2), wpr);\r\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n sum = sum.times(2);\r\n\r\n // Reverse the argument reduction.\r\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n sum = divide(sum, new Ctor(n), wpr);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n denominator += 2;\r\n }\r\n}\r\n\r\n\r\n/*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\r\nfunction parseDecimal(x, str) {\r\n var e, i, len;\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48;) ++i;\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(len - 1) === 48;) --len;\r\n str = str.slice(i, len);\r\n\r\n if (str) {\r\n len -= i;\r\n e = e - i - 1;\r\n x.e = mathfloor(e / LOG_BASE);\r\n x.d = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first word of the digits array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE;\r\n\r\n if (i < len) {\r\n if (i) x.d.push(+str.slice(0, i));\r\n for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));\r\n str = str.slice(i);\r\n i = LOG_BASE - str.length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--;) str += '0';\r\n x.d.push(+str);\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) throw Error(exponentOutOfRange + e);\r\n } else {\r\n\r\n // Zero.\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\n/*\r\n * Round `x` to `sd` significant digits, using rounding mode `rm` if present (truncate otherwise).\r\n */\r\n function round(x, sd, rm) {\r\n var i, j, k, n, rd, doRound, w, xdi,\r\n xd = x.d;\r\n\r\n // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // w: the word of xd which contains the rounding digit, a base 1e7 number.\r\n // xdi: the index of w within xd.\r\n // n: the number of digits of w.\r\n // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\r\n // they had leading zeros)\r\n // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\r\n\r\n // Get the length of the first word of the digits array xd.\r\n for (n = 1, k = xd[0]; k >= 10; k /= 10) n++;\r\n i = sd - n;\r\n\r\n // Is the rounding digit in the first word of xd?\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n w = xd[xdi = 0];\r\n } else {\r\n xdi = Math.ceil((i + 1) / LOG_BASE);\r\n k = xd.length;\r\n if (xdi >= k) return x;\r\n w = k = xd[xdi];\r\n\r\n // Get the number of digits of w.\r\n for (n = 1; k >= 10; k /= 10) n++;\r\n\r\n // Get the index of rd within w.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within w, adjusted for leading zeros.\r\n // The number of leading zeros of w is given by LOG_BASE - n.\r\n j = i - LOG_BASE + n;\r\n }\r\n\r\n if (rm !== void 0) {\r\n k = mathpow(10, n - j - 1);\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = w / k % 10 | 0;\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n doRound = sd < 0 || xd[xdi + 1] !== void 0 || w % k;\r\n\r\n // The expression `w % mathpow(10, n - j - 1)` returns all the digits of w to the right of the\r\n // digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression will give\r\n // 714.\r\n\r\n doRound = rm < 4\r\n ? (rd || doRound) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || doRound || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? w / mathpow(10, n - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n }\r\n\r\n if (sd < 1 || !xd[0]) {\r\n if (doRound) {\r\n k = getBase10Exponent(x);\r\n xd.length = 1;\r\n\r\n // Convert sd to decimal places.\r\n sd = sd - k - 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\r\n x.e = mathfloor(-sd / LOG_BASE) || 0;\r\n } else {\r\n xd.length = 1;\r\n\r\n // Zero.\r\n xd[0] = x.e = x.s = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xd.length = xdi;\r\n k = 1;\r\n xdi--;\r\n } else {\r\n xd.length = xdi + 1;\r\n k = mathpow(10, LOG_BASE - i);\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of w.\r\n xd[xdi] = j > 0 ? (w / mathpow(10, n - j) % mathpow(10, j) | 0) * k : 0;\r\n }\r\n\r\n if (doRound) {\r\n for (;;) {\r\n\r\n // Is the digit to be rounded up in the first word of xd?\r\n if (xdi == 0) {\r\n if ((xd[0] += k) == BASE) {\r\n xd[0] = 1;\r\n ++x.e;\r\n }\r\n\r\n break;\r\n } else {\r\n xd[xdi] += k;\r\n if (xd[xdi] != BASE) break;\r\n xd[xdi--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xd.length; xd[--i] === 0;) xd.pop();\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) {\r\n throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n }\r\n\r\n return x;\r\n}\r\n\r\n\r\nfunction subtract(x, y) {\r\n var d, e, i, j, k, len, xd, xe, xLTy, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // Return y negated if x is zero.\r\n // Return x if y is zero and x is non-zero.\r\n if (!x.s || !y.s) {\r\n if (y.s) y.s = -y.s;\r\n else y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are non-zero numbers with the same sign.\r\n\r\n e = y.e;\r\n xe = x.e;\r\n xd = xd.slice();\r\n k = xe - e;\r\n\r\n // If exponents differ...\r\n if (k) {\r\n xLTy = k < 0;\r\n\r\n if (xLTy) {\r\n d = xd;\r\n k = -k;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = xe;\r\n len = xd.length;\r\n }\r\n\r\n // Numbers with massively different exponents would result in a very high number of zeros\r\n // needing to be prepended, but this can be avoided while still ensuring correct rounding by\r\n // limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\r\n i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\r\n\r\n if (k > i) {\r\n k = i;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents.\r\n d.reverse();\r\n for (i = k; i--;) d.push(0);\r\n d.reverse();\r\n\r\n // Base 1e7 exponents equal.\r\n } else {\r\n\r\n // Check digits to determine which is the bigger number.\r\n\r\n i = xd.length;\r\n len = yd.length;\r\n xLTy = i < len;\r\n if (xLTy) len = i;\r\n\r\n for (i = 0; i < len; i++) {\r\n if (xd[i] != yd[i]) {\r\n xLTy = xd[i] < yd[i];\r\n break;\r\n }\r\n }\r\n\r\n k = 0;\r\n }\r\n\r\n if (xLTy) {\r\n d = xd;\r\n xd = yd;\r\n yd = d;\r\n y.s = -y.s;\r\n }\r\n\r\n len = xd.length;\r\n\r\n // Append zeros to xd if shorter.\r\n // Don't add zeros to yd if shorter as subtraction only needs to start at yd length.\r\n for (i = yd.length - len; i > 0; --i) xd[len++] = 0;\r\n\r\n // Subtract yd from xd.\r\n for (i = yd.length; i > k;) {\r\n if (xd[--i] < yd[i]) {\r\n for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;\r\n --xd[j];\r\n xd[i] += BASE;\r\n }\r\n\r\n xd[i] -= yd[i];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] === 0;) xd.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xd[0] === 0; xd.shift()) --e;\r\n\r\n // Zero?\r\n if (!xd[0]) return new Ctor(0);\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n //return external && xd.length >= pr / LOG_BASE ? round(y, pr) : y;\r\n return external ? round(y, pr) : y;\r\n}\r\n\r\n\r\nfunction toString(x, isExp, sd) {\r\n var k,\r\n e = getBase10Exponent(x),\r\n str = digitsToString(x.d),\r\n len = str.length;\r\n\r\n if (isExp) {\r\n if (sd && (k = sd - len) > 0) {\r\n str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\r\n } else if (len > 1) {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n\r\n str = str + (e < 0 ? 'e' : 'e+') + e;\r\n } else if (e < 0) {\r\n str = '0.' + getZeroString(-e - 1) + str;\r\n if (sd && (k = sd - len) > 0) str += getZeroString(k);\r\n } else if (e >= len) {\r\n str += getZeroString(e + 1 - len);\r\n if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\r\n } else {\r\n if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\r\n if (sd && (k = sd - len) > 0) {\r\n if (e + 1 === len) str += '.';\r\n str += getZeroString(k);\r\n }\r\n }\r\n\r\n return x.s < 0 ? '-' + str : str;\r\n}\r\n\r\n\r\n// Does not strip trailing zeros.\r\nfunction truncate(arr, len) {\r\n if (arr.length > len) {\r\n arr.length = len;\r\n return true;\r\n }\r\n}\r\n\r\n\r\n// Decimal methods\r\n\r\n\r\n/*\r\n * clone\r\n * config/set\r\n */\r\n\r\n\r\n/*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\r\nfunction clone(obj) {\r\n var i, p, ps;\r\n\r\n /*\r\n * The Decimal constructor and exported function.\r\n * Return a new Decimal instance.\r\n *\r\n * value {number|string|Decimal} A numeric value.\r\n *\r\n */\r\n function Decimal(value) {\r\n var x = this;\r\n\r\n // Decimal called without new.\r\n if (!(x instanceof Decimal)) return new Decimal(value);\r\n\r\n // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\r\n // which points to Object.\r\n x.constructor = Decimal;\r\n\r\n // Duplicate.\r\n if (value instanceof Decimal) {\r\n x.s = value.s;\r\n x.e = value.e;\r\n x.d = (value = value.d) ? value.slice() : value;\r\n return;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n\r\n // Reject Infinity/NaN.\r\n if (value * 0 !== 0) {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n if (value > 0) {\r\n x.s = 1;\r\n } else if (value < 0) {\r\n value = -value;\r\n x.s = -1;\r\n } else {\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n return;\r\n }\r\n\r\n // Fast path for small integers.\r\n if (value === ~~value && value < 1e7) {\r\n x.e = 0;\r\n x.d = [value];\r\n return;\r\n }\r\n\r\n return parseDecimal(x, value.toString());\r\n } else if (typeof value !== 'string') {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n // Minus sign?\r\n if (value.charCodeAt(0) === 45) {\r\n value = value.slice(1);\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n if (isDecimal.test(value)) parseDecimal(x, value);\r\n else throw Error(invalidArgument + value);\r\n }\r\n\r\n Decimal.prototype = P;\r\n\r\n Decimal.ROUND_UP = 0;\r\n Decimal.ROUND_DOWN = 1;\r\n Decimal.ROUND_CEIL = 2;\r\n Decimal.ROUND_FLOOR = 3;\r\n Decimal.ROUND_HALF_UP = 4;\r\n Decimal.ROUND_HALF_DOWN = 5;\r\n Decimal.ROUND_HALF_EVEN = 6;\r\n Decimal.ROUND_HALF_CEIL = 7;\r\n Decimal.ROUND_HALF_FLOOR = 8;\r\n\r\n Decimal.clone = clone;\r\n Decimal.config = Decimal.set = config;\r\n\r\n if (obj === void 0) obj = {};\r\n if (obj) {\r\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'LN10'];\r\n for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\r\n }\r\n\r\n Decimal.config(obj);\r\n\r\n return Decimal;\r\n}\r\n\r\n\r\n/*\r\n * Configure global settings for a Decimal constructor.\r\n *\r\n * `obj` is an object with one or more of the following properties,\r\n *\r\n * precision {number}\r\n * rounding {number}\r\n * toExpNeg {number}\r\n * toExpPos {number}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\r\nfunction config(obj) {\r\n if (!obj || typeof obj !== 'object') {\r\n throw Error(decimalError + 'Object expected');\r\n }\r\n var i, p, v,\r\n ps = [\r\n 'precision', 1, MAX_DIGITS,\r\n 'rounding', 0, 8,\r\n 'toExpNeg', -1 / 0, 0,\r\n 'toExpPos', 0, 1 / 0\r\n ];\r\n\r\n for (i = 0; i < ps.length; i += 3) {\r\n if ((v = obj[p = ps[i]]) !== void 0) {\r\n if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n if ((v = obj[p = 'LN10']) !== void 0) {\r\n if (v == Math.LN10) this[p] = new this(v);\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n\r\n return this;\r\n}\r\n\r\n\r\n// Create and configure initial Decimal constructor.\r\nexport var Decimal = clone(defaults);\r\n\r\n// Internal constant.\r\nONE = new Decimal(1);\r\n\r\nexport default Decimal;\r\n","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar identity = function identity(i) {\n return i;\n};\n\nexport var PLACE_HOLDER = {\n '@@functional/placeholder': true\n};\n\nvar isPlaceHolder = function isPlaceHolder(val) {\n return val === PLACE_HOLDER;\n};\n\nvar curry0 = function curry0(fn) {\n return function _curried() {\n if (arguments.length === 0 || arguments.length === 1 && isPlaceHolder(arguments.length <= 0 ? undefined : arguments[0])) {\n return _curried;\n }\n\n return fn.apply(void 0, arguments);\n };\n};\n\nvar curryN = function curryN(n, fn) {\n if (n === 1) {\n return fn;\n }\n\n return curry0(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var argsLength = args.filter(function (arg) {\n return arg !== PLACE_HOLDER;\n }).length;\n\n if (argsLength >= n) {\n return fn.apply(void 0, args);\n }\n\n return curryN(n - argsLength, curry0(function () {\n for (var _len2 = arguments.length, restArgs = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n restArgs[_key2] = arguments[_key2];\n }\n\n var newArgs = args.map(function (arg) {\n return isPlaceHolder(arg) ? restArgs.shift() : arg;\n });\n return fn.apply(void 0, _toConsumableArray(newArgs).concat(restArgs));\n }));\n });\n};\n\nexport var curry = function curry(fn) {\n return curryN(fn.length, fn);\n};\nexport var range = function range(begin, end) {\n var arr = [];\n\n for (var i = begin; i < end; ++i) {\n arr[i - begin] = i;\n }\n\n return arr;\n};\nexport var map = curry(function (fn, arr) {\n if (Array.isArray(arr)) {\n return arr.map(fn);\n }\n\n return Object.keys(arr).map(function (key) {\n return arr[key];\n }).map(fn);\n});\nexport var compose = function compose() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n if (!args.length) {\n return identity;\n }\n\n var fns = args.reverse(); // first function can receive multiply arguments\n\n var firstFn = fns[0];\n var tailsFn = fns.slice(1);\n return function () {\n return tailsFn.reduce(function (res, fn) {\n return fn(res);\n }, firstFn.apply(void 0, arguments));\n };\n};\nexport var reverse = function reverse(arr) {\n if (Array.isArray(arr)) {\n return arr.reverse();\n } // can be string\n\n\n return arr.split('').reverse.join('');\n};\nexport var memoize = function memoize(fn) {\n var lastArgs = null;\n var lastResult = null;\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n if (lastArgs && args.every(function (val, i) {\n return val === lastArgs[i];\n })) {\n return lastResult;\n }\n\n lastArgs = args;\n lastResult = fn.apply(void 0, args);\n return lastResult;\n };\n};","/**\n * @fileOverview 一些公用的运算方法\n * @author xile611\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { curry } from './utils';\n/**\n * 获取数值的位数\n * 其中绝对值属于区间[0.1, 1), 得到的值为0\n * 绝对值属于区间[0.01, 0.1),得到的位数为 -1\n * 绝对值属于区间[0.001, 0.01),得到的位数为 -2\n *\n * @param {Number} value 数值\n * @return {Integer} 位数\n */\n\nfunction getDigitCount(value) {\n var result;\n\n if (value === 0) {\n result = 1;\n } else {\n result = Math.floor(new Decimal(value).abs().log(10).toNumber()) + 1;\n }\n\n return result;\n}\n/**\n * 按照固定的步长获取[start, end)这个区间的数据\n * 并且需要处理js计算精度的问题\n *\n * @param {Decimal} start 起点\n * @param {Decimal} end 终点,不包含该值\n * @param {Decimal} step 步长\n * @return {Array} 若干数值\n */\n\n\nfunction rangeStep(start, end, step) {\n var num = new Decimal(start);\n var i = 0;\n var result = []; // magic number to prevent infinite loop\n\n while (num.lt(end) && i < 100000) {\n result.push(num.toNumber());\n num = num.add(step);\n i++;\n }\n\n return result;\n}\n/**\n * 对数值进行线性插值\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} t [0, 1]内的某个值\n * @return {Number} 定义域内的某个值\n */\n\n\nvar interpolateNumber = curry(function (a, b, t) {\n var newA = +a;\n var newB = +b;\n return newA + t * (newB - newA);\n});\n/**\n * 线性插值的逆运算\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个范围内时,返回值属于[0, 1]\n */\n\nvar uninterpolateNumber = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return (x - a) / diff;\n});\n/**\n * 线性插值的逆运算,并且有截断的操作\n *\n * @param {Number} a 定义域的极点\n * @param {Number} b 定义域的极点\n * @param {Number} x 可以认为是插值后的一个输出值\n * @return {Number} 当x在 a ~ b这个区间内时,返回值属于[0, 1],\n * 当x不在 a ~ b这个区间时,会截断到 a ~ b 这个区间\n */\n\nvar uninterpolateTruncation = curry(function (a, b, x) {\n var diff = b - +a;\n diff = diff || Infinity;\n return Math.max(0, Math.min(1, (x - a) / diff));\n});\nexport default {\n rangeStep: rangeStep,\n getDigitCount: getDigitCount,\n interpolateNumber: interpolateNumber,\n uninterpolateNumber: uninterpolateNumber,\n uninterpolateTruncation: uninterpolateTruncation\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\n/**\n * @fileOverview calculate tick values of scale\n * @author xile611, arcthur\n * @date 2015-09-17\n */\nimport Decimal from 'decimal.js-light';\nimport { compose, range, memoize, map, reverse } from './util/utils';\nimport Arithmetic from './util/arithmetic';\n/**\n * Calculate a interval of a minimum value and a maximum value\n *\n * @param {Number} min The minimum value\n * @param {Number} max The maximum value\n * @return {Array} An interval\n */\n\nfunction getValidInterval(_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n min = _ref2[0],\n max = _ref2[1];\n\n var validMin = min,\n validMax = max; // exchange\n\n if (min > max) {\n validMin = max;\n validMax = min;\n }\n\n return [validMin, validMax];\n}\n/**\n * Calculate the step which is easy to understand between ticks, like 10, 20, 25\n *\n * @param {Decimal} roughStep The rough step calculated by deviding the\n * difference by the tickCount\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Integer} correctionFactor A correction factor\n * @return {Decimal} The step which is easy to understand between two ticks\n */\n\n\nfunction getFormatStep(roughStep, allowDecimals, correctionFactor) {\n if (roughStep.lte(0)) {\n return new Decimal(0);\n }\n\n var digitCount = Arithmetic.getDigitCount(roughStep.toNumber()); // The ratio between the rough step and the smallest number which has a bigger\n // order of magnitudes than the rough step\n\n var digitCountValue = new Decimal(10).pow(digitCount);\n var stepRatio = roughStep.div(digitCountValue); // When an integer and a float multiplied, the accuracy of result may be wrong\n\n var stepRatioScale = digitCount !== 1 ? 0.05 : 0.1;\n var amendStepRatio = new Decimal(Math.ceil(stepRatio.div(stepRatioScale).toNumber())).add(correctionFactor).mul(stepRatioScale);\n var formatStep = amendStepRatio.mul(digitCountValue);\n return allowDecimals ? formatStep : new Decimal(Math.ceil(formatStep));\n}\n/**\n * calculate the ticks when the minimum value equals to the maximum value\n *\n * @param {Number} value The minimum valuue which is also the maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickOfSingleValue(value, tickCount, allowDecimals) {\n var step = 1; // calculate the middle value of ticks\n\n var middle = new Decimal(value);\n\n if (!middle.isint() && allowDecimals) {\n var absVal = Math.abs(value);\n\n if (absVal < 1) {\n // The step should be a float number when the difference is smaller than 1\n step = new Decimal(10).pow(Arithmetic.getDigitCount(value) - 1);\n middle = new Decimal(Math.floor(middle.div(step).toNumber())).mul(step);\n } else if (absVal > 1) {\n // Return the maximum integer which is smaller than 'value' when 'value' is greater than 1\n middle = new Decimal(Math.floor(value));\n }\n } else if (value === 0) {\n middle = new Decimal(Math.floor((tickCount - 1) / 2));\n } else if (!allowDecimals) {\n middle = new Decimal(Math.floor(value));\n }\n\n var middleIndex = Math.floor((tickCount - 1) / 2);\n var fn = compose(map(function (n) {\n return middle.add(new Decimal(n - middleIndex).mul(step)).toNumber();\n }), range);\n return fn(0, tickCount);\n}\n/**\n * Calculate the step\n *\n * @param {Number} min The minimum value of an interval\n * @param {Number} max The maximum value of an interval\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @param {Number} correctionFactor A correction factor\n * @return {Object} The step, minimum value of ticks, maximum value of ticks\n */\n\n\nfunction calculateStep(min, max, tickCount, allowDecimals) {\n var correctionFactor = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;\n\n // dirty hack (for recharts' test)\n if (!Number.isFinite((max - min) / (tickCount - 1))) {\n return {\n step: new Decimal(0),\n tickMin: new Decimal(0),\n tickMax: new Decimal(0)\n };\n } // The step which is easy to understand between two ticks\n\n\n var step = getFormatStep(new Decimal(max).sub(min).div(tickCount - 1), allowDecimals, correctionFactor); // A medial value of ticks\n\n var middle; // When 0 is inside the interval, 0 should be a tick\n\n if (min <= 0 && max >= 0) {\n middle = new Decimal(0);\n } else {\n // calculate the middle value\n middle = new Decimal(min).add(max).div(2); // minus modulo value\n\n middle = middle.sub(new Decimal(middle).mod(step));\n }\n\n var belowCount = Math.ceil(middle.sub(min).div(step).toNumber());\n var upCount = Math.ceil(new Decimal(max).sub(middle).div(step).toNumber());\n var scaleCount = belowCount + upCount + 1;\n\n if (scaleCount > tickCount) {\n // When more ticks need to cover the interval, step should be bigger.\n return calculateStep(min, max, tickCount, allowDecimals, correctionFactor + 1);\n }\n\n if (scaleCount < tickCount) {\n // When less ticks can cover the interval, we should add some additional ticks\n upCount = max > 0 ? upCount + (tickCount - scaleCount) : upCount;\n belowCount = max > 0 ? belowCount : belowCount + (tickCount - scaleCount);\n }\n\n return {\n step: step,\n tickMin: middle.sub(new Decimal(belowCount).mul(step)),\n tickMax: middle.add(new Decimal(upCount).mul(step))\n };\n}\n/**\n * Calculate the ticks of an interval, the count of ticks will be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getNiceTickValuesFn(_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n min = _ref4[0],\n max = _ref4[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval = getValidInterval([min, max]),\n _getValidInterval2 = _slicedToArray(_getValidInterval, 2),\n cormin = _getValidInterval2[0],\n cormax = _getValidInterval2[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n var _values = cormax === Infinity ? [cormin].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return Infinity;\n }))) : [].concat(_toConsumableArray(range(0, tickCount - 1).map(function () {\n return -Infinity;\n })), [cormax]);\n\n return min > max ? reverse(_values) : _values;\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n } // Get the step between two ticks\n\n\n var _calculateStep = calculateStep(cormin, cormax, count, allowDecimals),\n step = _calculateStep.step,\n tickMin = _calculateStep.tickMin,\n tickMax = _calculateStep.tickMax;\n\n var values = Arithmetic.rangeStep(tickMin, tickMax.add(new Decimal(0.1).mul(step)), step);\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFn(_ref5) {\n var _ref6 = _slicedToArray(_ref5, 2),\n min = _ref6[0],\n max = _ref6[1];\n\n var tickCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 6;\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // More than two ticks should be return\n var count = Math.max(tickCount, 2);\n\n var _getValidInterval3 = getValidInterval([min, max]),\n _getValidInterval4 = _slicedToArray(_getValidInterval3, 2),\n cormin = _getValidInterval4[0],\n cormax = _getValidInterval4[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return getTickOfSingleValue(cormin, tickCount, allowDecimals);\n }\n\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var fn = compose(map(function (n) {\n return new Decimal(cormin).add(new Decimal(n).mul(step)).toNumber();\n }), range);\n var values = fn(0, count).filter(function (entry) {\n return entry >= cormin && entry <= cormax;\n });\n return min > max ? reverse(values) : values;\n}\n/**\n * Calculate the ticks of an interval, the count of ticks won't be guraranteed,\n * but the domain will be guaranteed\n *\n * @param {Number} min, max min: The minimum value, max: The maximum value\n * @param {Integer} tickCount The count of ticks\n * @param {Boolean} allowDecimals Allow the ticks to be decimals or not\n * @return {Array} ticks\n */\n\n\nfunction getTickValuesFixedDomainFn(_ref7, tickCount) {\n var _ref8 = _slicedToArray(_ref7, 2),\n min = _ref8[0],\n max = _ref8[1];\n\n var allowDecimals = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n // More than two ticks should be return\n var _getValidInterval5 = getValidInterval([min, max]),\n _getValidInterval6 = _slicedToArray(_getValidInterval5, 2),\n cormin = _getValidInterval6[0],\n cormax = _getValidInterval6[1];\n\n if (cormin === -Infinity || cormax === Infinity) {\n return [min, max];\n }\n\n if (cormin === cormax) {\n return [cormin];\n }\n\n var count = Math.max(tickCount, 2);\n var step = getFormatStep(new Decimal(cormax).sub(cormin).div(count - 1), allowDecimals, 0);\n var values = [].concat(_toConsumableArray(Arithmetic.rangeStep(new Decimal(cormin), new Decimal(cormax).sub(new Decimal(0.99).mul(step)), step)), [cormax]);\n return min > max ? reverse(values) : values;\n}\n\nexport var getNiceTickValues = memoize(getNiceTickValuesFn);\nexport var getTickValues = memoize(getTickValuesFn);\nexport var getTickValuesFixedDomain = memoize(getTickValuesFixedDomainFn);","var _excluded = [\"offset\", \"layout\", \"width\", \"dataKey\", \"data\", \"dataPointFormatter\", \"xAxis\", \"yAxis\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/**\n * @fileOverview Render a group of error bar\n */\nimport React from 'react';\nimport { Layer } from '../container/Layer';\nimport { filterProps } from '../util/ReactUtils';\nexport function ErrorBar(props) {\n var offset = props.offset,\n layout = props.layout,\n width = props.width,\n dataKey = props.dataKey,\n data = props.data,\n dataPointFormatter = props.dataPointFormatter,\n xAxis = props.xAxis,\n yAxis = props.yAxis,\n others = _objectWithoutProperties(props, _excluded);\n var svgProps = filterProps(others);\n var errorBars = data.map(function (entry, i) {\n var _dataPointFormatter = dataPointFormatter(entry, dataKey),\n x = _dataPointFormatter.x,\n y = _dataPointFormatter.y,\n value = _dataPointFormatter.value,\n errorVal = _dataPointFormatter.errorVal;\n if (!errorVal) {\n return null;\n }\n var lineCoordinates = [];\n var lowBound, highBound;\n if (Array.isArray(errorVal)) {\n var _errorVal = _slicedToArray(errorVal, 2);\n lowBound = _errorVal[0];\n highBound = _errorVal[1];\n } else {\n lowBound = highBound = errorVal;\n }\n if (layout === 'vertical') {\n // error bar for horizontal charts, the y is fixed, x is a range value\n var scale = xAxis.scale;\n var yMid = y + offset;\n var yMin = yMid + width;\n var yMax = yMid - width;\n var xMin = scale(value - lowBound);\n var xMax = scale(value + highBound);\n\n // the right line of |--|\n lineCoordinates.push({\n x1: xMax,\n y1: yMin,\n x2: xMax,\n y2: yMax\n });\n // the middle line of |--|\n lineCoordinates.push({\n x1: xMin,\n y1: yMid,\n x2: xMax,\n y2: yMid\n });\n // the left line of |--|\n lineCoordinates.push({\n x1: xMin,\n y1: yMin,\n x2: xMin,\n y2: yMax\n });\n } else if (layout === 'horizontal') {\n // error bar for horizontal charts, the x is fixed, y is a range value\n var _scale = yAxis.scale;\n var xMid = x + offset;\n var _xMin = xMid - width;\n var _xMax = xMid + width;\n var _yMin = _scale(value - lowBound);\n var _yMax = _scale(value + highBound);\n\n // the top line\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMax,\n x2: _xMax,\n y2: _yMax\n });\n // the middle line\n lineCoordinates.push({\n x1: xMid,\n y1: _yMin,\n x2: xMid,\n y2: _yMax\n });\n // the bottom line\n lineCoordinates.push({\n x1: _xMin,\n y1: _yMin,\n x2: _xMax,\n y2: _yMin\n });\n }\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(Layer, _extends({\n className: \"recharts-errorBar\",\n key: \"bar-\".concat(i)\n }, svgProps), lineCoordinates.map(function (coordinates, index) {\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(\"line\", _extends({}, coordinates, {\n key: \"line-\".concat(index)\n }))\n );\n }))\n );\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-errorBars\"\n }, errorBars);\n}\nErrorBar.defaultProps = {\n stroke: 'black',\n strokeWidth: 1.5,\n width: 5,\n offset: 0,\n layout: 'horizontal'\n};\nErrorBar.displayName = 'ErrorBar';","import _isEqual from \"lodash/isEqual\";\nimport _sortBy from \"lodash/sortBy\";\nimport _upperFirst from \"lodash/upperFirst\";\nimport _isString from \"lodash/isString\";\nimport _isNaN from \"lodash/isNaN\";\nimport _isArray from \"lodash/isArray\";\nimport _max from \"lodash/max\";\nimport _min from \"lodash/min\";\nimport _flatMap from \"lodash/flatMap\";\nimport _isFunction from \"lodash/isFunction\";\nimport _get from \"lodash/get\";\nimport _isNil from \"lodash/isNil\";\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport * as d3Scales from 'victory-vendor/d3-scale';\nimport { stack as shapeStack, stackOffsetExpand, stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle, stackOrderNone } from 'victory-vendor/d3-shape';\nimport { getNiceTickValues, getTickValuesFixedDomain } from 'recharts-scale';\nimport { ErrorBar } from '../cartesian/ErrorBar';\nimport { Legend } from '../component/Legend';\nimport { findEntryInArray, getPercentValue, isNumber, isNumOrStr, mathSign, uniqueId } from './DataUtils';\nimport { filterProps, findAllByType, findChildByType, getDisplayName } from './ReactUtils';\n// TODO: Cause of circular dependency. Needs refactor.\n// import { RadiusAxisProps, AngleAxisProps } from '../polar/types';\nexport function getValueByDataKey(obj, dataKey, defaultValue) {\n if (_isNil(obj) || _isNil(dataKey)) {\n return defaultValue;\n }\n if (isNumOrStr(dataKey)) {\n return _get(obj, dataKey, defaultValue);\n }\n if (_isFunction(dataKey)) {\n return dataKey(obj);\n }\n return defaultValue;\n}\n/**\n * Get domain of data by key\n * @param {Array} data The data displayed in the chart\n * @param {String} key The unique key of a group of data\n * @param {String} type The type of axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain of data\n */\nexport function getDomainOfDataByKey(data, key, type, filterNil) {\n var flattenData = _flatMap(data, function (entry) {\n return getValueByDataKey(entry, key);\n });\n if (type === 'number') {\n var domain = flattenData.filter(function (entry) {\n return isNumber(entry) || parseFloat(entry);\n });\n return domain.length ? [_min(domain), _max(domain)] : [Infinity, -Infinity];\n }\n var validateData = filterNil ? flattenData.filter(function (entry) {\n return !_isNil(entry);\n }) : flattenData;\n\n // 支持Date类型的x轴\n return validateData.map(function (entry) {\n return isNumOrStr(entry) || entry instanceof Date ? entry : '';\n });\n}\nexport var calculateActiveTickIndex = function calculateActiveTickIndex(coordinate) {\n var _ticks$length;\n var ticks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var unsortedTicks = arguments.length > 2 ? arguments[2] : undefined;\n var axis = arguments.length > 3 ? arguments[3] : undefined;\n var index = -1;\n var len = (_ticks$length = ticks === null || ticks === void 0 ? void 0 : ticks.length) !== null && _ticks$length !== void 0 ? _ticks$length : 0;\n\n // if there are 1 or less ticks ticks then the active tick is at index 0\n if (len <= 1) {\n return 0;\n }\n if (axis && axis.axisType === 'angleAxis' && Math.abs(Math.abs(axis.range[1] - axis.range[0]) - 360) <= 1e-6) {\n var range = axis.range;\n // ticks are distributed in a circle\n for (var i = 0; i < len; i++) {\n var before = i > 0 ? unsortedTicks[i - 1].coordinate : unsortedTicks[len - 1].coordinate;\n var cur = unsortedTicks[i].coordinate;\n var after = i >= len - 1 ? unsortedTicks[0].coordinate : unsortedTicks[i + 1].coordinate;\n var sameDirectionCoord = void 0;\n if (mathSign(cur - before) !== mathSign(after - cur)) {\n var diffInterval = [];\n if (mathSign(after - cur) === mathSign(range[1] - range[0])) {\n sameDirectionCoord = after;\n var curInRange = cur + range[1] - range[0];\n diffInterval[0] = Math.min(curInRange, (curInRange + before) / 2);\n diffInterval[1] = Math.max(curInRange, (curInRange + before) / 2);\n } else {\n sameDirectionCoord = before;\n var afterInRange = after + range[1] - range[0];\n diffInterval[0] = Math.min(cur, (afterInRange + cur) / 2);\n diffInterval[1] = Math.max(cur, (afterInRange + cur) / 2);\n }\n var sameInterval = [Math.min(cur, (sameDirectionCoord + cur) / 2), Math.max(cur, (sameDirectionCoord + cur) / 2)];\n if (coordinate > sameInterval[0] && coordinate <= sameInterval[1] || coordinate >= diffInterval[0] && coordinate <= diffInterval[1]) {\n index = unsortedTicks[i].index;\n break;\n }\n } else {\n var min = Math.min(before, after);\n var max = Math.max(before, after);\n if (coordinate > (min + cur) / 2 && coordinate <= (max + cur) / 2) {\n index = unsortedTicks[i].index;\n break;\n }\n }\n }\n } else {\n // ticks are distributed in a single direction\n for (var _i = 0; _i < len; _i++) {\n if (_i === 0 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i > 0 && _i < len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2 && coordinate <= (ticks[_i].coordinate + ticks[_i + 1].coordinate) / 2 || _i === len - 1 && coordinate > (ticks[_i].coordinate + ticks[_i - 1].coordinate) / 2) {\n index = ticks[_i].index;\n break;\n }\n }\n }\n return index;\n};\n\n/**\n * Get the main color of each graphic item\n * @param {ReactElement} item A graphic item\n * @return {String} Color\n */\nexport var getMainColorOfGraphicItem = function getMainColorOfGraphicItem(item) {\n var _ref = item,\n displayName = _ref.type.displayName; // TODO: check if displayName is valid.\n var _item$props = item.props,\n stroke = _item$props.stroke,\n fill = _item$props.fill;\n var result;\n switch (displayName) {\n case 'Line':\n result = stroke;\n break;\n case 'Area':\n case 'Radar':\n result = stroke && stroke !== 'none' ? stroke : fill;\n break;\n default:\n result = fill;\n break;\n }\n return result;\n};\nexport var getLegendProps = function getLegendProps(_ref2) {\n var children = _ref2.children,\n formattedGraphicalItems = _ref2.formattedGraphicalItems,\n legendWidth = _ref2.legendWidth,\n legendContent = _ref2.legendContent;\n var legendItem = findChildByType(children, Legend);\n if (!legendItem) {\n return null;\n }\n var legendData;\n if (legendItem.props && legendItem.props.payload) {\n legendData = legendItem.props && legendItem.props.payload;\n } else if (legendContent === 'children') {\n legendData = (formattedGraphicalItems || []).reduce(function (result, _ref3) {\n var item = _ref3.item,\n props = _ref3.props;\n var data = props.sectors || props.data || [];\n return result.concat(data.map(function (entry) {\n return {\n type: legendItem.props.iconType || item.props.legendType,\n value: entry.name,\n color: entry.fill,\n payload: entry\n };\n }));\n }, []);\n } else {\n legendData = (formattedGraphicalItems || []).map(function (_ref4) {\n var item = _ref4.item;\n var _item$props2 = item.props,\n dataKey = _item$props2.dataKey,\n name = _item$props2.name,\n legendType = _item$props2.legendType,\n hide = _item$props2.hide;\n return {\n inactive: hide,\n dataKey: dataKey,\n type: legendItem.props.iconType || legendType || 'square',\n color: getMainColorOfGraphicItem(item),\n value: name || dataKey,\n payload: item.props\n };\n });\n }\n return _objectSpread(_objectSpread(_objectSpread({}, legendItem.props), Legend.getWithHeight(legendItem, legendWidth)), {}, {\n payload: legendData,\n item: legendItem\n });\n};\n/**\n * Calculate the size of all groups for stacked bar graph\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @return {Object} The size of all groups\n */\nexport var getBarSizeList = function getBarSizeList(_ref5) {\n var globalSize = _ref5.barSize,\n _ref5$stackGroups = _ref5.stackGroups,\n stackGroups = _ref5$stackGroups === void 0 ? {} : _ref5$stackGroups;\n if (!stackGroups) {\n return {};\n }\n var result = {};\n var numericAxisIds = Object.keys(stackGroups);\n for (var i = 0, len = numericAxisIds.length; i < len; i++) {\n var sgs = stackGroups[numericAxisIds[i]].stackGroups;\n var stackIds = Object.keys(sgs);\n for (var j = 0, sLen = stackIds.length; j < sLen; j++) {\n var _sgs$stackIds$j = sgs[stackIds[j]],\n items = _sgs$stackIds$j.items,\n cateAxisId = _sgs$stackIds$j.cateAxisId;\n var barItems = items.filter(function (item) {\n return getDisplayName(item.type).indexOf('Bar') >= 0;\n });\n if (barItems && barItems.length) {\n var selfSize = barItems[0].props.barSize;\n var cateId = barItems[0].props[cateAxisId];\n if (!result[cateId]) {\n result[cateId] = [];\n }\n result[cateId].push({\n item: barItems[0],\n stackList: barItems.slice(1),\n barSize: _isNil(selfSize) ? globalSize : selfSize\n });\n }\n }\n }\n return result;\n};\n\n/**\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 var getBarPosition = function getBarPosition(_ref6) {\n var barGap = _ref6.barGap,\n barCategoryGap = _ref6.barCategoryGap,\n bandSize = _ref6.bandSize,\n _ref6$sizeList = _ref6.sizeList,\n sizeList = _ref6$sizeList === void 0 ? [] : _ref6$sizeList,\n maxBarSize = _ref6.maxBarSize;\n var len = sizeList.length;\n if (len < 1) return null;\n var realBarGap = getPercentValue(barGap, bandSize, 0, true);\n var result;\n\n // whether or not is barSize setted by user\n if (sizeList[0].barSize === +sizeList[0].barSize) {\n var useFull = false;\n var fullBarSize = bandSize / len;\n var sum = sizeList.reduce(function (res, entry) {\n return res + entry.barSize || 0;\n }, 0);\n sum += (len - 1) * realBarGap;\n if (sum >= bandSize) {\n sum -= (len - 1) * realBarGap;\n realBarGap = 0;\n }\n if (sum >= bandSize && fullBarSize > 0) {\n useFull = true;\n fullBarSize *= 0.9;\n sum = len * fullBarSize;\n }\n var offset = (bandSize - sum) / 2 >> 0;\n var prev = {\n offset: offset - realBarGap,\n size: 0\n };\n result = sizeList.reduce(function (res, entry) {\n var newRes = [].concat(_toConsumableArray(res), [{\n item: entry.item,\n position: {\n offset: prev.offset + prev.size + realBarGap,\n size: useFull ? fullBarSize : entry.barSize\n }\n }]);\n prev = newRes[newRes.length - 1].position;\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: prev\n });\n });\n }\n return newRes;\n }, []);\n } else {\n var _offset = getPercentValue(barCategoryGap, bandSize, 0, true);\n if (bandSize - 2 * _offset - (len - 1) * realBarGap <= 0) {\n realBarGap = 0;\n }\n var originalSize = (bandSize - 2 * _offset - (len - 1) * realBarGap) / len;\n if (originalSize > 1) {\n originalSize >>= 0;\n }\n var size = maxBarSize === +maxBarSize ? Math.min(originalSize, maxBarSize) : originalSize;\n result = sizeList.reduce(function (res, entry, i) {\n var newRes = [].concat(_toConsumableArray(res), [{\n item: entry.item,\n position: {\n offset: _offset + (originalSize + realBarGap) * i + (originalSize - size) / 2,\n size: size\n }\n }]);\n if (entry.stackList && entry.stackList.length) {\n entry.stackList.forEach(function (item) {\n newRes.push({\n item: item,\n position: newRes[newRes.length - 1].position\n });\n });\n }\n return newRes;\n }, []);\n }\n return result;\n};\nexport var appendOffsetOfLegend = function appendOffsetOfLegend(offset, items, props, legendBox) {\n var children = props.children,\n width = props.width,\n margin = props.margin;\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n // const legendHeight = height - (margin.top || 0) - (margin.bottom || 0);\n var legendProps = getLegendProps({\n children: children,\n legendWidth: legendWidth\n });\n var newOffset = offset;\n if (legendProps) {\n var box = legendBox || {};\n var align = legendProps.align,\n verticalAlign = legendProps.verticalAlign,\n layout = legendProps.layout;\n if ((layout === 'vertical' || layout === 'horizontal' && verticalAlign === 'middle') && isNumber(offset[align])) {\n newOffset = _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, align, newOffset[align] + (box.width || 0)));\n }\n if ((layout === 'horizontal' || layout === 'vertical' && align === 'center') && isNumber(offset[verticalAlign])) {\n newOffset = _objectSpread(_objectSpread({}, offset), {}, _defineProperty({}, verticalAlign, newOffset[verticalAlign] + (box.height || 0)));\n }\n }\n return newOffset;\n};\nvar isErrorBarRelevantForAxis = function isErrorBarRelevantForAxis(layout, axisType, direction) {\n if (_isNil(axisType)) {\n return true;\n }\n if (layout === 'horizontal') {\n return axisType === 'yAxis';\n }\n if (layout === 'vertical') {\n return axisType === 'xAxis';\n }\n if (direction === 'x') {\n return axisType === 'xAxis';\n }\n if (direction === 'y') {\n return axisType === 'yAxis';\n }\n return true;\n};\nexport var getDomainOfErrorBars = function getDomainOfErrorBars(data, item, dataKey, layout, axisType) {\n var children = item.props.children;\n var errorBars = findAllByType(children, ErrorBar).filter(function (errorBarChild) {\n return isErrorBarRelevantForAxis(layout, axisType, errorBarChild.props.direction);\n });\n if (errorBars && errorBars.length) {\n var keys = errorBars.map(function (errorBarChild) {\n return errorBarChild.props.dataKey;\n });\n return data.reduce(function (result, entry) {\n var entryValue = getValueByDataKey(entry, dataKey, 0);\n var mainValue = _isArray(entryValue) ? [_min(entryValue), _max(entryValue)] : [entryValue, entryValue];\n var errorDomain = keys.reduce(function (prevErrorArr, k) {\n var errorValue = getValueByDataKey(entry, k, 0);\n var lowerValue = mainValue[0] - Math.abs(_isArray(errorValue) ? errorValue[0] : errorValue);\n var upperValue = mainValue[1] + Math.abs(_isArray(errorValue) ? errorValue[1] : errorValue);\n return [Math.min(lowerValue, prevErrorArr[0]), Math.max(upperValue, prevErrorArr[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(errorDomain[0], result[0]), Math.max(errorDomain[1], result[1])];\n }, [Infinity, -Infinity]);\n }\n return null;\n};\nexport var parseErrorBarsOfAxis = function parseErrorBarsOfAxis(data, items, dataKey, axisType, layout) {\n var domains = items.map(function (item) {\n return getDomainOfErrorBars(data, item, dataKey, layout, axisType);\n }).filter(function (entry) {\n return !_isNil(entry);\n });\n if (domains && domains.length) {\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n return null;\n};\n\n/**\n * Get domain of data by the configuration of item element\n * @param {Array} data The data displayed in the chart\n * @param {Array} items The instances of item\n * @param {String} type The type of axis, number - Number Axis, category - Category Axis\n * @param {LayoutType} layout The type of layout\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain\n */\nexport var getDomainOfItemsWithSameAxis = function getDomainOfItemsWithSameAxis(data, items, type, layout, filterNil) {\n var domains = items.map(function (item) {\n var dataKey = item.props.dataKey;\n if (type === 'number' && dataKey) {\n return getDomainOfErrorBars(data, item, dataKey, layout) || getDomainOfDataByKey(data, dataKey, type, filterNil);\n }\n return getDomainOfDataByKey(data, dataKey, type, filterNil);\n });\n if (type === 'number') {\n // Calculate the domain of number axis\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n var tag = {};\n // Get the union set of category axis\n return domains.reduce(function (result, entry) {\n for (var i = 0, len = entry.length; i < len; i++) {\n if (!tag[entry[i]]) {\n tag[entry[i]] = true;\n result.push(entry[i]);\n }\n }\n return result;\n }, []);\n};\nexport var isCategoricalAxis = function isCategoricalAxis(layout, axisType) {\n return layout === 'horizontal' && axisType === 'xAxis' || layout === 'vertical' && axisType === 'yAxis' || layout === 'centric' && axisType === 'angleAxis' || layout === 'radial' && axisType === 'radiusAxis';\n};\n\n/**\n * Calculate the Coordinates of grid\n * @param {Array} ticks The ticks in axis\n * @param {Number} min The minimun value of axis\n * @param {Number} max The maximun value of axis\n * @return {Array} Coordinates\n */\nexport var getCoordinatesOfGrid = function getCoordinatesOfGrid(ticks, min, max) {\n var hasMin, hasMax;\n var values = ticks.map(function (entry) {\n if (entry.coordinate === min) {\n hasMin = true;\n }\n if (entry.coordinate === max) {\n hasMax = true;\n }\n return entry.coordinate;\n });\n if (!hasMin) {\n values.push(min);\n }\n if (!hasMax) {\n 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 var getTicksOfAxis = function getTicksOfAxis(axis, isGrid, isAll) {\n if (!axis) return null;\n var scale = axis.scale;\n var duplicateDomain = axis.duplicateDomain,\n type = axis.type,\n range = axis.range;\n var offsetForBand = axis.realScaleType === 'scaleBand' ? scale.bandwidth() / 2 : 2;\n var offset = (isGrid || isAll) && type === 'category' && scale.bandwidth ? scale.bandwidth() / offsetForBand : 0;\n offset = axis.axisType === 'angleAxis' && (range === null || range === void 0 ? void 0 : range.length) >= 2 ? mathSign(range[0] - range[1]) * 2 * offset : offset;\n\n // The ticks set by user should only affect the ticks adjacent to axis line\n if (isGrid && (axis.ticks || axis.niceTicks)) {\n var result = (axis.ticks || axis.niceTicks).map(function (entry) {\n var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;\n return {\n // If the scaleContent is not a number, the coordinate will be NaN.\n // That could be the case for example with a PointScale and a string as domain.\n coordinate: scale(scaleContent) + offset,\n value: entry,\n offset: offset\n };\n });\n return result.filter(function (row) {\n return !_isNaN(row.coordinate);\n });\n }\n\n // When axis is a categorial axis, but the type of axis is number or the scale of axis is not \"auto\"\n if (axis.isCategorical && axis.categoricalDomain) {\n return axis.categoricalDomain.map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n index: index,\n offset: offset\n };\n });\n }\n if (scale.ticks && !isAll) {\n return scale.ticks(axis.tickCount).map(function (entry) {\n return {\n coordinate: scale(entry) + offset,\n value: entry,\n offset: offset\n };\n });\n }\n\n // When axis has duplicated text, serial numbers are used to generate scale\n return scale.domain().map(function (entry, index) {\n return {\n coordinate: scale(entry) + offset,\n value: duplicateDomain ? duplicateDomain[entry] : entry,\n index: index,\n offset: offset\n };\n });\n};\n\n/**\n * combine the handlers\n * @param {Function} defaultHandler Internal private handler\n * @param {Function} 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 var combineEventHandlers = function combineEventHandlers(defaultHandler, parentHandler, childHandler) {\n var customizedHandler;\n if (_isFunction(childHandler)) {\n customizedHandler = childHandler;\n } else if (_isFunction(parentHandler)) {\n customizedHandler = parentHandler;\n }\n if (_isFunction(defaultHandler) || customizedHandler) {\n return function (arg1, arg2, arg3, arg4) {\n if (_isFunction(defaultHandler)) {\n defaultHandler(arg1, arg2, arg3, arg4);\n }\n if (_isFunction(customizedHandler)) {\n customizedHandler(arg1, arg2, arg3, arg4);\n }\n };\n }\n return null;\n};\n/**\n * Parse the scale function of axis\n * @param {Object} axis The option of axis\n * @param {String} chartType The displayName of chart\n * @param {Boolean} hasBar if it has a bar\n * @return {Function} The scale function\n */\nexport var parseScale = function parseScale(axis, chartType, hasBar) {\n var scale = axis.scale,\n type = axis.type,\n layout = axis.layout,\n axisType = axis.axisType;\n if (scale === 'auto') {\n if (layout === 'radial' && axisType === 'radiusAxis') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n if (layout === 'radial' && axisType === 'angleAxis') {\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n if (type === 'category' && chartType && (chartType.indexOf('LineChart') >= 0 || chartType.indexOf('AreaChart') >= 0 || chartType.indexOf('ComposedChart') >= 0 && !hasBar)) {\n return {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n }\n if (type === 'category') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n if (_isString(scale)) {\n var name = \"scale\".concat(_upperFirst(scale));\n return {\n scale: (d3Scales[name] || d3Scales.scalePoint)(),\n realScaleType: d3Scales[name] ? name : 'point'\n };\n }\n return _isFunction(scale) ? {\n scale: scale\n } : {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n};\nvar EPS = 1e-4;\nexport var checkDomainOfScale = function checkDomainOfScale(scale) {\n var domain = scale.domain();\n if (!domain || domain.length <= 2) {\n return;\n }\n var len = domain.length;\n var range = scale.range();\n var min = Math.min(range[0], range[1]) - EPS;\n var max = Math.max(range[0], range[1]) + EPS;\n var first = scale(domain[0]);\n var last = scale(domain[len - 1]);\n if (first < min || first > max || last < min || last > max) {\n scale.domain([domain[0], domain[len - 1]]);\n }\n};\nexport var findPositionOfBar = function findPositionOfBar(barPosition, child) {\n if (!barPosition) {\n return null;\n }\n for (var i = 0, len = barPosition.length; i < len; i++) {\n if (barPosition[i].item === child) {\n return barPosition[i].position;\n }\n }\n return null;\n};\nexport var truncateByDomain = function truncateByDomain(value, domain) {\n if (!domain || domain.length !== 2 || !isNumber(domain[0]) || !isNumber(domain[1])) {\n return value;\n }\n var min = Math.min(domain[0], domain[1]);\n var max = Math.max(domain[0], domain[1]);\n var result = [value[0], value[1]];\n if (!isNumber(value[0]) || value[0] < min) {\n result[0] = min;\n }\n if (!isNumber(value[1]) || value[1] > max) {\n result[1] = max;\n }\n if (result[0] > max) {\n result[0] = max;\n }\n if (result[1] < min) {\n result[1] = min;\n }\n return result;\n};\n\n/* eslint no-param-reassign: 0 */\nexport var offsetSign = function offsetSign(series) {\n var n = series.length;\n if (n <= 0) {\n return;\n }\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n var negative = 0;\n for (var i = 0; i < n; ++i) {\n var value = _isNaN(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n\n /* eslint-disable prefer-destructuring */\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\nexport var offsetPositive = function offsetPositive(series) {\n var n = series.length;\n if (n <= 0) {\n return;\n }\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n for (var i = 0; i < n; ++i) {\n var value = _isNaN(series[i][j][1]) ? series[i][j][0] : series[i][j][1];\n\n /* eslint-disable prefer-destructuring */\n if (value >= 0) {\n series[i][j][0] = positive;\n series[i][j][1] = positive + value;\n positive = series[i][j][1];\n } else {\n series[i][j][0] = 0;\n series[i][j][1] = 0;\n }\n /* eslint-enable prefer-destructuring */\n }\n }\n};\n\nvar STACK_OFFSET_MAP = {\n sign: offsetSign,\n expand: stackOffsetExpand,\n none: stackOffsetNone,\n silhouette: stackOffsetSilhouette,\n wiggle: stackOffsetWiggle,\n positive: offsetPositive\n};\nexport var getStackedData = function getStackedData(data, stackItems, offsetType) {\n var dataKeys = stackItems.map(function (item) {\n return item.props.dataKey;\n });\n var stack = shapeStack().keys(dataKeys).value(function (d, key) {\n return +getValueByDataKey(d, key, 0);\n }).order(stackOrderNone).offset(STACK_OFFSET_MAP[offsetType]);\n return stack(data);\n};\nexport var getStackGroupsByAxisId = function getStackGroupsByAxisId(data, _items, numericAxisId, cateAxisId, offsetType, reverseStackOrder) {\n if (!data) {\n return null;\n }\n\n // reversing items to affect render order (for layering)\n var items = reverseStackOrder ? _items.reverse() : _items;\n var stackGroups = items.reduce(function (result, item) {\n var _item$props3 = item.props,\n stackId = _item$props3.stackId,\n hide = _item$props3.hide;\n if (hide) {\n return result;\n }\n var axisId = item.props[numericAxisId];\n var parentGroup = result[axisId] || {\n hasStack: false,\n stackGroups: {}\n };\n if (isNumOrStr(stackId)) {\n var childGroup = parentGroup.stackGroups[stackId] || {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: []\n };\n childGroup.items.push(item);\n parentGroup.hasStack = true;\n parentGroup.stackGroups[stackId] = childGroup;\n } else {\n parentGroup.stackGroups[uniqueId('_stackId_')] = {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: [item]\n };\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, parentGroup));\n }, {});\n return Object.keys(stackGroups).reduce(function (result, axisId) {\n var group = stackGroups[axisId];\n if (group.hasStack) {\n group.stackGroups = Object.keys(group.stackGroups).reduce(function (res, stackId) {\n var g = group.stackGroups[stackId];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, stackId, {\n numericAxisId: numericAxisId,\n cateAxisId: cateAxisId,\n items: g.items,\n stackedData: getStackedData(data, g.items, offsetType)\n }));\n }, {});\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, group));\n }, {});\n};\n\n/**\n * Configure the scale function of axis\n * @param {Object} scale The scale function\n * @param {Object} opts The configuration of axis\n * @return {Object} null\n */\nexport var getTicksOfScale = function getTicksOfScale(scale, opts) {\n var realScaleType = opts.realScaleType,\n type = opts.type,\n tickCount = opts.tickCount,\n originalDomain = opts.originalDomain,\n allowDecimals = opts.allowDecimals;\n var scaleType = realScaleType || opts.scale;\n if (scaleType !== 'auto' && scaleType !== 'linear') {\n return null;\n }\n if (tickCount && type === 'number' && originalDomain && (originalDomain[0] === 'auto' || originalDomain[1] === 'auto')) {\n // Calculate the ticks by the number of grid when the axis is a number axis\n var domain = scale.domain();\n if (!domain.length) {\n return null;\n }\n var tickValues = getNiceTickValues(domain, tickCount, allowDecimals);\n scale.domain([_min(tickValues), _max(tickValues)]);\n return {\n niceTicks: tickValues\n };\n }\n if (tickCount && type === 'number') {\n var _domain = scale.domain();\n var _tickValues = getTickValuesFixedDomain(_domain, tickCount, allowDecimals);\n return {\n niceTicks: _tickValues\n };\n }\n return null;\n};\nexport var getCateCoordinateOfLine = function getCateCoordinateOfLine(_ref7) {\n var axis = _ref7.axis,\n ticks = _ref7.ticks,\n bandSize = _ref7.bandSize,\n entry = _ref7.entry,\n index = _ref7.index,\n dataKey = _ref7.dataKey;\n if (axis.type === 'category') {\n // find coordinate of category axis by the value of category\n if (!axis.allowDuplicatedCategory && axis.dataKey && !_isNil(entry[axis.dataKey])) {\n var matchedTick = findEntryInArray(ticks, 'value', entry[axis.dataKey]);\n if (matchedTick) {\n return matchedTick.coordinate + bandSize / 2;\n }\n }\n return ticks[index] ? ticks[index].coordinate + bandSize / 2 : null;\n }\n var value = getValueByDataKey(entry, !_isNil(dataKey) ? dataKey : axis.dataKey);\n return !_isNil(value) ? axis.scale(value) : null;\n};\nexport var getCateCoordinateOfBar = function getCateCoordinateOfBar(_ref8) {\n var axis = _ref8.axis,\n ticks = _ref8.ticks,\n offset = _ref8.offset,\n bandSize = _ref8.bandSize,\n entry = _ref8.entry,\n index = _ref8.index;\n if (axis.type === 'category') {\n return ticks[index] ? ticks[index].coordinate + offset : null;\n }\n var value = getValueByDataKey(entry, axis.dataKey, axis.domain[index]);\n return !_isNil(value) ? axis.scale(value) - bandSize / 2 + offset : null;\n};\nexport var getBaseValueOfBar = function getBaseValueOfBar(_ref9) {\n var numericAxis = _ref9.numericAxis;\n var domain = numericAxis.scale.domain();\n if (numericAxis.type === 'number') {\n var min = Math.min(domain[0], domain[1]);\n var max = Math.max(domain[0], domain[1]);\n if (min <= 0 && max >= 0) {\n return 0;\n }\n if (max < 0) {\n return max;\n }\n return min;\n }\n return domain[0];\n};\nexport var getStackedDataOfItem = function getStackedDataOfItem(item, stackGroups) {\n var stackId = item.props.stackId;\n if (isNumOrStr(stackId)) {\n var group = stackGroups[stackId];\n if (group && group.items.length) {\n var itemIndex = -1;\n for (var i = 0, len = group.items.length; i < len; i++) {\n if (group.items[i] === item) {\n itemIndex = i;\n break;\n }\n }\n return itemIndex >= 0 ? group.stackedData[itemIndex] : null;\n }\n }\n return null;\n};\nvar getDomainOfSingle = function getDomainOfSingle(data) {\n return data.reduce(function (result, entry) {\n return [_min(entry.concat([result[0]]).filter(isNumber)), _max(entry.concat([result[1]]).filter(isNumber))];\n }, [Infinity, -Infinity]);\n};\nexport var getDomainOfStackGroups = function getDomainOfStackGroups(stackGroups, startIndex, endIndex) {\n return Object.keys(stackGroups).reduce(function (result, stackId) {\n var group = stackGroups[stackId];\n var stackedData = group.stackedData;\n var domain = stackedData.reduce(function (res, entry) {\n var s = getDomainOfSingle(entry.slice(startIndex, endIndex + 1));\n return [Math.min(res[0], s[0]), Math.max(res[1], s[1])];\n }, [Infinity, -Infinity]);\n return [Math.min(domain[0], result[0]), Math.max(domain[1], result[1])];\n }, [Infinity, -Infinity]).map(function (result) {\n return result === Infinity || result === -Infinity ? 0 : result;\n });\n};\nexport var MIN_VALUE_REG = /^dataMin[\\s]*-[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var MAX_VALUE_REG = /^dataMax[\\s]*\\+[\\s]*([0-9]+([.]{1}[0-9]+){0,1})$/;\nexport var parseSpecifiedDomain = function parseSpecifiedDomain(specifiedDomain, dataDomain, allowDataOverflow) {\n if (_isFunction(specifiedDomain)) {\n return specifiedDomain(dataDomain, allowDataOverflow);\n }\n if (!_isArray(specifiedDomain)) {\n return dataDomain;\n }\n var domain = [];\n\n /* eslint-disable prefer-destructuring */\n if (isNumber(specifiedDomain[0])) {\n domain[0] = allowDataOverflow ? specifiedDomain[0] : Math.min(specifiedDomain[0], dataDomain[0]);\n } else if (MIN_VALUE_REG.test(specifiedDomain[0])) {\n var value = +MIN_VALUE_REG.exec(specifiedDomain[0])[1];\n domain[0] = dataDomain[0] - value;\n } else if (_isFunction(specifiedDomain[0])) {\n domain[0] = specifiedDomain[0](dataDomain[0]);\n } else {\n domain[0] = dataDomain[0];\n }\n if (isNumber(specifiedDomain[1])) {\n domain[1] = allowDataOverflow ? specifiedDomain[1] : Math.max(specifiedDomain[1], dataDomain[1]);\n } else if (MAX_VALUE_REG.test(specifiedDomain[1])) {\n var _value = +MAX_VALUE_REG.exec(specifiedDomain[1])[1];\n domain[1] = dataDomain[1] + _value;\n } else if (_isFunction(specifiedDomain[1])) {\n domain[1] = specifiedDomain[1](dataDomain[1]);\n } else {\n domain[1] = dataDomain[1];\n }\n /* eslint-enable prefer-destructuring */\n\n return domain;\n};\n\n/**\n * Calculate the size between two category\n * @param {Object} axis The options of axis\n * @param {Array} ticks The ticks of axis\n * @param {Boolean} isBar if items in axis are bars\n * @return {Number} Size\n */\nexport var getBandSizeOfAxis = function getBandSizeOfAxis(axis, ticks, isBar) {\n if (axis && axis.scale && axis.scale.bandwidth) {\n var bandWidth = axis.scale.bandwidth();\n if (!isBar || bandWidth > 0) {\n return bandWidth;\n }\n }\n if (axis && ticks && ticks.length >= 2) {\n var orderedTicks = _sortBy(ticks, function (o) {\n return o.coordinate;\n });\n var bandSize = Infinity;\n for (var i = 1, len = orderedTicks.length; i < len; i++) {\n var cur = orderedTicks[i];\n var prev = orderedTicks[i - 1];\n bandSize = Math.min((cur.coordinate || 0) - (prev.coordinate || 0), bandSize);\n }\n return bandSize === Infinity ? 0 : bandSize;\n }\n return isBar ? undefined : 0;\n};\n/**\n * parse the domain of a category axis when a domain is specified\n * @param {Array} specifiedDomain The domain specified by users\n * @param {Array} calculatedDomain The domain calculated by dateKey\n * @param {ReactElement} axisChild The axis element\n * @returns {Array} domains\n */\nexport var parseDomainOfCategoryAxis = function parseDomainOfCategoryAxis(specifiedDomain, calculatedDomain, axisChild) {\n if (!specifiedDomain || !specifiedDomain.length) {\n return calculatedDomain;\n }\n if (_isEqual(specifiedDomain, _get(axisChild, 'type.defaultProps.domain'))) {\n return calculatedDomain;\n }\n return specifiedDomain;\n};\nexport var getTooltipItem = function getTooltipItem(graphicalItem, payload) {\n var _graphicalItem$props = graphicalItem.props,\n dataKey = _graphicalItem$props.dataKey,\n name = _graphicalItem$props.name,\n unit = _graphicalItem$props.unit,\n formatter = _graphicalItem$props.formatter,\n tooltipType = _graphicalItem$props.tooltipType,\n chartType = _graphicalItem$props.chartType;\n return _objectSpread(_objectSpread({}, filterProps(graphicalItem)), {}, {\n dataKey: dataKey,\n unit: unit,\n formatter: formatter,\n name: name || dataKey,\n color: getMainColorOfGraphicItem(graphicalItem),\n value: getValueByDataKey(payload, dataKey),\n type: tooltipType,\n payload: payload,\n chartType: chartType\n });\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport _isNil from \"lodash/isNil\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nimport { getPercentValue } from './DataUtils';\nimport { parseScale, checkDomainOfScale, getTicksOfScale } from './ChartUtils';\nexport var RADIAN = Math.PI / 180;\nexport var degreeToRadian = function degreeToRadian(angle) {\n return angle * Math.PI / 180;\n};\nexport var radianToDegree = function radianToDegree(angleInRadian) {\n return angleInRadian * 180 / Math.PI;\n};\nexport var polarToCartesian = function polarToCartesian(cx, cy, radius, angle) {\n return {\n x: cx + Math.cos(-RADIAN * angle) * radius,\n y: cy + Math.sin(-RADIAN * angle) * radius\n };\n};\nexport var getMaxRadius = function getMaxRadius(width, height) {\n var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n return Math.min(Math.abs(width - (offset.left || 0) - (offset.right || 0)), Math.abs(height - (offset.top || 0) - (offset.bottom || 0))) / 2;\n};\n\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {Object} axisType The type of axes, radius-axis or angle-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height;\n var startAngle = props.startAngle,\n endAngle = props.endAngle;\n var cx = getPercentValue(props.cx, width, width / 2);\n var cy = getPercentValue(props.cy, height, height / 2);\n var maxRadius = getMaxRadius(width, height, offset);\n var innerRadius = getPercentValue(props.innerRadius, maxRadius, 0);\n var outerRadius = getPercentValue(props.outerRadius, maxRadius, maxRadius * 0.8);\n var ids = Object.keys(axisMap);\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var domain = axis.domain,\n reversed = axis.reversed;\n var range;\n if (_isNil(axis.range)) {\n if (axisType === 'angleAxis') {\n range = [startAngle, endAngle];\n } else if (axisType === 'radiusAxis') {\n range = [innerRadius, outerRadius];\n }\n if (reversed) {\n range = [range[1], range[0]];\n }\n } else {\n range = axis.range;\n var _range = range;\n var _range2 = _slicedToArray(_range, 2);\n startAngle = _range2[0];\n endAngle = _range2[1];\n }\n var _parseScale = parseScale(axis, chartName),\n realScaleType = _parseScale.realScaleType,\n scale = _parseScale.scale;\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n range: range,\n radius: outerRadius,\n realScaleType: realScaleType,\n scale: scale,\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var distanceBetweenPoints = function distanceBetweenPoints(point, anotherPoint) {\n var x1 = point.x,\n y1 = point.y;\n var x2 = anotherPoint.x,\n y2 = anotherPoint.y;\n return Math.sqrt(Math.pow(x1 - x2, 2) + Math.pow(y1 - y2, 2));\n};\nexport var getAngleOfPoint = function getAngleOfPoint(_ref, _ref2) {\n var x = _ref.x,\n y = _ref.y;\n var cx = _ref2.cx,\n cy = _ref2.cy;\n var radius = distanceBetweenPoints({\n x: x,\n y: y\n }, {\n x: cx,\n y: cy\n });\n if (radius <= 0) {\n return {\n radius: radius\n };\n }\n var cos = (x - cx) / radius;\n var angleInRadian = Math.acos(cos);\n if (y > cy) {\n angleInRadian = 2 * Math.PI - angleInRadian;\n }\n return {\n radius: radius,\n angle: radianToDegree(angleInRadian),\n angleInRadian: angleInRadian\n };\n};\nexport var formatAngleOfSector = function formatAngleOfSector(_ref3) {\n var startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return {\n startAngle: startAngle - min * 360,\n endAngle: endAngle - min * 360\n };\n};\nvar reverseFormatAngleOfSetor = function reverseFormatAngleOfSetor(angle, _ref4) {\n var startAngle = _ref4.startAngle,\n endAngle = _ref4.endAngle;\n var startCnt = Math.floor(startAngle / 360);\n var endCnt = Math.floor(endAngle / 360);\n var min = Math.min(startCnt, endCnt);\n return angle + min * 360;\n};\nexport var inRangeOfSector = function inRangeOfSector(_ref5, sector) {\n var x = _ref5.x,\n y = _ref5.y;\n var _getAngleOfPoint = getAngleOfPoint({\n x: x,\n y: y\n }, sector),\n radius = _getAngleOfPoint.radius,\n angle = _getAngleOfPoint.angle;\n var innerRadius = sector.innerRadius,\n outerRadius = sector.outerRadius;\n if (radius < innerRadius || radius > outerRadius) {\n return false;\n }\n if (radius === 0) {\n return true;\n }\n var _formatAngleOfSector = formatAngleOfSector(sector),\n startAngle = _formatAngleOfSector.startAngle,\n endAngle = _formatAngleOfSector.endAngle;\n var formatAngle = angle;\n var inRange;\n if (startAngle <= endAngle) {\n while (formatAngle > endAngle) {\n formatAngle -= 360;\n }\n while (formatAngle < startAngle) {\n formatAngle += 360;\n }\n inRange = formatAngle >= startAngle && formatAngle <= endAngle;\n } else {\n while (formatAngle > startAngle) {\n formatAngle -= 360;\n }\n while (formatAngle < endAngle) {\n formatAngle += 360;\n }\n inRange = formatAngle >= endAngle && formatAngle <= startAngle;\n }\n if (inRange) {\n return _objectSpread(_objectSpread({}, sector), {}, {\n radius: radius,\n angle: reverseFormatAngleOfSetor(formatAngle, sector)\n });\n }\n return null;\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport React, { cloneElement, isValidElement, createElement } from 'react';\nimport classNames from 'classnames';\nimport { Text } from './Text';\nimport { findAllByType, filterProps } from '../util/ReactUtils';\nimport { isNumOrStr, isNumber, isPercent, getPercentValue, uniqueId, mathSign } from '../util/DataUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nvar getLabel = function getLabel(props) {\n var value = props.value,\n formatter = props.formatter;\n var label = _isNil(props.children) ? value : props.children;\n if (_isFunction(formatter)) {\n return formatter(label);\n }\n return label;\n};\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n};\nvar renderRadialLabel = function renderRadialLabel(labelProps, label, attrs) {\n var position = labelProps.position,\n viewBox = labelProps.viewBox,\n offset = labelProps.offset,\n className = labelProps.className;\n var _ref = viewBox,\n cx = _ref.cx,\n cy = _ref.cy,\n innerRadius = _ref.innerRadius,\n outerRadius = _ref.outerRadius,\n startAngle = _ref.startAngle,\n endAngle = _ref.endAngle,\n clockWise = _ref.clockWise;\n var radius = (innerRadius + outerRadius) / 2;\n var deltaAngle = getDeltaAngle(startAngle, endAngle);\n var sign = deltaAngle >= 0 ? 1 : -1;\n var labelAngle, direction;\n if (position === 'insideStart') {\n labelAngle = startAngle + sign * offset;\n direction = clockWise;\n } else if (position === 'insideEnd') {\n labelAngle = endAngle - sign * offset;\n direction = !clockWise;\n } else if (position === 'end') {\n labelAngle = endAngle + sign * offset;\n direction = clockWise;\n }\n direction = deltaAngle <= 0 ? direction : !direction;\n var startPoint = polarToCartesian(cx, cy, radius, labelAngle);\n var endPoint = polarToCartesian(cx, cy, radius, labelAngle + (direction ? 1 : -1) * 359);\n var path = \"M\".concat(startPoint.x, \",\").concat(startPoint.y, \"\\n A\").concat(radius, \",\").concat(radius, \",0,1,\").concat(direction ? 0 : 1, \",\\n \").concat(endPoint.x, \",\").concat(endPoint.y);\n var id = _isNil(labelProps.id) ? uniqueId('recharts-radial-line-') : labelProps.id;\n return /*#__PURE__*/React.createElement(\"text\", _extends({}, attrs, {\n dominantBaseline: \"central\",\n className: classNames('recharts-radial-bar-label', className)\n }), /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n id: id,\n d: path\n })), /*#__PURE__*/React.createElement(\"textPath\", {\n xlinkHref: \"#\".concat(id)\n }, label));\n};\nvar getAttrsOfPolarLabel = function getAttrsOfPolarLabel(props) {\n var viewBox = props.viewBox,\n offset = props.offset,\n position = props.position;\n var _ref2 = viewBox,\n cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var midAngle = (startAngle + endAngle) / 2;\n if (position === 'outside') {\n var _polarToCartesian = polarToCartesian(cx, cy, outerRadius + offset, midAngle),\n _x = _polarToCartesian.x,\n _y = _polarToCartesian.y;\n return {\n x: _x,\n y: _y,\n textAnchor: _x >= cx ? 'start' : 'end',\n verticalAnchor: 'middle'\n };\n }\n if (position === 'center') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n }\n if (position === 'centerTop') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n if (position === 'centerBottom') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'end'\n };\n }\n var r = (innerRadius + outerRadius) / 2;\n var _polarToCartesian2 = polarToCartesian(cx, cy, r, midAngle),\n x = _polarToCartesian2.x,\n y = _polarToCartesian2.y;\n return {\n x: x,\n y: y,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n};\nvar getAttrsOfCartesianLabel = function getAttrsOfCartesianLabel(props) {\n var viewBox = props.viewBox,\n parentViewBox = props.parentViewBox,\n offset = props.offset,\n position = props.position;\n var _ref3 = viewBox,\n x = _ref3.x,\n y = _ref3.y,\n width = _ref3.width,\n height = _ref3.height;\n\n // Define vertical offsets and position inverts based on the value being positive or negative\n var verticalSign = height >= 0 ? 1 : -1;\n var verticalOffset = verticalSign * offset;\n var verticalEnd = verticalSign > 0 ? 'end' : 'start';\n var verticalStart = verticalSign > 0 ? 'start' : 'end';\n\n // Define horizontal offsets and position inverts based on the value being positive or negative\n var horizontalSign = width >= 0 ? 1 : -1;\n var horizontalOffset = horizontalSign * offset;\n var horizontalEnd = horizontalSign > 0 ? 'end' : 'start';\n var horizontalStart = horizontalSign > 0 ? 'start' : 'end';\n if (position === 'top') {\n var attrs = {\n x: x + width / 2,\n y: y - verticalSign * offset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n };\n return _objectSpread(_objectSpread({}, attrs), parentViewBox ? {\n height: Math.max(y - parentViewBox.y, 0),\n width: width\n } : {});\n }\n if (position === 'bottom') {\n var _attrs = {\n x: x + width / 2,\n y: y + height + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n };\n return _objectSpread(_objectSpread({}, _attrs), parentViewBox ? {\n height: Math.max(parentViewBox.y + parentViewBox.height - (y + height), 0),\n width: width\n } : {});\n }\n if (position === 'left') {\n var _attrs2 = {\n x: x - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs2), parentViewBox ? {\n width: Math.max(_attrs2.x - parentViewBox.x, 0),\n height: height\n } : {});\n }\n if (position === 'right') {\n var _attrs3 = {\n x: x + width + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n };\n return _objectSpread(_objectSpread({}, _attrs3), parentViewBox ? {\n width: Math.max(parentViewBox.x + parentViewBox.width - _attrs3.x, 0),\n height: height\n } : {});\n }\n var sizeAttrs = parentViewBox ? {\n width: width,\n height: height\n } : {};\n if (position === 'insideLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalStart,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n if (position === 'insideRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height / 2,\n textAnchor: horizontalEnd,\n verticalAnchor: 'middle'\n }, sizeAttrs);\n }\n if (position === 'insideTop') {\n return _objectSpread({\n x: x + width / 2,\n y: y + verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideBottom') {\n return _objectSpread({\n x: x + width / 2,\n y: y + height - verticalOffset,\n textAnchor: 'middle',\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (position === 'insideTopLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideTopRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalStart\n }, sizeAttrs);\n }\n if (position === 'insideBottomLeft') {\n return _objectSpread({\n x: x + horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalStart,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (position === 'insideBottomRight') {\n return _objectSpread({\n x: x + width - horizontalOffset,\n y: y + height - verticalOffset,\n textAnchor: horizontalEnd,\n verticalAnchor: verticalEnd\n }, sizeAttrs);\n }\n if (_isObject(position) && (isNumber(position.x) || isPercent(position.x)) && (isNumber(position.y) || isPercent(position.y))) {\n return _objectSpread({\n x: x + getPercentValue(position.x, width),\n y: y + getPercentValue(position.y, height),\n textAnchor: 'end',\n verticalAnchor: 'end'\n }, sizeAttrs);\n }\n return _objectSpread({\n x: x + width / 2,\n y: y + height / 2,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n }, sizeAttrs);\n};\nvar isPolar = function isPolar(viewBox) {\n return 'cx' in viewBox && isNumber(viewBox.cx);\n};\nexport function Label(props) {\n var viewBox = props.viewBox,\n position = props.position,\n value = props.value,\n children = props.children,\n content = props.content,\n _props$className = props.className,\n className = _props$className === void 0 ? '' : _props$className,\n textBreakAll = props.textBreakAll;\n if (!viewBox || _isNil(value) && _isNil(children) && ! /*#__PURE__*/isValidElement(content) && !_isFunction(content)) {\n return null;\n }\n if ( /*#__PURE__*/isValidElement(content)) {\n return /*#__PURE__*/cloneElement(content, props);\n }\n var label;\n if (_isFunction(content)) {\n label = /*#__PURE__*/createElement(content, props);\n if ( /*#__PURE__*/isValidElement(label)) {\n return label;\n }\n } else {\n label = getLabel(props);\n }\n var isPolarLabel = isPolar(viewBox);\n var attrs = filterProps(props, true);\n if (isPolarLabel && (position === 'insideStart' || position === 'insideEnd' || position === 'end')) {\n return renderRadialLabel(props, label, attrs);\n }\n var positionAttrs = isPolarLabel ? getAttrsOfPolarLabel(props) : getAttrsOfCartesianLabel(props);\n return /*#__PURE__*/React.createElement(Text, _extends({\n className: classNames('recharts-label', className)\n }, attrs, positionAttrs, {\n breakAll: textBreakAll\n }), label);\n}\nLabel.displayName = 'Label';\nLabel.defaultProps = {\n offset: 5\n};\nvar parseViewBox = function parseViewBox(props) {\n var cx = props.cx,\n cy = props.cy,\n angle = props.angle,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n r = props.r,\n radius = props.radius,\n innerRadius = props.innerRadius,\n outerRadius = props.outerRadius,\n x = props.x,\n y = props.y,\n top = props.top,\n left = props.left,\n width = props.width,\n height = props.height,\n clockWise = props.clockWise,\n labelViewBox = props.labelViewBox;\n if (labelViewBox) {\n return labelViewBox;\n }\n if (isNumber(width) && isNumber(height)) {\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: width,\n height: height\n };\n }\n if (isNumber(top) && isNumber(left)) {\n return {\n x: top,\n y: left,\n width: width,\n height: height\n };\n }\n }\n if (isNumber(x) && isNumber(y)) {\n return {\n x: x,\n y: y,\n width: 0,\n height: 0\n };\n }\n if (isNumber(cx) && isNumber(cy)) {\n return {\n cx: cx,\n cy: cy,\n startAngle: startAngle || angle || 0,\n endAngle: endAngle || angle || 0,\n innerRadius: innerRadius || 0,\n outerRadius: outerRadius || radius || r || 0,\n clockWise: clockWise\n };\n }\n if (props.viewBox) {\n return props.viewBox;\n }\n return {};\n};\nvar parseLabel = function parseLabel(label, viewBox) {\n if (!label) {\n return null;\n }\n if (label === true) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox\n });\n }\n if (isNumOrStr(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox,\n value: label\n });\n }\n if ( /*#__PURE__*/isValidElement(label)) {\n if (label.type === Label) {\n return /*#__PURE__*/cloneElement(label, {\n key: 'label-implicit',\n viewBox: viewBox\n });\n }\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n if (_isFunction(label)) {\n return /*#__PURE__*/React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n if (_isObject(label)) {\n return /*#__PURE__*/React.createElement(Label, _extends({\n viewBox: viewBox\n }, label, {\n key: \"label-implicit\"\n }));\n }\n return null;\n};\nvar renderCallByParent = function renderCallByParent(parentProps, viewBox) {\n var checkPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (!parentProps || !parentProps.children && checkPropsLabel && !parentProps.label) {\n return null;\n }\n var children = parentProps.children;\n var parentViewBox = parseViewBox(parentProps);\n var explicitChildren = findAllByType(children, Label).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n viewBox: viewBox || parentViewBox,\n // eslint-disable-next-line react/no-array-index-key\n key: \"label-\".concat(index)\n });\n });\n if (!checkPropsLabel) {\n return explicitChildren;\n }\n var implicitLabel = parseLabel(parentProps.label, viewBox || parentViewBox);\n return [implicitLabel].concat(_toConsumableArray(explicitChildren));\n};\nLabel.parseViewBox = parseViewBox;\nLabel.renderCallByParent = renderCallByParent;","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\nimport _last from \"lodash/last\";\nimport _isArray from \"lodash/isArray\";\nvar _excluded = [\"data\", \"valueAccessor\", \"dataKey\", \"clockWise\", \"id\", \"textBreakAll\"];\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { cloneElement } from 'react';\nimport { Label } from './Label';\nimport { Layer } from '../container/Layer';\nimport { findAllByType, filterProps } from '../util/ReactUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\nvar defaultProps = {\n valueAccessor: function valueAccessor(entry) {\n return _isArray(entry.value) ? _last(entry.value) : entry.value;\n }\n};\nexport function LabelList(props) {\n var data = props.data,\n valueAccessor = props.valueAccessor,\n dataKey = props.dataKey,\n clockWise = props.clockWise,\n id = props.id,\n textBreakAll = props.textBreakAll,\n others = _objectWithoutProperties(props, _excluded);\n if (!data || !data.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-label-list\"\n }, data.map(function (entry, index) {\n var value = _isNil(dataKey) ? valueAccessor(entry, index) : getValueByDataKey(entry && entry.payload, dataKey);\n var idProps = _isNil(id) ? {} : {\n id: \"\".concat(id, \"-\").concat(index)\n };\n return /*#__PURE__*/React.createElement(Label, _extends({}, filterProps(entry, true), others, idProps, {\n parentViewBox: entry.parentViewBox,\n index: index,\n value: value,\n textBreakAll: textBreakAll,\n viewBox: Label.parseViewBox(_isNil(clockWise) ? entry : _objectSpread(_objectSpread({}, entry), {}, {\n clockWise: clockWise\n })),\n key: \"label-\".concat(index) // eslint-disable-line react/no-array-index-key\n }));\n }));\n}\n\nLabelList.displayName = 'LabelList';\nfunction parseLabelList(label, data) {\n if (!label) {\n return null;\n }\n if (label === true) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data\n });\n }\n if ( /*#__PURE__*/React.isValidElement(label) || _isFunction(label)) {\n return /*#__PURE__*/React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data,\n content: label\n });\n }\n if (_isObject(label)) {\n return /*#__PURE__*/React.createElement(LabelList, _extends({\n data: data\n }, label, {\n key: \"labelList-implicit\"\n }));\n }\n return null;\n}\nfunction renderCallByParent(parentProps, data) {\n var checkPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (!parentProps || !parentProps.children && checkPropsLabel && !parentProps.label) {\n return null;\n }\n var children = parentProps.children;\n var explicitChildren = findAllByType(children, LabelList).map(function (child, index) {\n return /*#__PURE__*/cloneElement(child, {\n data: data,\n // eslint-disable-next-line react/no-array-index-key\n key: \"labelList-\".concat(index)\n });\n });\n if (!checkPropsLabel) {\n return explicitChildren;\n }\n var implicitLabelList = parseLabelList(parentProps.label, data);\n return [implicitLabelList].concat(_toConsumableArray(explicitChildren));\n}\nLabelList.renderCallByParent = renderCallByParent;\nLabelList.defaultProps = defaultProps;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Sector\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/ReactUtils';\nimport { polarToCartesian, RADIAN } from '../util/PolarUtils';\nimport { getPercentValue, mathSign } from '../util/DataUtils';\nvar getDeltaAngle = function getDeltaAngle(startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 359.999);\n return sign * deltaAngle;\n};\nvar getTangentCircle = function getTangentCircle(_ref) {\n var cx = _ref.cx,\n cy = _ref.cy,\n radius = _ref.radius,\n angle = _ref.angle,\n sign = _ref.sign,\n isExternal = _ref.isExternal,\n cornerRadius = _ref.cornerRadius,\n cornerIsExternal = _ref.cornerIsExternal;\n var centerRadius = cornerRadius * (isExternal ? 1 : -1) + radius;\n var theta = Math.asin(cornerRadius / centerRadius) / RADIAN;\n var centerAngle = cornerIsExternal ? angle : angle + sign * theta;\n var center = polarToCartesian(cx, cy, centerRadius, centerAngle);\n // The coordinate of point which is tangent to the circle\n var circleTangency = polarToCartesian(cx, cy, radius, centerAngle);\n // The coordinate of point which is tangent to the radius line\n var lineTangencyAngle = cornerIsExternal ? angle - sign * theta : angle;\n var lineTangency = polarToCartesian(cx, cy, centerRadius * Math.cos(theta * RADIAN), lineTangencyAngle);\n return {\n center: center,\n circleTangency: circleTangency,\n lineTangency: lineTangency,\n theta: theta\n };\n};\nvar getSectorPath = function getSectorPath(_ref2) {\n var cx = _ref2.cx,\n cy = _ref2.cy,\n innerRadius = _ref2.innerRadius,\n outerRadius = _ref2.outerRadius,\n startAngle = _ref2.startAngle,\n endAngle = _ref2.endAngle;\n var angle = getDeltaAngle(startAngle, endAngle);\n\n // When the angle of sector equals to 360, star point and end point coincide\n var tempEndAngle = startAngle + angle;\n var outerStartPoint = polarToCartesian(cx, cy, outerRadius, startAngle);\n var outerEndPoint = polarToCartesian(cx, cy, outerRadius, tempEndAngle);\n var path = \"M \".concat(outerStartPoint.x, \",\").concat(outerStartPoint.y, \"\\n A \").concat(outerRadius, \",\").concat(outerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle > tempEndAngle), \",\\n \").concat(outerEndPoint.x, \",\").concat(outerEndPoint.y, \"\\n \");\n if (innerRadius > 0) {\n var innerStartPoint = polarToCartesian(cx, cy, innerRadius, startAngle);\n var innerEndPoint = polarToCartesian(cx, cy, innerRadius, tempEndAngle);\n path += \"L \".concat(innerEndPoint.x, \",\").concat(innerEndPoint.y, \"\\n A \").concat(innerRadius, \",\").concat(innerRadius, \",0,\\n \").concat(+(Math.abs(angle) > 180), \",\").concat(+(startAngle <= tempEndAngle), \",\\n \").concat(innerStartPoint.x, \",\").concat(innerStartPoint.y, \" Z\");\n } else {\n path += \"L \".concat(cx, \",\").concat(cy, \" Z\");\n }\n return path;\n};\nvar getSectorWithCorner = function getSectorWithCorner(_ref3) {\n var cx = _ref3.cx,\n cy = _ref3.cy,\n innerRadius = _ref3.innerRadius,\n outerRadius = _ref3.outerRadius,\n cornerRadius = _ref3.cornerRadius,\n forceCornerRadius = _ref3.forceCornerRadius,\n cornerIsExternal = _ref3.cornerIsExternal,\n startAngle = _ref3.startAngle,\n endAngle = _ref3.endAngle;\n var sign = mathSign(endAngle - startAngle);\n var _getTangentCircle = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: startAngle,\n sign: sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n soct = _getTangentCircle.circleTangency,\n solt = _getTangentCircle.lineTangency,\n sot = _getTangentCircle.theta;\n var _getTangentCircle2 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: outerRadius,\n angle: endAngle,\n sign: -sign,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eoct = _getTangentCircle2.circleTangency,\n eolt = _getTangentCircle2.lineTangency,\n eot = _getTangentCircle2.theta;\n var outerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sot - eot;\n if (outerArcAngle < 0) {\n if (forceCornerRadius) {\n return \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(cornerRadius * 2, \",0\\n a\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,1,\").concat(-cornerRadius * 2, \",0\\n \");\n }\n return getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n var path = \"M \".concat(solt.x, \",\").concat(solt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(soct.x, \",\").concat(soct.y, \"\\n A\").concat(outerRadius, \",\").concat(outerRadius, \",0,\").concat(+(outerArcAngle > 180), \",\").concat(+(sign < 0), \",\").concat(eoct.x, \",\").concat(eoct.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eolt.x, \",\").concat(eolt.y, \"\\n \");\n if (innerRadius > 0) {\n var _getTangentCircle3 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: startAngle,\n sign: sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n sict = _getTangentCircle3.circleTangency,\n silt = _getTangentCircle3.lineTangency,\n sit = _getTangentCircle3.theta;\n var _getTangentCircle4 = getTangentCircle({\n cx: cx,\n cy: cy,\n radius: innerRadius,\n angle: endAngle,\n sign: -sign,\n isExternal: true,\n cornerRadius: cornerRadius,\n cornerIsExternal: cornerIsExternal\n }),\n eict = _getTangentCircle4.circleTangency,\n eilt = _getTangentCircle4.lineTangency,\n eit = _getTangentCircle4.theta;\n var innerArcAngle = cornerIsExternal ? Math.abs(startAngle - endAngle) : Math.abs(startAngle - endAngle) - sit - eit;\n if (innerArcAngle < 0 && cornerRadius === 0) {\n return \"\".concat(path, \"L\").concat(cx, \",\").concat(cy, \"Z\");\n }\n path += \"L\".concat(eilt.x, \",\").concat(eilt.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(eict.x, \",\").concat(eict.y, \"\\n A\").concat(innerRadius, \",\").concat(innerRadius, \",0,\").concat(+(innerArcAngle > 180), \",\").concat(+(sign > 0), \",\").concat(sict.x, \",\").concat(sict.y, \"\\n A\").concat(cornerRadius, \",\").concat(cornerRadius, \",0,0,\").concat(+(sign < 0), \",\").concat(silt.x, \",\").concat(silt.y, \"Z\");\n } else {\n path += \"L\".concat(cx, \",\").concat(cy, \"Z\");\n }\n return path;\n};\nexport var Sector = /*#__PURE__*/function (_PureComponent) {\n _inherits(Sector, _PureComponent);\n var _super = _createSuper(Sector);\n function Sector() {\n _classCallCheck(this, Sector);\n return _super.apply(this, arguments);\n }\n _createClass(Sector, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n cx = _this$props.cx,\n cy = _this$props.cy,\n innerRadius = _this$props.innerRadius,\n outerRadius = _this$props.outerRadius,\n cornerRadius = _this$props.cornerRadius,\n forceCornerRadius = _this$props.forceCornerRadius,\n cornerIsExternal = _this$props.cornerIsExternal,\n startAngle = _this$props.startAngle,\n endAngle = _this$props.endAngle,\n className = _this$props.className;\n if (outerRadius < innerRadius || startAngle === endAngle) {\n return null;\n }\n var layerClass = classNames('recharts-sector', className);\n var deltaRadius = outerRadius - innerRadius;\n var cr = getPercentValue(cornerRadius, deltaRadius, 0, true);\n var path;\n if (cr > 0 && Math.abs(startAngle - endAngle) < 360) {\n path = getSectorWithCorner({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n cornerRadius: Math.min(cr, deltaRadius / 2),\n forceCornerRadius: forceCornerRadius,\n cornerIsExternal: cornerIsExternal,\n startAngle: startAngle,\n endAngle: endAngle\n });\n } else {\n path = getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\n }\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: layerClass,\n d: path,\n role: \"img\"\n }));\n }\n }]);\n return Sector;\n}(PureComponent);\n_defineProperty(Sector, \"defaultProps\", {\n cx: 0,\n cy: 0,\n innerRadius: 0,\n outerRadius: 0,\n startAngle: 0,\n endAngle: 0,\n cornerRadius: 0,\n forceCornerRadius: false,\n cornerIsExternal: false\n});","import _isArray from \"lodash/isArray\";\nimport _upperFirst from \"lodash/upperFirst\";\nimport _isFunction from \"lodash/isFunction\";\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Curve\n */\nimport React from 'react';\nimport { line as shapeLine, area as shapeArea, curveBasisClosed, curveBasisOpen, curveBasis, curveLinearClosed, curveLinear, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from 'victory-vendor/d3-shape';\nimport classNames from 'classnames';\nimport { adaptEventHandlers } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nimport { isNumber } from '../util/DataUtils';\nvar CURVE_FACTORIES = {\n curveBasisClosed: curveBasisClosed,\n curveBasisOpen: curveBasisOpen,\n curveBasis: curveBasis,\n curveLinearClosed: curveLinearClosed,\n curveLinear: curveLinear,\n curveMonotoneX: curveMonotoneX,\n curveMonotoneY: curveMonotoneY,\n curveNatural: curveNatural,\n curveStep: curveStep,\n curveStepAfter: curveStepAfter,\n curveStepBefore: curveStepBefore\n};\nvar defined = function defined(p) {\n return p.x === +p.x && p.y === +p.y;\n};\nvar getX = function getX(p) {\n return p.x;\n};\nvar getY = function getY(p) {\n return p.y;\n};\nvar getCurveFactory = function getCurveFactory(type, layout) {\n if (_isFunction(type)) {\n return type;\n }\n var name = \"curve\".concat(_upperFirst(type));\n if (name === 'curveMonotone' && layout) {\n return CURVE_FACTORIES[\"\".concat(name).concat(layout === 'vertical' ? 'Y' : 'X')];\n }\n return CURVE_FACTORIES[name] || curveLinear;\n};\n/**\n * Calculate the path of curve\n * @return {String} path\n */\nvar getPath = function getPath(_ref) {\n var type = _ref.type,\n points = _ref.points,\n baseLine = _ref.baseLine,\n layout = _ref.layout,\n connectNulls = _ref.connectNulls;\n var curveFactory = getCurveFactory(type, layout);\n var formatPoints = connectNulls ? points.filter(function (entry) {\n return defined(entry);\n }) : points;\n var lineFunction;\n if (_isArray(baseLine)) {\n var formatBaseLine = connectNulls ? baseLine.filter(function (base) {\n return defined(base);\n }) : baseLine;\n var areaPoints = formatPoints.map(function (entry, index) {\n return _objectSpread(_objectSpread({}, entry), {}, {\n base: formatBaseLine[index]\n });\n });\n if (layout === 'vertical') {\n lineFunction = shapeArea().y(getY).x1(getX).x0(function (d) {\n return d.base.x;\n });\n } else {\n lineFunction = shapeArea().x(getX).y1(getY).y0(function (d) {\n return d.base.y;\n });\n }\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(areaPoints);\n }\n if (layout === 'vertical' && isNumber(baseLine)) {\n lineFunction = shapeArea().y(getY).x1(getX).x0(baseLine);\n } else if (isNumber(baseLine)) {\n lineFunction = shapeArea().x(getX).y1(getY).y0(baseLine);\n } else {\n lineFunction = shapeLine().x(getX).y(getY);\n }\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(formatPoints);\n};\nexport var Curve = function Curve(props) {\n var className = props.className,\n points = props.points,\n path = props.path,\n pathRef = props.pathRef;\n if ((!points || !points.length) && !path) {\n return null;\n }\n var realPath = points && points.length ? getPath(props) : path;\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props), adaptEventHandlers(props), {\n className: classNames('recharts-curve', className),\n d: realPath,\n ref: pathRef\n }));\n};\nCurve.defaultProps = {\n type: 'linear',\n points: [],\n connectNulls: false\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Rectangle\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport { filterProps } from '../util/ReactUtils';\nvar getRectanglePath = function getRectanglePath(x, y, width, height, radius) {\n var maxRadius = Math.min(Math.abs(width) / 2, Math.abs(height) / 2);\n var ySign = height >= 0 ? 1 : -1;\n var xSign = width >= 0 ? 1 : -1;\n var clockWise = height >= 0 && width >= 0 || height < 0 && width < 0 ? 1 : 0;\n var path;\n if (maxRadius > 0 && radius instanceof Array) {\n var newRadius = [0, 0, 0, 0];\n for (var i = 0, len = 4; i < len; i++) {\n newRadius[i] = radius[i] > maxRadius ? maxRadius : radius[i];\n }\n path = \"M\".concat(x, \",\").concat(y + ySign * newRadius[0]);\n if (newRadius[0] > 0) {\n path += \"A \".concat(newRadius[0], \",\").concat(newRadius[0], \",0,0,\").concat(clockWise, \",\").concat(x + xSign * newRadius[0], \",\").concat(y);\n }\n path += \"L \".concat(x + width - xSign * newRadius[1], \",\").concat(y);\n if (newRadius[1] > 0) {\n path += \"A \".concat(newRadius[1], \",\").concat(newRadius[1], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width, \",\").concat(y + ySign * newRadius[1]);\n }\n path += \"L \".concat(x + width, \",\").concat(y + height - ySign * newRadius[2]);\n if (newRadius[2] > 0) {\n path += \"A \".concat(newRadius[2], \",\").concat(newRadius[2], \",0,0,\").concat(clockWise, \",\\n \").concat(x + width - xSign * newRadius[2], \",\").concat(y + height);\n }\n path += \"L \".concat(x + xSign * newRadius[3], \",\").concat(y + height);\n if (newRadius[3] > 0) {\n path += \"A \".concat(newRadius[3], \",\").concat(newRadius[3], \",0,0,\").concat(clockWise, \",\\n \").concat(x, \",\").concat(y + height - ySign * newRadius[3]);\n }\n path += 'Z';\n } else if (maxRadius > 0 && radius === +radius && radius > 0) {\n var _newRadius = Math.min(maxRadius, radius);\n path = \"M \".concat(x, \",\").concat(y + ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + xSign * _newRadius, \",\").concat(y, \"\\n L \").concat(x + width - xSign * _newRadius, \",\").concat(y, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width, \",\").concat(y + ySign * _newRadius, \"\\n L \").concat(x + width, \",\").concat(y + height - ySign * _newRadius, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x + width - xSign * _newRadius, \",\").concat(y + height, \"\\n L \").concat(x + xSign * _newRadius, \",\").concat(y + height, \"\\n A \").concat(_newRadius, \",\").concat(_newRadius, \",0,0,\").concat(clockWise, \",\").concat(x, \",\").concat(y + height - ySign * _newRadius, \" Z\");\n } else {\n path = \"M \".concat(x, \",\").concat(y, \" h \").concat(width, \" v \").concat(height, \" h \").concat(-width, \" Z\");\n }\n return path;\n};\nexport var isInRectangle = function isInRectangle(point, rect) {\n if (!point || !rect) {\n return false;\n }\n var px = point.x,\n py = point.y;\n var x = rect.x,\n y = rect.y,\n width = rect.width,\n height = rect.height;\n if (Math.abs(width) > 0 && Math.abs(height) > 0) {\n var minX = Math.min(x, x + width);\n var maxX = Math.max(x, x + width);\n var minY = Math.min(y, y + height);\n var maxY = Math.max(y, y + height);\n return px >= minX && px <= maxX && py >= minY && py <= maxY;\n }\n return false;\n};\nexport var Rectangle = /*#__PURE__*/function (_PureComponent) {\n _inherits(Rectangle, _PureComponent);\n var _super = _createSuper(Rectangle);\n function Rectangle() {\n var _this;\n _classCallCheck(this, Rectangle);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n totalLength: -1\n });\n return _this;\n }\n _createClass(Rectangle, [{\n key: \"componentDidMount\",\n value: /* eslint-disable react/no-did-mount-set-state */\n function componentDidMount() {\n if (this.node && this.node.getTotalLength) {\n try {\n var totalLength = this.node.getTotalLength();\n if (totalLength) {\n this.setState({\n totalLength: totalLength\n });\n }\n } catch (err) {\n // calculate total length error\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n width = _this$props.width,\n height = _this$props.height,\n radius = _this$props.radius,\n className = _this$props.className;\n var totalLength = this.state.totalLength;\n var _this$props2 = this.props,\n animationEasing = _this$props2.animationEasing,\n animationDuration = _this$props2.animationDuration,\n animationBegin = _this$props2.animationBegin,\n isAnimationActive = _this$props2.isAnimationActive,\n isUpdateAnimationActive = _this$props2.isUpdateAnimationActive;\n if (x !== +x || y !== +y || width !== +width || height !== +height || width === 0 || height === 0) {\n return null;\n }\n var layerClass = classNames('recharts-rectangle', className);\n if (!isUpdateAnimationActive) {\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(this.props, true), {\n className: layerClass,\n d: getRectanglePath(x, y, width, height, radius)\n }));\n }\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n to: {\n width: width,\n height: height,\n x: x,\n y: y\n },\n duration: animationDuration,\n animationEasing: animationEasing,\n isActive: isUpdateAnimationActive\n }, function (_ref) {\n var currWidth = _ref.width,\n currHeight = _ref.height,\n currX = _ref.x,\n currY = _ref.y;\n return /*#__PURE__*/React.createElement(Animate, {\n canBegin: totalLength > 0,\n from: \"0px \".concat(totalLength === -1 ? 1 : totalLength, \"px\"),\n to: \"\".concat(totalLength, \"px 0px\"),\n attributeName: \"strokeDasharray\",\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing\n }, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(_this2.props, true), {\n className: layerClass,\n d: getRectanglePath(currX, currY, currWidth, currHeight, radius),\n ref: function ref(node) {\n _this2.node = node;\n }\n })));\n });\n }\n }]);\n return Rectangle;\n}(PureComponent);\n_defineProperty(Rectangle, \"defaultProps\", {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n // The radius of border\n // The radius of four corners when radius is a number\n // The radius of left-top, right-top, right-bottom, left-bottom when radius is an array\n radius: 0,\n isAnimationActive: false,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"points\", \"className\", \"baseLinePoints\", \"connectNulls\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\n/**\n * @fileOverview Polygon\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { filterProps } from '../util/ReactUtils';\nvar isValidatePoint = function isValidatePoint(point) {\n return point && point.x === +point.x && point.y === +point.y;\n};\nvar getParsedPoints = function getParsedPoints() {\n var points = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var segmentPoints = [[]];\n points.forEach(function (entry) {\n if (isValidatePoint(entry)) {\n segmentPoints[segmentPoints.length - 1].push(entry);\n } else if (segmentPoints[segmentPoints.length - 1].length > 0) {\n // add another path\n segmentPoints.push([]);\n }\n });\n if (isValidatePoint(points[0])) {\n segmentPoints[segmentPoints.length - 1].push(points[0]);\n }\n if (segmentPoints[segmentPoints.length - 1].length <= 0) {\n segmentPoints = segmentPoints.slice(0, -1);\n }\n return segmentPoints;\n};\nvar getSinglePolygonPath = function getSinglePolygonPath(points, connectNulls) {\n var segmentPoints = getParsedPoints(points);\n if (connectNulls) {\n segmentPoints = [segmentPoints.reduce(function (res, segPoints) {\n return [].concat(_toConsumableArray(res), _toConsumableArray(segPoints));\n }, [])];\n }\n var polygonPath = segmentPoints.map(function (segPoints) {\n return segPoints.reduce(function (path, point, index) {\n return \"\".concat(path).concat(index === 0 ? 'M' : 'L').concat(point.x, \",\").concat(point.y);\n }, '');\n }).join('');\n return segmentPoints.length === 1 ? \"\".concat(polygonPath, \"Z\") : polygonPath;\n};\nvar getRanglePath = function getRanglePath(points, baseLinePoints, connectNulls) {\n var outerPath = getSinglePolygonPath(points, connectNulls);\n return \"\".concat(outerPath.slice(-1) === 'Z' ? outerPath.slice(0, -1) : outerPath, \"L\").concat(getSinglePolygonPath(baseLinePoints.reverse(), connectNulls).slice(1));\n};\nexport var Polygon = /*#__PURE__*/function (_PureComponent) {\n _inherits(Polygon, _PureComponent);\n var _super = _createSuper(Polygon);\n function Polygon() {\n _classCallCheck(this, Polygon);\n return _super.apply(this, arguments);\n }\n _createClass(Polygon, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n points = _this$props.points,\n className = _this$props.className,\n baseLinePoints = _this$props.baseLinePoints,\n connectNulls = _this$props.connectNulls,\n others = _objectWithoutProperties(_this$props, _excluded);\n if (!points || !points.length) {\n return null;\n }\n var layerClass = classNames('recharts-polygon', className);\n if (baseLinePoints && baseLinePoints.length) {\n var hasStroke = others.stroke && others.stroke !== 'none';\n var rangePath = getRanglePath(points, baseLinePoints, connectNulls);\n return /*#__PURE__*/React.createElement(\"g\", {\n className: layerClass\n }, /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(others, true), {\n fill: rangePath.slice(-1) === 'Z' ? others.fill : 'none',\n stroke: \"none\",\n d: rangePath\n })), hasStroke ? /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(others, true), {\n fill: \"none\",\n d: getSinglePolygonPath(points, connectNulls)\n })) : null, hasStroke ? /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(others, true), {\n fill: \"none\",\n d: getSinglePolygonPath(baseLinePoints, connectNulls)\n })) : null);\n }\n var singlePath = getSinglePolygonPath(points, connectNulls);\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(others, true), {\n fill: singlePath.slice(-1) === 'Z' ? others.fill : 'none',\n className: layerClass,\n d: singlePath\n }));\n }\n }]);\n return Polygon;\n}(PureComponent);","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n/**\n * @fileOverview Dot\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { adaptEventHandlers } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nexport var Dot = /*#__PURE__*/function (_PureComponent) {\n _inherits(Dot, _PureComponent);\n var _super = _createSuper(Dot);\n function Dot() {\n _classCallCheck(this, Dot);\n return _super.apply(this, arguments);\n }\n _createClass(Dot, [{\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n cx = _this$props.cx,\n cy = _this$props.cy,\n r = _this$props.r,\n className = _this$props.className;\n var layerClass = classNames('recharts-dot', className);\n if (cx === +cx && cy === +cy && r === +r) {\n return /*#__PURE__*/React.createElement(\"circle\", _extends({}, filterProps(this.props), adaptEventHandlers(this.props), {\n className: layerClass,\n cx: cx,\n cy: cy,\n r: r\n }));\n }\n return null;\n }\n }]);\n return Dot;\n}(PureComponent);","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/**\n * @fileOverview Cross\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { isNumber } from '../util/DataUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar getPath = function getPath(x, y, width, height, top, left) {\n return \"M\".concat(x, \",\").concat(top, \"v\").concat(height, \"M\").concat(left, \",\").concat(y, \"h\").concat(width);\n};\nexport var Cross = function Cross(props) {\n var x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n top = props.top,\n left = props.left,\n className = props.className;\n if (!isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || !isNumber(top) || !isNumber(left)) {\n return null;\n }\n return /*#__PURE__*/React.createElement(\"path\", _extends({}, filterProps(props, true), {\n className: classNames('recharts-cross', className),\n d: getPath(x, y, width, height, top, left)\n }));\n};\nCross.defaultProps = {\n x: 0,\n y: 0,\n top: 0,\n left: 0,\n width: 0,\n height: 0\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 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","import _isFunction from \"lodash/isFunction\";\nimport _minBy from \"lodash/minBy\";\nimport _maxBy from \"lodash/maxBy\";\nvar _excluded = [\"cx\", \"cy\", \"angle\", \"ticks\", \"axisLine\"],\n _excluded2 = [\"ticks\", \"tick\", \"angle\", \"tickFormatter\", \"stroke\"];\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview The axis of polar coordinate system\n */\nimport React, { PureComponent } from 'react';\nimport { Text } from '../component/Text';\nimport { Label } from '../component/Label';\nimport { Layer } from '../container/Layer';\nimport { polarToCartesian } from '../util/PolarUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nexport var PolarRadiusAxis = /*#__PURE__*/function (_PureComponent) {\n _inherits(PolarRadiusAxis, _PureComponent);\n var _super = _createSuper(PolarRadiusAxis);\n function PolarRadiusAxis() {\n _classCallCheck(this, PolarRadiusAxis);\n return _super.apply(this, arguments);\n }\n _createClass(PolarRadiusAxis, [{\n key: \"getTickValueCoord\",\n value:\n /**\n * Calculate the coordinate of tick\n * @param {Number} coordinate The radius of tick\n * @return {Object} (x, y)\n */\n function getTickValueCoord(_ref) {\n var coordinate = _ref.coordinate;\n var _this$props = this.props,\n angle = _this$props.angle,\n cx = _this$props.cx,\n cy = _this$props.cy;\n return polarToCartesian(cx, cy, coordinate, angle);\n }\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor() {\n var orientation = this.props.orientation;\n var textAnchor;\n switch (orientation) {\n case 'left':\n textAnchor = 'end';\n break;\n case 'right':\n textAnchor = 'start';\n break;\n default:\n textAnchor = 'middle';\n break;\n }\n return textAnchor;\n }\n }, {\n key: \"getViewBox\",\n value: function getViewBox() {\n var _this$props2 = this.props,\n cx = _this$props2.cx,\n cy = _this$props2.cy,\n angle = _this$props2.angle,\n ticks = _this$props2.ticks;\n var maxRadiusTick = _maxBy(ticks, function (entry) {\n return entry.coordinate || 0;\n });\n var minRadiusTick = _minBy(ticks, function (entry) {\n return entry.coordinate || 0;\n });\n return {\n cx: cx,\n cy: cy,\n startAngle: angle,\n endAngle: angle,\n innerRadius: minRadiusTick.coordinate || 0,\n outerRadius: maxRadiusTick.coordinate || 0\n };\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props3 = this.props,\n cx = _this$props3.cx,\n cy = _this$props3.cy,\n angle = _this$props3.angle,\n ticks = _this$props3.ticks,\n axisLine = _this$props3.axisLine,\n others = _objectWithoutProperties(_this$props3, _excluded);\n var extent = ticks.reduce(function (result, entry) {\n return [Math.min(result[0], entry.coordinate), Math.max(result[1], entry.coordinate)];\n }, [Infinity, -Infinity]);\n var point0 = polarToCartesian(cx, cy, extent[0], angle);\n var point1 = polarToCartesian(cx, cy, extent[1], angle);\n var props = _objectSpread(_objectSpread(_objectSpread({}, filterProps(others)), {}, {\n fill: 'none'\n }, filterProps(axisLine)), {}, {\n x1: point0.x,\n y1: point0.y,\n x2: point1.x,\n y2: point1.y\n });\n return /*#__PURE__*/React.createElement(\"line\", _extends({\n className: \"recharts-polar-radius-axis-line\"\n }, props));\n }\n }, {\n key: \"renderTicks\",\n value: function renderTicks() {\n var _this = this;\n var _this$props4 = this.props,\n ticks = _this$props4.ticks,\n tick = _this$props4.tick,\n angle = _this$props4.angle,\n tickFormatter = _this$props4.tickFormatter,\n stroke = _this$props4.stroke,\n others = _objectWithoutProperties(_this$props4, _excluded2);\n var textAnchor = this.getTickTextAnchor();\n var axisProps = filterProps(others);\n var customTickProps = filterProps(tick);\n var items = ticks.map(function (entry, i) {\n var coord = _this.getTickValueCoord(entry);\n var tickProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n textAnchor: textAnchor,\n transform: \"rotate(\".concat(90 - angle, \", \").concat(coord.x, \", \").concat(coord.y, \")\")\n }, axisProps), {}, {\n stroke: 'none',\n fill: stroke\n }, customTickProps), {}, {\n index: i\n }, coord), {}, {\n payload: entry\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-polar-radius-axis-tick\",\n key: \"tick-\".concat(i) // eslint-disable-line react/no-array-index-key\n }, adaptEventsOfChild(_this.props, entry, i)), PolarRadiusAxis.renderTickItem(tick, tickProps, tickFormatter ? tickFormatter(entry.value, i) : entry.value));\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-polar-radius-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props5 = this.props,\n ticks = _this$props5.ticks,\n axisLine = _this$props5.axisLine,\n tick = _this$props5.tick;\n if (!ticks || !ticks.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-polar-radius-axis\"\n }, axisLine && this.renderAxisLine(), tick && this.renderTicks(), Label.renderCallByParent(this.props, this.getViewBox()));\n }\n }], [{\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n tickItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = /*#__PURE__*/React.createElement(Text, _extends({}, props, {\n className: \"recharts-polar-radius-axis-tick-value\"\n }), value);\n }\n return tickItem;\n }\n }]);\n return PolarRadiusAxis;\n}(PureComponent);\n_defineProperty(PolarRadiusAxis, \"displayName\", 'PolarRadiusAxis');\n_defineProperty(PolarRadiusAxis, \"axisType\", 'radiusAxis');\n_defineProperty(PolarRadiusAxis, \"defaultProps\", {\n type: 'number',\n radiusAxisId: 0,\n cx: 0,\n cy: 0,\n angle: 0,\n orientation: 'right',\n stroke: '#ccc',\n axisLine: true,\n tick: true,\n tickCount: 5,\n allowDataOverflow: false,\n scale: 'auto',\n allowDuplicatedCategory: true\n});","import _isFunction from \"lodash/isFunction\";\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Axis of radial direction\n */\nimport React, { PureComponent } from 'react';\nimport { Layer } from '../container/Layer';\nimport { Dot } from '../shape/Dot';\nimport { Polygon } from '../shape/Polygon';\nimport { Text } from '../component/Text';\nimport { adaptEventsOfChild } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nvar RADIAN = Math.PI / 180;\nvar eps = 1e-5;\nexport var PolarAngleAxis = /*#__PURE__*/function (_PureComponent) {\n _inherits(PolarAngleAxis, _PureComponent);\n var _super = _createSuper(PolarAngleAxis);\n function PolarAngleAxis() {\n _classCallCheck(this, PolarAngleAxis);\n return _super.apply(this, arguments);\n }\n _createClass(PolarAngleAxis, [{\n key: \"getTickLineCoord\",\n value:\n /**\n * Calculate the coordinate of line endpoint\n * @param {Object} data The Data if ticks\n * @return {Object} (x0, y0): The start point of text,\n * (x1, y1): The end point close to text,\n * (x2, y2): The end point close to axis\n */\n function getTickLineCoord(data) {\n var _this$props = this.props,\n cx = _this$props.cx,\n cy = _this$props.cy,\n radius = _this$props.radius,\n orientation = _this$props.orientation,\n tickSize = _this$props.tickSize;\n var tickLineSize = tickSize || 8;\n var p1 = polarToCartesian(cx, cy, radius, data.coordinate);\n var p2 = polarToCartesian(cx, cy, radius + (orientation === 'inner' ? -1 : 1) * tickLineSize, data.coordinate);\n return {\n x1: p1.x,\n y1: p1.y,\n x2: p2.x,\n y2: p2.y\n };\n }\n\n /**\n * Get the text-anchor of each tick\n * @param {Object} data Data of ticks\n * @return {String} text-anchor\n */\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor(data) {\n var orientation = this.props.orientation;\n var cos = Math.cos(-data.coordinate * RADIAN);\n var textAnchor;\n if (cos > eps) {\n textAnchor = orientation === 'outer' ? 'start' : 'end';\n } else if (cos < -eps) {\n textAnchor = orientation === 'outer' ? 'end' : 'start';\n } else {\n textAnchor = 'middle';\n }\n return textAnchor;\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props2 = this.props,\n cx = _this$props2.cx,\n cy = _this$props2.cy,\n radius = _this$props2.radius,\n axisLine = _this$props2.axisLine,\n axisLineType = _this$props2.axisLineType;\n var props = _objectSpread(_objectSpread({}, filterProps(this.props)), {}, {\n fill: 'none'\n }, filterProps(axisLine));\n if (axisLineType === 'circle') {\n return /*#__PURE__*/React.createElement(Dot, _extends({\n className: \"recharts-polar-angle-axis-line\"\n }, props, {\n cx: cx,\n cy: cy,\n r: radius\n }));\n }\n var ticks = this.props.ticks;\n var points = ticks.map(function (entry) {\n return polarToCartesian(cx, cy, radius, entry.coordinate);\n });\n return /*#__PURE__*/React.createElement(Polygon, _extends({\n className: \"recharts-polar-angle-axis-line\"\n }, props, {\n points: points\n }));\n }\n }, {\n key: \"renderTicks\",\n value: function renderTicks() {\n var _this = this;\n var _this$props3 = this.props,\n ticks = _this$props3.ticks,\n tick = _this$props3.tick,\n tickLine = _this$props3.tickLine,\n tickFormatter = _this$props3.tickFormatter,\n stroke = _this$props3.stroke;\n var axisProps = filterProps(this.props);\n var customTickProps = filterProps(tick);\n var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {\n fill: 'none'\n }, filterProps(tickLine));\n var items = ticks.map(function (entry, i) {\n var lineCoord = _this.getTickLineCoord(entry);\n var textAnchor = _this.getTickTextAnchor(entry);\n var tickProps = _objectSpread(_objectSpread(_objectSpread({\n textAnchor: textAnchor\n }, axisProps), {}, {\n stroke: 'none',\n fill: stroke\n }, customTickProps), {}, {\n index: i,\n payload: entry,\n x: lineCoord.x2,\n y: lineCoord.y2\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-polar-angle-axis-tick\",\n key: \"tick-\".concat(i) // eslint-disable-line react/no-array-index-key\n }, adaptEventsOfChild(_this.props, entry, i)), tickLine && /*#__PURE__*/React.createElement(\"line\", _extends({\n className: \"recharts-polar-angle-axis-tick-line\"\n }, tickLineProps, lineCoord)), tick && PolarAngleAxis.renderTickItem(tick, tickProps, tickFormatter ? tickFormatter(entry.value, i) : entry.value));\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-polar-angle-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n ticks = _this$props4.ticks,\n radius = _this$props4.radius,\n axisLine = _this$props4.axisLine;\n if (radius <= 0 || !ticks || !ticks.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-polar-angle-axis\"\n }, axisLine && this.renderAxisLine(), this.renderTicks());\n }\n }], [{\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n tickItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = /*#__PURE__*/React.createElement(Text, _extends({}, props, {\n className: \"recharts-polar-angle-axis-tick-value\"\n }), value);\n }\n return tickItem;\n }\n }]);\n return PolarAngleAxis;\n}(PureComponent);\n_defineProperty(PolarAngleAxis, \"displayName\", 'PolarAngleAxis');\n_defineProperty(PolarAngleAxis, \"axisType\", 'angleAxis');\n_defineProperty(PolarAngleAxis, \"defaultProps\", {\n type: 'category',\n angleAxisId: 0,\n scale: 'auto',\n cx: 0,\n cy: 0,\n orientation: 'outer',\n axisLine: true,\n tickLine: true,\n tickSize: 8,\n tick: true,\n hide: false,\n allowDuplicatedCategory: true\n});","import _isEqual from \"lodash/isEqual\";\nimport _get from \"lodash/get\";\nimport _isPlainObject from \"lodash/isPlainObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Render sectors of a pie\n */\nimport React, { PureComponent } from 'react';\nimport Animate from 'react-smooth';\nimport classNames from 'classnames';\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 { findAllByType, filterProps } from '../util/ReactUtils';\nimport { Global } from '../util/Global';\nimport { polarToCartesian, getMaxRadius } from '../util/PolarUtils';\nimport { isNumber, getPercentValue, mathSign, interpolateNumber, uniqueId } from '../util/DataUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { warn } from '../util/LogUtils';\nimport { adaptEventsOfChild } from '../util/types';\nexport var Pie = /*#__PURE__*/function (_PureComponent) {\n _inherits(Pie, _PureComponent);\n var _super = _createSuper(Pie);\n function Pie(props) {\n var _this;\n _classCallCheck(this, Pie);\n _this = _super.call(this, props);\n _defineProperty(_assertThisInitialized(_this), \"pieRef\", null);\n _defineProperty(_assertThisInitialized(_this), \"sectorRefs\", []);\n _defineProperty(_assertThisInitialized(_this), \"id\", uniqueId('recharts-pie-'));\n _defineProperty(_assertThisInitialized(_this), \"handleAnimationEnd\", function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n _this.setState({\n isAnimationFinished: true\n });\n if (_isFunction(onAnimationEnd)) {\n onAnimationEnd();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleAnimationStart\", function () {\n var onAnimationStart = _this.props.onAnimationStart;\n _this.setState({\n isAnimationFinished: false\n });\n if (_isFunction(onAnimationStart)) {\n onAnimationStart();\n }\n });\n _this.state = {\n isAnimationFinished: !props.isAnimationActive,\n prevIsAnimationActive: props.isAnimationActive,\n prevAnimationId: props.animationId,\n sectorToFocus: 0\n };\n return _this;\n }\n _createClass(Pie, [{\n key: \"isActiveIndex\",\n value: function isActiveIndex(i) {\n var activeIndex = this.props.activeIndex;\n if (Array.isArray(activeIndex)) {\n return activeIndex.indexOf(i) !== -1;\n }\n return i === activeIndex;\n }\n }, {\n key: \"hasActiveIndex\",\n value: function hasActiveIndex() {\n var activeIndex = this.props.activeIndex;\n return Array.isArray(activeIndex) ? activeIndex.length !== 0 : activeIndex || activeIndex === 0;\n }\n }, {\n key: \"renderLabels\",\n value: function renderLabels(sectors) {\n var isAnimationActive = this.props.isAnimationActive;\n if (isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n var _this$props = this.props,\n label = _this$props.label,\n labelLine = _this$props.labelLine,\n dataKey = _this$props.dataKey,\n valueKey = _this$props.valueKey;\n var pieProps = filterProps(this.props);\n var customLabelProps = filterProps(label);\n var customLabelLineProps = filterProps(labelLine);\n var offsetRadius = label && label.offsetRadius || 20;\n var labels = sectors.map(function (entry, i) {\n var midAngle = (entry.startAngle + entry.endAngle) / 2;\n var endPoint = polarToCartesian(entry.cx, entry.cy, entry.outerRadius + offsetRadius, midAngle);\n var labelProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, pieProps), entry), {}, {\n stroke: 'none'\n }, customLabelProps), {}, {\n index: i,\n textAnchor: Pie.getTextAnchor(endPoint.x, entry.cx)\n }, endPoint);\n var lineProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, pieProps), entry), {}, {\n fill: 'none',\n stroke: entry.fill\n }, customLabelLineProps), {}, {\n index: i,\n points: [polarToCartesian(entry.cx, entry.cy, entry.outerRadius, midAngle), endPoint],\n key: 'line'\n });\n var realDataKey = dataKey;\n // TODO: compatible to lower versions\n if (_isNil(dataKey) && _isNil(valueKey)) {\n realDataKey = 'value';\n } else if (_isNil(dataKey)) {\n realDataKey = valueKey;\n }\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n React.createElement(Layer, {\n key: \"label-\".concat(i)\n }, labelLine && Pie.renderLabelLineItem(labelLine, lineProps), Pie.renderLabelItem(label, labelProps, getValueByDataKey(entry, realDataKey)))\n );\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-pie-labels\"\n }, labels);\n }\n }, {\n key: \"renderSectorsStatically\",\n value: function renderSectorsStatically(sectors) {\n var _this2 = this;\n var _this$props2 = this.props,\n activeShape = _this$props2.activeShape,\n blendStroke = _this$props2.blendStroke,\n inactiveShapeProp = _this$props2.inactiveShape;\n return sectors.map(function (entry, i) {\n var inactiveShape = inactiveShapeProp && _this2.hasActiveIndex() ? inactiveShapeProp : null;\n var sectorOptions = _this2.isActiveIndex(i) ? activeShape : inactiveShape;\n var sectorProps = _objectSpread(_objectSpread({}, entry), {}, {\n stroke: blendStroke ? entry.fill : entry.stroke\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n ref: function ref(_ref) {\n if (_ref && !_this2.sectorRefs.includes(_ref)) {\n _this2.sectorRefs.push(_ref);\n }\n },\n tabIndex: -1,\n className: \"recharts-pie-sector\"\n }, adaptEventsOfChild(_this2.props, entry, i), {\n key: \"sector-\".concat(i) // eslint-disable-line react/no-array-index-key\n }), Pie.renderSectorItem(sectorOptions, sectorProps));\n });\n }\n }, {\n key: \"renderSectorsWithAnimation\",\n value: function renderSectorsWithAnimation() {\n var _this3 = this;\n var _this$props3 = this.props,\n sectors = _this$props3.sectors,\n isAnimationActive = _this$props3.isAnimationActive,\n animationBegin = _this$props3.animationBegin,\n animationDuration = _this$props3.animationDuration,\n animationEasing = _this$props3.animationEasing,\n animationId = _this$props3.animationId;\n var _this$state = this.state,\n prevSectors = _this$state.prevSectors,\n prevIsAnimationActive = _this$state.prevIsAnimationActive;\n return /*#__PURE__*/React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"pie-\".concat(animationId, \"-\").concat(prevIsAnimationActive),\n onAnimationStart: this.handleAnimationStart,\n onAnimationEnd: this.handleAnimationEnd\n }, function (_ref2) {\n var t = _ref2.t;\n var stepData = [];\n var first = sectors && sectors[0];\n var curAngle = first.startAngle;\n sectors.forEach(function (entry, index) {\n var prev = prevSectors && prevSectors[index];\n var paddingAngle = index > 0 ? _get(entry, 'paddingAngle', 0) : 0;\n if (prev) {\n var angleIp = interpolateNumber(prev.endAngle - prev.startAngle, entry.endAngle - entry.startAngle);\n var latest = _objectSpread(_objectSpread({}, entry), {}, {\n startAngle: curAngle + paddingAngle,\n endAngle: curAngle + angleIp(t) + paddingAngle\n });\n stepData.push(latest);\n curAngle = latest.endAngle;\n } else {\n var endAngle = entry.endAngle,\n startAngle = entry.startAngle;\n var interpolatorAngle = interpolateNumber(0, endAngle - startAngle);\n var deltaAngle = interpolatorAngle(t);\n var _latest = _objectSpread(_objectSpread({}, entry), {}, {\n startAngle: curAngle + paddingAngle,\n endAngle: curAngle + deltaAngle + paddingAngle\n });\n stepData.push(_latest);\n curAngle = _latest.endAngle;\n }\n });\n return /*#__PURE__*/React.createElement(Layer, null, _this3.renderSectorsStatically(stepData));\n });\n }\n }, {\n key: \"attachKeyboardHandlers\",\n value: function attachKeyboardHandlers(pieRef) {\n var _this4 = this;\n // eslint-disable-next-line no-param-reassign\n pieRef.onkeydown = function (e) {\n if (!e.altKey) {\n switch (e.key) {\n case 'ArrowLeft':\n {\n var next = ++_this4.state.sectorToFocus % _this4.sectorRefs.length;\n _this4.sectorRefs[next].focus();\n _this4.setState({\n sectorToFocus: next\n });\n break;\n }\n case 'ArrowRight':\n {\n var _next = --_this4.state.sectorToFocus < 0 ? _this4.sectorRefs.length - 1 : _this4.state.sectorToFocus % _this4.sectorRefs.length;\n _this4.sectorRefs[_next].focus();\n _this4.setState({\n sectorToFocus: _next\n });\n break;\n }\n case 'Escape':\n {\n _this4.sectorRefs[_this4.state.sectorToFocus].blur();\n _this4.setState({\n sectorToFocus: 0\n });\n break;\n }\n default:\n {\n // There is nothing to do here\n }\n }\n }\n };\n }\n }, {\n key: \"renderSectors\",\n value: function renderSectors() {\n var _this$props4 = this.props,\n sectors = _this$props4.sectors,\n isAnimationActive = _this$props4.isAnimationActive;\n var prevSectors = this.state.prevSectors;\n if (isAnimationActive && sectors && sectors.length && (!prevSectors || !_isEqual(prevSectors, sectors))) {\n return this.renderSectorsWithAnimation();\n }\n return this.renderSectorsStatically(sectors);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.pieRef) {\n this.attachKeyboardHandlers(this.pieRef);\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this5 = this;\n var _this$props5 = this.props,\n hide = _this$props5.hide,\n sectors = _this$props5.sectors,\n className = _this$props5.className,\n label = _this$props5.label,\n cx = _this$props5.cx,\n cy = _this$props5.cy,\n innerRadius = _this$props5.innerRadius,\n outerRadius = _this$props5.outerRadius,\n isAnimationActive = _this$props5.isAnimationActive;\n var isAnimationFinished = this.state.isAnimationFinished;\n if (hide || !sectors || !sectors.length || !isNumber(cx) || !isNumber(cy) || !isNumber(innerRadius) || !isNumber(outerRadius)) {\n return null;\n }\n var layerClass = classNames('recharts-pie', className);\n return /*#__PURE__*/React.createElement(Layer, {\n tabIndex: 0,\n className: layerClass,\n ref: function ref(_ref3) {\n _this5.pieRef = _ref3;\n }\n }, this.renderSectors(), label && this.renderLabels(sectors), Label.renderCallByParent(this.props, null, false), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, sectors, false));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (prevState.prevIsAnimationActive !== nextProps.isAnimationActive) {\n return {\n prevIsAnimationActive: nextProps.isAnimationActive,\n prevAnimationId: nextProps.animationId,\n curSectors: nextProps.sectors,\n prevSectors: [],\n isAnimationFinished: true\n };\n }\n if (nextProps.isAnimationActive && nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curSectors: nextProps.sectors,\n prevSectors: prevState.curSectors,\n isAnimationFinished: true\n };\n }\n if (nextProps.sectors !== prevState.curSectors) {\n return {\n curSectors: nextProps.sectors,\n isAnimationFinished: true\n };\n }\n return null;\n }\n }, {\n key: \"getTextAnchor\",\n value: function getTextAnchor(x, cx) {\n if (x > cx) {\n return 'start';\n }\n if (x < cx) {\n return 'end';\n }\n return 'middle';\n }\n }, {\n key: \"renderLabelLineItem\",\n value: function renderLabelLineItem(option, props) {\n if ( /*#__PURE__*/React.isValidElement(option)) {\n return /*#__PURE__*/React.cloneElement(option, props);\n }\n if (_isFunction(option)) {\n return option(props);\n }\n return /*#__PURE__*/React.createElement(Curve, _extends({}, props, {\n type: \"linear\",\n className: \"recharts-pie-label-line\"\n }));\n }\n }, {\n key: \"renderLabelItem\",\n value: function renderLabelItem(option, props, value) {\n if ( /*#__PURE__*/React.isValidElement(option)) {\n return /*#__PURE__*/React.cloneElement(option, props);\n }\n var label = value;\n if (_isFunction(option)) {\n label = option(props);\n if ( /*#__PURE__*/React.isValidElement(label)) {\n return label;\n }\n }\n return /*#__PURE__*/React.createElement(Text, _extends({}, props, {\n alignmentBaseline: \"middle\",\n className: \"recharts-pie-label-text\"\n }), label);\n }\n }, {\n key: \"renderSectorItem\",\n value: function renderSectorItem(option, props) {\n if ( /*#__PURE__*/React.isValidElement(option)) {\n return /*#__PURE__*/React.cloneElement(option, props);\n }\n if (_isFunction(option)) {\n return option(props);\n }\n if (_isPlainObject(option)) {\n return /*#__PURE__*/React.createElement(Sector, _extends({\n tabIndex: -1\n }, props, option));\n }\n return /*#__PURE__*/React.createElement(Sector, _extends({\n tabIndex: -1\n }, props));\n }\n }]);\n return Pie;\n}(PureComponent);\n_defineProperty(Pie, \"displayName\", 'Pie');\n_defineProperty(Pie, \"defaultProps\", {\n stroke: '#fff',\n fill: '#808080',\n legendType: 'rect',\n cx: '50%',\n cy: '50%',\n startAngle: 0,\n endAngle: 360,\n innerRadius: 0,\n outerRadius: '80%',\n paddingAngle: 0,\n labelLine: true,\n hide: false,\n minAngle: 0,\n isAnimationActive: !Global.isSsr,\n animationBegin: 400,\n animationDuration: 1500,\n animationEasing: 'ease',\n nameKey: 'name',\n blendStroke: false\n});\n_defineProperty(Pie, \"parseDeltaAngle\", function (startAngle, endAngle) {\n var sign = mathSign(endAngle - startAngle);\n var deltaAngle = Math.min(Math.abs(endAngle - startAngle), 360);\n return sign * deltaAngle;\n});\n_defineProperty(Pie, \"getRealPieData\", function (item) {\n var _item$props = item.props,\n data = _item$props.data,\n children = _item$props.children;\n var presentationProps = filterProps(item.props);\n var cells = findAllByType(children, Cell);\n if (data && data.length) {\n return data.map(function (entry, index) {\n return _objectSpread(_objectSpread(_objectSpread({\n payload: entry\n }, presentationProps), entry), cells && cells[index] && cells[index].props);\n });\n }\n if (cells && cells.length) {\n return cells.map(function (cell) {\n return _objectSpread(_objectSpread({}, presentationProps), cell.props);\n });\n }\n return [];\n});\n_defineProperty(Pie, \"parseCoordinateOfPie\", function (item, offset) {\n var top = offset.top,\n left = offset.left,\n width = offset.width,\n height = offset.height;\n var maxPieRadius = getMaxRadius(width, height);\n var cx = left + getPercentValue(item.props.cx, width, width / 2);\n var cy = top + getPercentValue(item.props.cy, height, height / 2);\n var innerRadius = getPercentValue(item.props.innerRadius, maxPieRadius, 0);\n var outerRadius = getPercentValue(item.props.outerRadius, maxPieRadius, maxPieRadius * 0.8);\n var maxRadius = item.props.maxRadius || Math.sqrt(width * width + height * height) / 2;\n return {\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n maxRadius: maxRadius\n };\n});\n_defineProperty(Pie, \"getComposedData\", function (_ref4) {\n var item = _ref4.item,\n offset = _ref4.offset;\n var pieData = Pie.getRealPieData(item);\n if (!pieData || !pieData.length) {\n return null;\n }\n var _item$props2 = item.props,\n cornerRadius = _item$props2.cornerRadius,\n startAngle = _item$props2.startAngle,\n endAngle = _item$props2.endAngle,\n paddingAngle = _item$props2.paddingAngle,\n dataKey = _item$props2.dataKey,\n nameKey = _item$props2.nameKey,\n valueKey = _item$props2.valueKey,\n tooltipType = _item$props2.tooltipType;\n var minAngle = Math.abs(item.props.minAngle);\n var coordinate = Pie.parseCoordinateOfPie(item, offset);\n var deltaAngle = Pie.parseDeltaAngle(startAngle, endAngle);\n var absDeltaAngle = Math.abs(deltaAngle);\n var realDataKey = dataKey;\n if (_isNil(dataKey) && _isNil(valueKey)) {\n warn(false, \"Use \\\"dataKey\\\" to specify the value of pie,\\n the props \\\"valueKey\\\" will be deprecated in 1.1.0\");\n realDataKey = 'value';\n } else if (_isNil(dataKey)) {\n warn(false, \"Use \\\"dataKey\\\" to specify the value of pie,\\n the props \\\"valueKey\\\" will be deprecated in 1.1.0\");\n realDataKey = valueKey;\n }\n var notZeroItemCount = pieData.filter(function (entry) {\n return getValueByDataKey(entry, realDataKey, 0) !== 0;\n }).length;\n var totalPadingAngle = (absDeltaAngle >= 360 ? notZeroItemCount : notZeroItemCount - 1) * paddingAngle;\n var realTotalAngle = absDeltaAngle - notZeroItemCount * minAngle - totalPadingAngle;\n var sum = pieData.reduce(function (result, entry) {\n var val = getValueByDataKey(entry, realDataKey, 0);\n return result + (isNumber(val) ? val : 0);\n }, 0);\n var sectors;\n if (sum > 0) {\n var prev;\n sectors = pieData.map(function (entry, i) {\n var val = getValueByDataKey(entry, realDataKey, 0);\n var name = getValueByDataKey(entry, nameKey, i);\n var percent = (isNumber(val) ? val : 0) / sum;\n var tempStartAngle;\n if (i) {\n tempStartAngle = prev.endAngle + mathSign(deltaAngle) * paddingAngle * (val !== 0 ? 1 : 0);\n } else {\n tempStartAngle = startAngle;\n }\n var tempEndAngle = tempStartAngle + mathSign(deltaAngle) * ((val !== 0 ? minAngle : 0) + percent * realTotalAngle);\n var midAngle = (tempStartAngle + tempEndAngle) / 2;\n var middleRadius = (coordinate.innerRadius + coordinate.outerRadius) / 2;\n var tooltipPayload = [{\n name: name,\n value: val,\n payload: entry,\n dataKey: realDataKey,\n type: tooltipType\n }];\n var tooltipPosition = polarToCartesian(coordinate.cx, coordinate.cy, middleRadius, midAngle);\n prev = _objectSpread(_objectSpread(_objectSpread({\n percent: percent,\n cornerRadius: cornerRadius,\n name: name,\n tooltipPayload: tooltipPayload,\n midAngle: midAngle,\n middleRadius: middleRadius,\n tooltipPosition: tooltipPosition\n }, entry), coordinate), {}, {\n value: getValueByDataKey(entry, realDataKey),\n startAngle: tempStartAngle,\n endAngle: tempEndAngle,\n payload: entry,\n paddingAngle: mathSign(deltaAngle) * paddingAngle\n });\n return prev;\n });\n }\n return _objectSpread(_objectSpread({}, coordinate), {}, {\n sectors: sectors,\n data: pieData\n });\n});","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nmodule.exports = baseRange;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var baseRange = require('./_baseRange'),\n isIterateeCall = require('./_isIterateeCall'),\n toFinite = require('./toFinite');\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nmodule.exports = createRange;\n","var createRange = require('./_createRange');\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nmodule.exports = range;\n","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (!name) {\n return null;\n }\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var result = PREFIX_LIST.reduce(function (res, entry) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, entry + camelName, value));\n }, {});\n result[name] = value;\n return result;\n};","import _isFunction from \"lodash/isFunction\";\nimport _range from \"lodash/range\";\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Brush\n */\nimport React, { PureComponent, Children } from 'react';\nimport classNames from 'classnames';\nimport { scalePoint } from 'victory-vendor/d3-scale';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport { isNumber } from '../util/DataUtils';\nimport { generatePrefixStyle } from '../util/CssPrefixUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar createScale = function createScale(_ref) {\n var data = _ref.data,\n startIndex = _ref.startIndex,\n endIndex = _ref.endIndex,\n x = _ref.x,\n width = _ref.width,\n travellerWidth = _ref.travellerWidth;\n if (!data || !data.length) {\n return {};\n }\n var len = data.length;\n var scale = scalePoint().domain(_range(0, len)).range([x, x + width - travellerWidth]);\n var scaleValues = scale.domain().map(function (entry) {\n return scale(entry);\n });\n return {\n isTextActive: false,\n isSlideMoving: false,\n isTravellerMoving: false,\n startX: scale(startIndex),\n endX: scale(endIndex),\n scale: scale,\n scaleValues: scaleValues\n };\n};\nvar isTouch = function isTouch(e) {\n return e.changedTouches && !!e.changedTouches.length;\n};\nexport var Brush = /*#__PURE__*/function (_PureComponent) {\n _inherits(Brush, _PureComponent);\n var _super = _createSuper(Brush);\n function Brush(props) {\n var _this;\n _classCallCheck(this, Brush);\n _this = _super.call(this, props);\n _defineProperty(_assertThisInitialized(_this), \"handleDrag\", function (e) {\n if (_this.leaveTimer) {\n clearTimeout(_this.leaveTimer);\n _this.leaveTimer = null;\n }\n if (_this.state.isTravellerMoving) {\n _this.handleTravellerMove(e);\n } else if (_this.state.isSlideMoving) {\n _this.handleSlideDrag(e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleTouchMove\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleDrag(e.changedTouches[0]);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleDragEnd\", function () {\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: false\n });\n _this.detachDragEndListener();\n });\n _defineProperty(_assertThisInitialized(_this), \"handleLeaveWrapper\", function () {\n if (_this.state.isTravellerMoving || _this.state.isSlideMoving) {\n _this.leaveTimer = window.setTimeout(_this.handleDragEnd, _this.props.leaveTimeOut);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleEnterSlideOrTraveller\", function () {\n _this.setState({\n isTextActive: true\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"handleLeaveSlideOrTraveller\", function () {\n _this.setState({\n isTextActive: false\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"handleSlideDragStart\", function (e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: true,\n slideMoveStartX: event.pageX\n });\n _this.attachDragEndListener();\n });\n _this.travellerDragStartHandlers = {\n startX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'startX'),\n endX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'endX')\n };\n _this.state = {};\n return _this;\n }\n _createClass(Brush, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.leaveTimer) {\n clearTimeout(this.leaveTimer);\n this.leaveTimer = null;\n }\n this.detachDragEndListener();\n }\n }, {\n key: \"getIndex\",\n value: function getIndex(_ref2) {\n var startX = _ref2.startX,\n endX = _ref2.endX;\n var scaleValues = this.state.scaleValues;\n var _this$props = this.props,\n gap = _this$props.gap,\n data = _this$props.data;\n var lastIndex = data.length - 1;\n var min = Math.min(startX, endX);\n var max = Math.max(startX, endX);\n var minIndex = Brush.getIndexInRange(scaleValues, min);\n var maxIndex = Brush.getIndexInRange(scaleValues, max);\n return {\n startIndex: minIndex - minIndex % gap,\n endIndex: maxIndex === lastIndex ? lastIndex : maxIndex - maxIndex % gap\n };\n }\n }, {\n key: \"getTextOfTick\",\n value: function getTextOfTick(index) {\n var _this$props2 = this.props,\n data = _this$props2.data,\n tickFormatter = _this$props2.tickFormatter,\n dataKey = _this$props2.dataKey;\n var text = getValueByDataKey(data[index], dataKey, index);\n return _isFunction(tickFormatter) ? tickFormatter(text, index) : text;\n }\n }, {\n key: \"attachDragEndListener\",\n value: function attachDragEndListener() {\n window.addEventListener('mouseup', this.handleDragEnd, true);\n window.addEventListener('touchend', this.handleDragEnd, true);\n window.addEventListener('mousemove', this.handleDrag, true);\n }\n }, {\n key: \"detachDragEndListener\",\n value: function detachDragEndListener() {\n window.removeEventListener('mouseup', this.handleDragEnd, true);\n window.removeEventListener('touchend', this.handleDragEnd, true);\n window.removeEventListener('mousemove', this.handleDrag, true);\n }\n }, {\n key: \"handleSlideDrag\",\n value: function handleSlideDrag(e) {\n var _this$state = this.state,\n slideMoveStartX = _this$state.slideMoveStartX,\n startX = _this$state.startX,\n endX = _this$state.endX;\n var _this$props3 = this.props,\n x = _this$props3.x,\n width = _this$props3.width,\n travellerWidth = _this$props3.travellerWidth,\n startIndex = _this$props3.startIndex,\n endIndex = _this$props3.endIndex,\n onChange = _this$props3.onChange;\n var delta = e.pageX - slideMoveStartX;\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - endX, x + width - travellerWidth - startX);\n } else if (delta < 0) {\n delta = Math.max(delta, x - startX, x - endX);\n }\n var newIndex = this.getIndex({\n startX: startX + delta,\n endX: endX + delta\n });\n if ((newIndex.startIndex !== startIndex || newIndex.endIndex !== endIndex) && onChange) {\n onChange(newIndex);\n }\n this.setState({\n startX: startX + delta,\n endX: endX + delta,\n slideMoveStartX: e.pageX\n });\n }\n }, {\n key: \"handleTravellerDragStart\",\n value: function handleTravellerDragStart(id, e) {\n var event = isTouch(e) ? e.changedTouches[0] : e;\n this.setState({\n isSlideMoving: false,\n isTravellerMoving: true,\n movingTravellerId: id,\n brushMoveStartX: event.pageX\n });\n this.attachDragEndListener();\n }\n }, {\n key: \"handleTravellerMove\",\n value: function handleTravellerMove(e) {\n var _this$setState;\n var _this$state2 = this.state,\n brushMoveStartX = _this$state2.brushMoveStartX,\n movingTravellerId = _this$state2.movingTravellerId,\n endX = _this$state2.endX,\n startX = _this$state2.startX;\n var prevValue = this.state[movingTravellerId];\n var _this$props4 = this.props,\n x = _this$props4.x,\n width = _this$props4.width,\n travellerWidth = _this$props4.travellerWidth,\n onChange = _this$props4.onChange,\n gap = _this$props4.gap,\n data = _this$props4.data;\n var params = {\n startX: this.state.startX,\n endX: this.state.endX\n };\n var delta = e.pageX - brushMoveStartX;\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - prevValue);\n } else if (delta < 0) {\n delta = Math.max(delta, x - prevValue);\n }\n params[movingTravellerId] = prevValue + delta;\n var newIndex = this.getIndex(params);\n var startIndex = newIndex.startIndex,\n endIndex = newIndex.endIndex;\n var isFullGap = function isFullGap() {\n var lastIndex = data.length - 1;\n if (movingTravellerId === 'startX' && (endX > startX ? startIndex % gap === 0 : endIndex % gap === 0) || endX < startX && endIndex === lastIndex || movingTravellerId === 'endX' && (endX > startX ? endIndex % gap === 0 : startIndex % gap === 0) || endX > startX && endIndex === lastIndex) {\n return true;\n }\n return false;\n };\n this.setState((_this$setState = {}, _defineProperty(_this$setState, movingTravellerId, prevValue + delta), _defineProperty(_this$setState, \"brushMoveStartX\", e.pageX), _this$setState), function () {\n if (onChange) {\n if (isFullGap()) {\n onChange(newIndex);\n }\n }\n });\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this$props5 = this.props,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height,\n fill = _this$props5.fill,\n stroke = _this$props5.stroke;\n return /*#__PURE__*/React.createElement(\"rect\", {\n stroke: stroke,\n fill: fill,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderPanorama\",\n value: function renderPanorama() {\n var _this$props6 = this.props,\n x = _this$props6.x,\n y = _this$props6.y,\n width = _this$props6.width,\n height = _this$props6.height,\n data = _this$props6.data,\n children = _this$props6.children,\n padding = _this$props6.padding;\n var chartElement = Children.only(children);\n if (!chartElement) {\n return null;\n }\n return /*#__PURE__*/React.cloneElement(chartElement, {\n x: x,\n y: y,\n width: width,\n height: height,\n margin: padding,\n compact: true,\n data: data\n });\n }\n }, {\n key: \"renderTravellerLayer\",\n value: function renderTravellerLayer(travellerX, id) {\n var _this$props7 = this.props,\n y = _this$props7.y,\n travellerWidth = _this$props7.travellerWidth,\n height = _this$props7.height,\n traveller = _this$props7.traveller;\n var x = Math.max(travellerX, this.props.x);\n var travellerProps = _objectSpread(_objectSpread({}, filterProps(this.props)), {}, {\n x: x,\n y: y,\n width: travellerWidth,\n height: height\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-brush-traveller\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.travellerDragStartHandlers[id],\n onTouchStart: this.travellerDragStartHandlers[id],\n style: {\n cursor: 'col-resize'\n }\n }, Brush.renderTraveller(traveller, travellerProps));\n }\n }, {\n key: \"renderSlide\",\n value: function renderSlide(startX, endX) {\n var _this$props8 = this.props,\n y = _this$props8.y,\n height = _this$props8.height,\n stroke = _this$props8.stroke,\n travellerWidth = _this$props8.travellerWidth;\n var x = Math.min(startX, endX) + travellerWidth;\n var width = Math.max(Math.abs(endX - startX) - travellerWidth, 0);\n return /*#__PURE__*/React.createElement(\"rect\", {\n className: \"recharts-brush-slide\",\n onMouseEnter: this.handleEnterSlideOrTraveller,\n onMouseLeave: this.handleLeaveSlideOrTraveller,\n onMouseDown: this.handleSlideDragStart,\n onTouchStart: this.handleSlideDragStart,\n style: {\n cursor: 'move'\n },\n stroke: \"none\",\n fill: stroke,\n fillOpacity: 0.2,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderText\",\n value: function renderText() {\n var _this$props9 = this.props,\n startIndex = _this$props9.startIndex,\n endIndex = _this$props9.endIndex,\n y = _this$props9.y,\n height = _this$props9.height,\n travellerWidth = _this$props9.travellerWidth,\n stroke = _this$props9.stroke;\n var _this$state3 = this.state,\n startX = _this$state3.startX,\n endX = _this$state3.endX;\n var offset = 5;\n var attrs = {\n pointerEvents: 'none',\n fill: stroke\n };\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-brush-texts\"\n }, /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"end\",\n verticalAnchor: \"middle\",\n x: Math.min(startX, endX) - offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(startIndex)), /*#__PURE__*/React.createElement(Text, _extends({\n textAnchor: \"start\",\n verticalAnchor: \"middle\",\n x: Math.max(startX, endX) + travellerWidth + offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(endIndex)));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props10 = this.props,\n data = _this$props10.data,\n className = _this$props10.className,\n children = _this$props10.children,\n x = _this$props10.x,\n y = _this$props10.y,\n width = _this$props10.width,\n height = _this$props10.height,\n alwaysShowText = _this$props10.alwaysShowText;\n var _this$state4 = this.state,\n startX = _this$state4.startX,\n endX = _this$state4.endX,\n isTextActive = _this$state4.isTextActive,\n isSlideMoving = _this$state4.isSlideMoving,\n isTravellerMoving = _this$state4.isTravellerMoving;\n if (!data || !data.length || !isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || width <= 0 || height <= 0) {\n return null;\n }\n var layerClass = classNames('recharts-brush', className);\n var isPanoramic = React.Children.count(children) === 1;\n var style = generatePrefixStyle('userSelect', 'none');\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass,\n onMouseLeave: this.handleLeaveWrapper,\n onTouchMove: this.handleTouchMove,\n style: style\n }, this.renderBackground(), isPanoramic && this.renderPanorama(), this.renderSlide(startX, endX), this.renderTravellerLayer(startX, 'startX'), this.renderTravellerLayer(endX, 'endX'), (isTextActive || isSlideMoving || isTravellerMoving || alwaysShowText) && this.renderText());\n }\n }], [{\n key: \"renderDefaultTraveller\",\n value: function renderDefaultTraveller(props) {\n var x = props.x,\n y = props.y,\n width = props.width,\n height = props.height,\n stroke = props.stroke;\n var lineY = Math.floor(y + height / 2) - 1;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n fill: stroke,\n stroke: \"none\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY,\n x2: x + width - 1,\n y2: lineY,\n fill: \"none\",\n stroke: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY + 2,\n x2: x + width - 1,\n y2: lineY + 2,\n fill: \"none\",\n stroke: \"#fff\"\n }));\n }\n }, {\n key: \"renderTraveller\",\n value: function renderTraveller(option, props) {\n var rectangle;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rectangle = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n rectangle = option(props);\n } else {\n rectangle = Brush.renderDefaultTraveller(props);\n }\n return rectangle;\n }\n }, {\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n var data = nextProps.data,\n width = nextProps.width,\n x = nextProps.x,\n travellerWidth = nextProps.travellerWidth,\n updateId = nextProps.updateId,\n startIndex = nextProps.startIndex,\n endIndex = nextProps.endIndex;\n if (data !== prevState.prevData || updateId !== prevState.prevUpdateId) {\n return _objectSpread({\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width\n }, data && data.length ? createScale({\n data: data,\n width: width,\n x: x,\n travellerWidth: travellerWidth,\n startIndex: startIndex,\n endIndex: endIndex\n }) : {\n scale: null,\n scaleValues: null\n });\n }\n if (prevState.scale && (width !== prevState.prevWidth || x !== prevState.prevX || travellerWidth !== prevState.prevTravellerWidth)) {\n prevState.scale.range([x, x + width - travellerWidth]);\n var scaleValues = prevState.scale.domain().map(function (entry) {\n return prevState.scale(entry);\n });\n return {\n prevData: data,\n prevTravellerWidth: travellerWidth,\n prevUpdateId: updateId,\n prevX: x,\n prevWidth: width,\n startX: prevState.scale(nextProps.startIndex),\n endX: prevState.scale(nextProps.endIndex),\n scaleValues: scaleValues\n };\n }\n return null;\n }\n }, {\n key: \"getIndexInRange\",\n value: function getIndexInRange(range, x) {\n var len = range.length;\n var start = 0;\n var end = len - 1;\n while (end - start > 1) {\n var middle = Math.floor((start + end) / 2);\n if (range[middle] > x) {\n end = middle;\n } else {\n start = middle;\n }\n }\n return x >= range[end] ? end : start;\n }\n }]);\n return Brush;\n}(PureComponent);\n_defineProperty(Brush, \"displayName\", 'Brush');\n_defineProperty(Brush, \"defaultProps\", {\n height: 40,\n travellerWidth: 5,\n gap: 1,\n fill: '#fff',\n stroke: '#666',\n padding: {\n top: 1,\n right: 1,\n bottom: 1,\n left: 1\n },\n leaveTimeOut: 1000,\n alwaysShowText: false\n});","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n}\n\nmodule.exports = baseSome;\n","var arraySome = require('./_arraySome'),\n baseIteratee = require('./_baseIteratee'),\n baseSome = require('./_baseSome'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\nfunction some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = some;\n","export var ifOverflowMatches = function ifOverflowMatches(props, value) {\n var alwaysShow = props.alwaysShow;\n var ifOverflow = props.ifOverflow;\n if (alwaysShow) {\n ifOverflow = 'extendDomain';\n }\n return ifOverflow === value;\n};","/**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\nfunction arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = arrayEvery;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\nfunction baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n}\n\nmodule.exports = baseEvery;\n","var arrayEvery = require('./_arrayEvery'),\n baseEvery = require('./_baseEvery'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\nfunction every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = every;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var baseAssignValue = require('./_baseAssignValue'),\n baseForOwn = require('./_baseForOwn'),\n baseIteratee = require('./_baseIteratee');\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n var result = {};\n iteratee = baseIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n}\n\nmodule.exports = mapValues;\n","import _isNil from \"lodash/isNil\";\nimport _isEqual from \"lodash/isEqual\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isArray from \"lodash/isArray\";\nvar _excluded = [\"value\", \"background\"];\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Render a group of bar\n */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\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 { uniqueId, mathSign, interpolateNumber } from '../util/DataUtils';\nimport { filterProps, findAllByType } from '../util/ReactUtils';\nimport { Global } from '../util/Global';\nimport { getCateCoordinateOfBar, getValueByDataKey, truncateByDomain, getBaseValueOfBar, findPositionOfBar, getTooltipItem } from '../util/ChartUtils';\nimport { adaptEventsOfChild } from '../util/types';\nexport var Bar = /*#__PURE__*/function (_PureComponent) {\n _inherits(Bar, _PureComponent);\n var _super = _createSuper(Bar);\n function Bar() {\n var _this;\n _classCallCheck(this, Bar);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isAnimationFinished: false\n });\n _defineProperty(_assertThisInitialized(_this), \"id\", uniqueId('recharts-bar-'));\n _defineProperty(_assertThisInitialized(_this), \"handleAnimationEnd\", function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n _this.setState({\n isAnimationFinished: true\n });\n if (onAnimationEnd) {\n onAnimationEnd();\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleAnimationStart\", function () {\n var onAnimationStart = _this.props.onAnimationStart;\n _this.setState({\n isAnimationFinished: false\n });\n if (onAnimationStart) {\n onAnimationStart();\n }\n });\n return _this;\n }\n _createClass(Bar, [{\n key: \"renderRectanglesStatically\",\n value: function renderRectanglesStatically(data) {\n var _this2 = this;\n var shape = this.props.shape;\n var baseProps = filterProps(this.props);\n return data && data.map(function (entry, i) {\n var props = _objectSpread(_objectSpread(_objectSpread({}, baseProps), entry), {}, {\n index: i\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-bar-rectangle\"\n }, adaptEventsOfChild(_this2.props, entry, i), {\n key: \"rectangle-\".concat(i) // eslint-disable-line react/no-array-index-key\n ,\n role: \"img\"\n }), Bar.renderRectangle(shape, props));\n });\n }\n }, {\n key: \"renderRectanglesWithAnimation\",\n value: function renderRectanglesWithAnimation() {\n var _this3 = this;\n var _this$props = this.props,\n data = _this$props.data,\n layout = _this$props.layout,\n isAnimationActive = _this$props.isAnimationActive,\n animationBegin = _this$props.animationBegin,\n animationDuration = _this$props.animationDuration,\n animationEasing = _this$props.animationEasing,\n animationId = _this$props.animationId;\n var prevData = this.state.prevData;\n return /*#__PURE__*/React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"bar-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n var stepData = data.map(function (entry, index) {\n var prev = prevData && prevData[index];\n if (prev) {\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n var interpolatorWidth = interpolateNumber(prev.width, entry.width);\n var interpolatorHeight = interpolateNumber(prev.height, entry.height);\n return _objectSpread(_objectSpread({}, entry), {}, {\n x: interpolatorX(t),\n y: interpolatorY(t),\n width: interpolatorWidth(t),\n height: interpolatorHeight(t)\n });\n }\n if (layout === 'horizontal') {\n var _interpolatorHeight = interpolateNumber(0, entry.height);\n var h = _interpolatorHeight(t);\n return _objectSpread(_objectSpread({}, entry), {}, {\n y: entry.y + entry.height - h,\n height: h\n });\n }\n var interpolator = interpolateNumber(0, entry.width);\n var w = interpolator(t);\n return _objectSpread(_objectSpread({}, entry), {}, {\n width: w\n });\n });\n return /*#__PURE__*/React.createElement(Layer, null, _this3.renderRectanglesStatically(stepData));\n });\n }\n }, {\n key: \"renderRectangles\",\n value: function renderRectangles() {\n var _this$props2 = this.props,\n data = _this$props2.data,\n isAnimationActive = _this$props2.isAnimationActive;\n var prevData = this.state.prevData;\n if (isAnimationActive && data && data.length && (!prevData || !_isEqual(prevData, data))) {\n return this.renderRectanglesWithAnimation();\n }\n return this.renderRectanglesStatically(data);\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this4 = this;\n var data = this.props.data;\n var backgroundProps = filterProps(this.props.background);\n return data.map(function (entry, i) {\n var value = entry.value,\n background = entry.background,\n rest = _objectWithoutProperties(entry, _excluded);\n if (!background) {\n return null;\n }\n var props = _objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, rest), {}, {\n fill: '#eee'\n }, background), backgroundProps), adaptEventsOfChild(_this4.props, entry, i)), {}, {\n index: i,\n key: \"background-bar-\".concat(i),\n className: 'recharts-bar-background-rectangle'\n });\n return Bar.renderRectangle(_this4.props.background, props);\n });\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar(needClip, clipPathId) {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n var _this$props3 = this.props,\n data = _this$props3.data,\n xAxis = _this$props3.xAxis,\n yAxis = _this$props3.yAxis,\n layout = _this$props3.layout,\n children = _this$props3.children;\n var errorBarItems = findAllByType(children, ErrorBar);\n if (!errorBarItems) {\n return null;\n }\n var offset = layout === 'vertical' ? data[0].height / 2 : data[0].width / 2;\n 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 var errorBarProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n };\n return /*#__PURE__*/React.createElement(Layer, errorBarProps, errorBarItems.map(function (item, i) {\n return /*#__PURE__*/React.cloneElement(item, {\n key: \"error-bar-\".concat(i),\n // eslint-disable-line react/no-array-index-key\n data: data,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: layout,\n offset: offset,\n dataPointFormatter: dataPointFormatter\n });\n }));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n hide = _this$props4.hide,\n data = _this$props4.data,\n className = _this$props4.className,\n xAxis = _this$props4.xAxis,\n yAxis = _this$props4.yAxis,\n left = _this$props4.left,\n top = _this$props4.top,\n width = _this$props4.width,\n height = _this$props4.height,\n isAnimationActive = _this$props4.isAnimationActive,\n background = _this$props4.background,\n id = _this$props4.id;\n if (hide || !data || !data.length) {\n return null;\n }\n var isAnimationFinished = this.state.isAnimationFinished;\n var layerClass = classNames('recharts-bar', className);\n var needClip = xAxis && xAxis.allowDataOverflow || yAxis && yAxis.allowDataOverflow;\n var clipPathId = _isNil(id) ? this.id : id;\n return /*#__PURE__*/React.createElement(Layer, {\n className: layerClass\n }, needClip ? /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left,\n y: top,\n width: width,\n height: height\n }))) : null, /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-bar-rectangles\",\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n }, background ? this.renderBackground() : null, this.renderRectangles()), this.renderErrorBar(needClip, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, data));\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, prevState) {\n if (nextProps.animationId !== prevState.prevAnimationId) {\n return {\n prevAnimationId: nextProps.animationId,\n curData: nextProps.data,\n prevData: prevState.curData\n };\n }\n if (nextProps.data !== prevState.curData) {\n return {\n curData: nextProps.data\n };\n }\n return null;\n }\n }, {\n key: \"renderRectangle\",\n value: function renderRectangle(option, props) {\n var rectangle;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rectangle = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n rectangle = option(props);\n } else {\n rectangle = /*#__PURE__*/React.createElement(Rectangle, props);\n }\n return rectangle;\n }\n }]);\n return Bar;\n}(PureComponent);\n_defineProperty(Bar, \"displayName\", 'Bar');\n_defineProperty(Bar, \"defaultProps\", {\n xAxisId: 0,\n yAxisId: 0,\n legendType: 'rect',\n minPointSize: 0,\n hide: false,\n // data of bar\n data: [],\n layout: 'vertical',\n isAnimationActive: !Global.isSsr,\n animationBegin: 0,\n animationDuration: 400,\n animationEasing: 'ease'\n});\n/**\n * Compose the data of each group\n * @param {Object} props Props for the component\n * @param {Object} item An instance of Bar\n * @param {Array} barPosition The offset and size of each bar\n * @param {Object} xAxis The configuration of x-axis\n * @param {Object} yAxis The configuration of y-axis\n * @param {Array} stackedData The stacked data of a bar item\n * @return{Array} Composed data\n */\n_defineProperty(Bar, \"getComposedData\", function (_ref2) {\n var props = _ref2.props,\n item = _ref2.item,\n barPosition = _ref2.barPosition,\n bandSize = _ref2.bandSize,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n stackedData = _ref2.stackedData,\n dataStartIndex = _ref2.dataStartIndex,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var pos = findPositionOfBar(barPosition, item);\n if (!pos) {\n return null;\n }\n var layout = props.layout;\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n children = _item$props.children,\n minPointSize = _item$props.minPointSize;\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n var stackedDomain = stackedData ? numericAxis.scale.domain() : null;\n var baseValue = getBaseValueOfBar({\n numericAxis: numericAxis\n });\n var cells = findAllByType(children, Cell);\n var rects = displayedData.map(function (entry, index) {\n var value, x, y, width, height, background;\n if (stackedData) {\n value = truncateByDomain(stackedData[dataStartIndex + index], stackedDomain);\n } else {\n value = getValueByDataKey(entry, dataKey);\n if (!_isArray(value)) {\n value = [baseValue, value];\n }\n }\n if (layout === 'horizontal') {\n var _ref4;\n var _ref3 = [yAxis.scale(value[0]), yAxis.scale(value[1])],\n baseValueScale = _ref3[0],\n currentValueScale = _ref3[1];\n x = getCateCoordinateOfBar({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n y = (_ref4 = currentValueScale !== null && currentValueScale !== void 0 ? currentValueScale : baseValueScale) !== null && _ref4 !== void 0 ? _ref4 : undefined;\n width = pos.size;\n var computedHeight = baseValueScale - currentValueScale;\n height = Number.isNaN(computedHeight) ? 0 : computedHeight;\n background = {\n x: x,\n y: yAxis.y,\n width: width,\n height: yAxis.height\n };\n if (Math.abs(minPointSize) > 0 && Math.abs(height) < Math.abs(minPointSize)) {\n var delta = mathSign(height || minPointSize) * (Math.abs(minPointSize) - Math.abs(height));\n y -= delta;\n height += delta;\n }\n } else {\n var _ref5 = [xAxis.scale(value[0]), xAxis.scale(value[1])],\n _baseValueScale = _ref5[0],\n _currentValueScale = _ref5[1];\n x = _baseValueScale;\n y = getCateCoordinateOfBar({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n width = _currentValueScale - _baseValueScale;\n height = pos.size;\n background = {\n x: xAxis.x,\n y: y,\n width: xAxis.width,\n height: height\n };\n if (Math.abs(minPointSize) > 0 && Math.abs(width) < Math.abs(minPointSize)) {\n var _delta = mathSign(width || minPointSize) * (Math.abs(minPointSize) - Math.abs(width));\n width += _delta;\n }\n }\n return _objectSpread(_objectSpread(_objectSpread({}, entry), {}, {\n x: x,\n y: y,\n width: width,\n height: height,\n value: stackedData ? value : value[1],\n payload: entry,\n background: background\n }, cells && cells[index] && cells[index].props), {}, {\n tooltipPayload: [getTooltipItem(item, entry)],\n tooltipPosition: {\n x: x + width / 2,\n y: y + height / 2\n }\n });\n });\n return _objectSpread({\n data: rects,\n layout: layout\n }, offset);\n});","import _every from \"lodash/every\";\nimport _mapValues from \"lodash/mapValues\";\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { getTicksOfScale, parseScale, checkDomainOfScale, getBandSizeOfAxis } from './ChartUtils';\nimport { findChildByType } from './ReactUtils';\nimport { getPercentValue } from './DataUtils';\nimport { Bar } from '../cartesian/Bar';\n\n/**\n * Calculate the scale function, position, width, height of axes\n * @param {Object} props Latest props\n * @param {Object} axisMap The configuration of axes\n * @param {Object} offset The offset of main part in the svg element\n * @param {String} axisType The type of axes, x-axis or y-axis\n * @param {String} chartName The name of chart\n * @return {Object} Configuration\n */\nexport var formatAxisMap = function formatAxisMap(props, axisMap, offset, axisType, chartName) {\n var width = props.width,\n height = props.height,\n layout = props.layout,\n children = props.children;\n var ids = Object.keys(axisMap);\n var steps = {\n left: offset.left,\n leftMirror: offset.left,\n right: width - offset.right,\n rightMirror: width - offset.right,\n top: offset.top,\n topMirror: offset.top,\n bottom: height - offset.bottom,\n bottomMirror: height - offset.bottom\n };\n var hasBar = !!findChildByType(children, Bar);\n return ids.reduce(function (result, id) {\n var axis = axisMap[id];\n var orientation = axis.orientation,\n domain = axis.domain,\n _axis$padding = axis.padding,\n padding = _axis$padding === void 0 ? {} : _axis$padding,\n mirror = axis.mirror,\n reversed = axis.reversed;\n var offsetKey = \"\".concat(orientation).concat(mirror ? 'Mirror' : '');\n var calculatedPadding, range, x, y, needSpace;\n if (axis.type === 'number' && (axis.padding === 'gap' || axis.padding === 'no-gap')) {\n var diff = domain[1] - domain[0];\n var smallestDistanceBetweenValues = Infinity;\n var sortedValues = axis.categoricalDomain.sort();\n sortedValues.forEach(function (value, index) {\n if (index > 0) {\n smallestDistanceBetweenValues = Math.min((value || 0) - (sortedValues[index - 1] || 0), smallestDistanceBetweenValues);\n }\n });\n var smallestDistanceInPercent = smallestDistanceBetweenValues / diff;\n var rangeWidth = axis.layout === 'vertical' ? offset.height : offset.width;\n if (axis.padding === 'gap') {\n calculatedPadding = smallestDistanceInPercent * rangeWidth / 2;\n }\n if (axis.padding === 'no-gap') {\n var gap = getPercentValue(props.barCategoryGap, smallestDistanceInPercent * rangeWidth);\n var halfBand = smallestDistanceInPercent * rangeWidth / 2;\n calculatedPadding = halfBand - gap - (halfBand - gap) / rangeWidth * gap;\n }\n }\n if (axisType === 'xAxis') {\n range = [offset.left + (padding.left || 0) + (calculatedPadding || 0), offset.left + offset.width - (padding.right || 0) - (calculatedPadding || 0)];\n } else if (axisType === 'yAxis') {\n range = layout === 'horizontal' ? [offset.top + offset.height - (padding.bottom || 0), offset.top + (padding.top || 0)] : [offset.top + (padding.top || 0) + (calculatedPadding || 0), offset.top + offset.height - (padding.bottom || 0) - (calculatedPadding || 0)];\n } else {\n range = axis.range;\n }\n if (reversed) {\n range = [range[1], range[0]];\n }\n var _parseScale = parseScale(axis, chartName, hasBar),\n scale = _parseScale.scale,\n realScaleType = _parseScale.realScaleType;\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread(_objectSpread({}, axis), {}, {\n realScaleType: realScaleType\n }));\n if (axisType === 'xAxis') {\n needSpace = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;\n x = offset.left;\n y = steps[offsetKey] - needSpace * axis.height;\n } else if (axisType === 'yAxis') {\n needSpace = orientation === 'left' && !mirror || orientation === 'right' && mirror;\n x = steps[offsetKey] - needSpace * axis.width;\n y = offset.top;\n }\n var finalAxis = _objectSpread(_objectSpread(_objectSpread({}, axis), ticks), {}, {\n realScaleType: realScaleType,\n x: x,\n y: y,\n scale: scale,\n width: axisType === 'xAxis' ? offset.width : axis.width,\n height: axisType === 'yAxis' ? offset.height : axis.height\n });\n finalAxis.bandSize = getBandSizeOfAxis(finalAxis, ticks);\n if (!axis.hide && axisType === 'xAxis') {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.height;\n } else if (!axis.hide) {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.width;\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, id, finalAxis));\n }, {});\n};\nexport var rectWithPoints = function rectWithPoints(_ref, _ref2) {\n var x1 = _ref.x,\n y1 = _ref.y;\n var x2 = _ref2.x,\n y2 = _ref2.y;\n return {\n x: Math.min(x1, x2),\n y: Math.min(y1, y2),\n width: Math.abs(x2 - x1),\n height: Math.abs(y2 - y1)\n };\n};\n\n/**\n * Compute the x, y, width, and height of a box from two reference points.\n * @param {Object} coords x1, x2, y1, and y2\n * @return {Object} object\n */\nexport var rectWithCoords = function rectWithCoords(_ref3) {\n var x1 = _ref3.x1,\n y1 = _ref3.y1,\n x2 = _ref3.x2,\n y2 = _ref3.y2;\n return rectWithPoints({\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n });\n};\nexport var ScaleHelper = /*#__PURE__*/function () {\n function ScaleHelper(scale) {\n _classCallCheck(this, ScaleHelper);\n this.scale = scale;\n }\n _createClass(ScaleHelper, [{\n key: \"domain\",\n get: function get() {\n return this.scale.domain;\n }\n }, {\n key: \"range\",\n get: function get() {\n return this.scale.range;\n }\n }, {\n key: \"rangeMin\",\n get: function get() {\n return this.range()[0];\n }\n }, {\n key: \"rangeMax\",\n get: function get() {\n return this.range()[1];\n }\n }, {\n key: \"bandwidth\",\n get: function get() {\n return this.scale.bandwidth;\n }\n }, {\n key: \"apply\",\n value: function apply(value) {\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref4.bandAware,\n position = _ref4.position;\n if (value === undefined) {\n return undefined;\n }\n if (position) {\n switch (position) {\n case 'start':\n {\n return this.scale(value);\n }\n case 'middle':\n {\n var offset = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + offset;\n }\n case 'end':\n {\n var _offset = this.bandwidth ? this.bandwidth() : 0;\n return this.scale(value) + _offset;\n }\n default:\n {\n return this.scale(value);\n }\n }\n }\n if (bandAware) {\n var _offset2 = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + _offset2;\n }\n return this.scale(value);\n }\n }, {\n key: \"isInRange\",\n value: function isInRange(value) {\n var range = this.range();\n var first = range[0];\n var last = range[range.length - 1];\n return first <= last ? value >= first && value <= last : value >= last && value <= first;\n }\n }], [{\n key: \"create\",\n value: function create(obj) {\n return new ScaleHelper(obj);\n }\n }]);\n return ScaleHelper;\n}();\n_defineProperty(ScaleHelper, \"EPS\", 1e-4);\nexport var createLabeledScales = function createLabeledScales(options) {\n var scales = Object.keys(options).reduce(function (res, key) {\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, key, ScaleHelper.create(options[key])));\n }, {});\n return _objectSpread(_objectSpread({}, scales), {}, {\n apply: function apply(coord) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref5.bandAware,\n position = _ref5.position;\n return _mapValues(coord, function (value, label) {\n return scales[label].apply(value, {\n bandAware: bandAware,\n position: position\n });\n });\n },\n isInRange: function isInRange(coord) {\n return _every(coord, function (value, label) {\n return scales[label].isInRange(value);\n });\n }\n });\n};","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport _some from \"lodash/some\";\nimport _isFunction from \"lodash/isFunction\";\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n/**\n * @fileOverview Reference Line\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { createLabeledScales, rectWithCoords } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar renderLine = function renderLine(option, props) {\n var line;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n line = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n line = option(props);\n } else {\n line = /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: \"recharts-reference-line-line\"\n }));\n }\n return line;\n};\n\n// TODO: ScaleHelper\nvar getEndPoints = function getEndPoints(scales, isFixedX, isFixedY, isSegment, props) {\n var _props$viewBox = props.viewBox,\n x = _props$viewBox.x,\n y = _props$viewBox.y,\n width = _props$viewBox.width,\n height = _props$viewBox.height,\n position = props.position;\n if (isFixedY) {\n var yCoord = props.y,\n orientation = props.yAxis.orientation;\n var coord = scales.y.apply(yCoord, {\n position: position\n });\n if (ifOverflowMatches(props, 'discard') && !scales.y.isInRange(coord)) {\n return null;\n }\n var points = [{\n x: x + width,\n y: coord\n }, {\n x: x,\n y: coord\n }];\n return orientation === 'left' ? points.reverse() : points;\n }\n if (isFixedX) {\n var xCoord = props.x,\n _orientation = props.xAxis.orientation;\n var _coord = scales.x.apply(xCoord, {\n position: position\n });\n if (ifOverflowMatches(props, 'discard') && !scales.x.isInRange(_coord)) {\n return null;\n }\n var _points = [{\n x: _coord,\n y: y + height\n }, {\n x: _coord,\n y: y\n }];\n return _orientation === 'top' ? _points.reverse() : _points;\n }\n if (isSegment) {\n var segment = props.segment;\n var _points2 = segment.map(function (p) {\n return scales.apply(p, {\n position: position\n });\n });\n if (ifOverflowMatches(props, 'discard') && _some(_points2, function (p) {\n return !scales.isInRange(p);\n })) {\n return null;\n }\n return _points2;\n }\n return null;\n};\nexport function ReferenceLine(props) {\n var fixedX = props.x,\n fixedY = props.y,\n segment = props.segment,\n xAxis = props.xAxis,\n yAxis = props.yAxis,\n shape = props.shape,\n className = props.className,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var isX = isNumOrStr(fixedX);\n var isY = isNumOrStr(fixedY);\n var isSegment = segment && segment.length === 2;\n var endPoints = getEndPoints(scales, isX, isY, isSegment, props);\n if (!endPoints) {\n return null;\n }\n var _endPoints = _slicedToArray(endPoints, 2),\n _endPoints$ = _endPoints[0],\n x1 = _endPoints$.x,\n y1 = _endPoints$.y,\n _endPoints$2 = _endPoints[1],\n x2 = _endPoints$2.x,\n y2 = _endPoints$2.y;\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n var lineProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), {}, {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-reference-line', className)\n }, renderLine(shape, lineProps), Label.renderCallByParent(props, rectWithCoords({\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n })));\n}\nReferenceLine.displayName = 'ReferenceLine';\nReferenceLine.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n fill: 'none',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1,\n position: 'middle'\n};","import _isFunction from \"lodash/isFunction\";\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Reference Dot\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { Layer } from '../container/Layer';\nimport { Dot } from '../shape/Dot';\nimport { Label } from '../component/Label';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { createLabeledScales } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\nimport { filterProps } from '../util/ReactUtils';\nvar getCoordinate = function getCoordinate(props) {\n var x = props.x,\n y = props.y,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var result = scales.apply({\n x: x,\n y: y\n }, {\n bandAware: true\n });\n if (ifOverflowMatches(props, 'discard') && !scales.isInRange(result)) {\n return null;\n }\n return result;\n};\nexport function ReferenceDot(props) {\n var x = props.x,\n y = props.y,\n r = props.r,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n var isX = isNumOrStr(x);\n var isY = isNumOrStr(y);\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n if (!isX || !isY) {\n return null;\n }\n var coordinate = getCoordinate(props);\n if (!coordinate) {\n return null;\n }\n var cx = coordinate.x,\n cy = coordinate.y;\n var shape = props.shape,\n className = props.className;\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n var dotProps = _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), {}, {\n cx: cx,\n cy: cy\n });\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-reference-dot', className)\n }, ReferenceDot.renderDot(shape, dotProps), Label.renderCallByParent(props, {\n x: cx - r,\n y: cy - r,\n width: 2 * r,\n height: 2 * r\n }));\n}\nReferenceDot.displayName = 'ReferenceDot';\nReferenceDot.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#fff',\n stroke: '#ccc',\n fillOpacity: 1,\n strokeWidth: 1\n};\nReferenceDot.renderDot = function (option, props) {\n var dot;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n dot = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, _extends({}, props, {\n cx: props.cx,\n cy: props.cy,\n className: \"recharts-reference-dot-dot\"\n }));\n }\n return dot;\n};","import _isFunction from \"lodash/isFunction\";\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Reference Line\n */\nimport React from 'react';\nimport classNames from 'classnames';\nimport { Layer } from '../container/Layer';\nimport { Label } from '../component/Label';\nimport { createLabeledScales, rectWithPoints } from '../util/CartesianUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nimport { Rectangle } from '../shape/Rectangle';\nimport { filterProps } from '../util/ReactUtils';\nvar getRect = function getRect(hasX1, hasX2, hasY1, hasY2, props) {\n var xValue1 = props.x1,\n xValue2 = props.x2,\n yValue1 = props.y1,\n yValue2 = props.y2,\n xAxis = props.xAxis,\n yAxis = props.yAxis;\n if (!xAxis || !yAxis) return null;\n var scales = createLabeledScales({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var p1 = {\n x: hasX1 ? scales.x.apply(xValue1, {\n position: 'start'\n }) : scales.x.rangeMin,\n y: hasY1 ? scales.y.apply(yValue1, {\n position: 'start'\n }) : scales.y.rangeMin\n };\n var p2 = {\n x: hasX2 ? scales.x.apply(xValue2, {\n position: 'end'\n }) : scales.x.rangeMax,\n y: hasY2 ? scales.y.apply(yValue2, {\n position: 'end'\n }) : scales.y.rangeMax\n };\n if (ifOverflowMatches(props, 'discard') && (!scales.isInRange(p1) || !scales.isInRange(p2))) {\n return null;\n }\n return rectWithPoints(p1, p2);\n};\nexport function ReferenceArea(props) {\n var x1 = props.x1,\n x2 = props.x2,\n y1 = props.y1,\n y2 = props.y2,\n className = props.className,\n alwaysShow = props.alwaysShow,\n clipPathId = props.clipPathId;\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var hasX1 = isNumOrStr(x1);\n var hasX2 = isNumOrStr(x2);\n var hasY1 = isNumOrStr(y1);\n var hasY2 = isNumOrStr(y2);\n var shape = props.shape;\n if (!hasX1 && !hasX2 && !hasY1 && !hasY2 && !shape) {\n return null;\n }\n var rect = getRect(hasX1, hasX2, hasY1, hasY2, props);\n if (!rect && !shape) {\n return null;\n }\n var clipPath = ifOverflowMatches(props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-reference-area', className)\n }, ReferenceArea.renderRect(shape, _objectSpread(_objectSpread({\n clipPath: clipPath\n }, filterProps(props, true)), rect)), Label.renderCallByParent(props, rect));\n}\nReferenceArea.displayName = 'ReferenceArea';\nReferenceArea.defaultProps = {\n isFront: false,\n ifOverflow: 'discard',\n xAxisId: 0,\n yAxisId: 0,\n r: 10,\n fill: '#ccc',\n fillOpacity: 0.5,\n stroke: 'none',\n strokeWidth: 1\n};\nReferenceArea.renderRect = function (option, props) {\n var rect;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n rect = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n rect = option(props);\n } else {\n rect = /*#__PURE__*/React.createElement(Rectangle, _extends({}, props, {\n className: \"recharts-reference-area-rect\"\n }));\n }\n return rect;\n};","/**\n * Given an array and a number N, return a new array which contains every nTh\n * element of the input array. For n below 1, an empty array is returned.\n * If isValid is provided, all candidates must suffice the condition, else undefined is returned.\n * @param {T[]} array An input array.\n * @param {integer} n A number\n * @param {Function} isValid A function to evaluate a candidate form the array\n * @returns {T[]} The result array of the same type as the input array.\n */\nexport function getEveryNthWithCondition(array, n, isValid) {\n if (n < 1) {\n return [];\n }\n if (n === 1 && isValid === undefined) {\n return array;\n }\n var result = [];\n for (var i = 0; i < array.length; i += n) {\n if (isValid === undefined || isValid(array[i]) === true) {\n result.push(array[i]);\n } else {\n return undefined;\n }\n }\n return result;\n}","import _isFunction from \"lodash/isFunction\";\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { mathSign, isNumber } from '../util/DataUtils';\nimport { getStringSize } from '../util/DOMUtils';\nimport { Global } from '../util/Global';\nimport { getEveryNthWithCondition } from '../util/getEveryNthWithCondition';\n\n/**\n * Given an array of ticks, find N, the lowest possible number for which every\n * nTH tick in the ticks array isShow == true and return the array of every nTh tick.\n * @param {CartesianTickItem[]} ticks An array of CartesianTickItem with the\n * information whether they can be shown without overlapping with their neighbour isShow.\n * @returns {CartesianTickItem[]} Every nTh tick in an array.\n */\nexport function getEveryNThTick(ticks) {\n var N = 1;\n var previous = getEveryNthWithCondition(ticks, N, function (tickItem) {\n return tickItem.isShow;\n });\n while (N <= ticks.length) {\n if (previous !== undefined) {\n return previous;\n }\n N++;\n previous = getEveryNthWithCondition(ticks, N, function (tickItem) {\n return tickItem.isShow;\n });\n }\n return ticks.slice(0, 1);\n}\nexport function getNumberIntervalTicks(ticks, interval) {\n return getEveryNthWithCondition(ticks, interval + 1);\n}\nfunction getTicksEnd(_ref) {\n var ticks = _ref.ticks,\n tickFormatter = _ref.tickFormatter,\n viewBox = _ref.viewBox,\n orientation = _ref.orientation,\n minTickGap = _ref.minTickGap,\n unit = _ref.unit,\n fontSize = _ref.fontSize,\n letterSpacing = _ref.letterSpacing;\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height';\n // we need add the width of 'unit' only when sizeKey === 'width'\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n })[sizeKey] : 0;\n var result = (ticks || []).slice();\n var len = result.length;\n var sign = len >= 2 ? mathSign(result[1].coordinate - result[0].coordinate) : 1;\n var start, end;\n 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 for (var i = len - 1; i >= 0; i--) {\n var entry = result[i];\n var content = _isFunction(tickFormatter) ? tickFormatter(entry.value, len - i - 1) : entry.value;\n var size = getStringSize(content, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n })[sizeKey] + unitSize;\n if (i === len - 1) {\n var gap = sign * (entry.coordinate + sign * size / 2 - end);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap > 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n var isShow = sign * (entry.tickCoord - sign * size / 2 - start) >= 0 && sign * (entry.tickCoord + sign * size / 2 - end) <= 0;\n if (isShow) {\n end = entry.tickCoord - sign * (size / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n }\n return result;\n}\nfunction getTicksStart(_ref2, preserveEnd) {\n var ticks = _ref2.ticks,\n tickFormatter = _ref2.tickFormatter,\n viewBox = _ref2.viewBox,\n orientation = _ref2.orientation,\n minTickGap = _ref2.minTickGap,\n unit = _ref2.unit,\n fontSize = _ref2.fontSize,\n letterSpacing = _ref2.letterSpacing;\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n var sizeKey = orientation === 'top' || orientation === 'bottom' ? 'width' : 'height';\n var result = (ticks || []).slice();\n // we need add the width of 'unit' only when sizeKey === 'width'\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n })[sizeKey] : 0;\n var len = result.length;\n var sign = len >= 2 ? mathSign(result[1].coordinate - result[0].coordinate) : 1;\n var start, end;\n 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 if (preserveEnd) {\n // Try to guarantee the tail to be displayed\n var tail = ticks[len - 1];\n var tailContent = _isFunction(tickFormatter) ? tickFormatter(tail.value, len - 1) : tail.value;\n var tailSize = getStringSize(tailContent, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n })[sizeKey] + unitSize;\n var tailGap = sign * (tail.coordinate + sign * tailSize / 2 - end);\n result[len - 1] = tail = _objectSpread(_objectSpread({}, tail), {}, {\n tickCoord: tailGap > 0 ? tail.coordinate - tailGap * sign : tail.coordinate\n });\n var isTailShow = sign * (tail.tickCoord - sign * tailSize / 2 - start) >= 0 && sign * (tail.tickCoord + sign * tailSize / 2 - end) <= 0;\n if (isTailShow) {\n end = tail.tickCoord - sign * (tailSize / 2 + minTickGap);\n result[len - 1] = _objectSpread(_objectSpread({}, tail), {}, {\n isShow: true\n });\n }\n }\n var count = preserveEnd ? len - 1 : len;\n for (var i = 0; i < count; i++) {\n var entry = result[i];\n var content = _isFunction(tickFormatter) ? tickFormatter(entry.value, i) : entry.value;\n var size = getStringSize(content, {\n fontSize: fontSize,\n letterSpacing: letterSpacing\n })[sizeKey] + unitSize;\n if (i === 0) {\n var gap = sign * (entry.coordinate - sign * size / 2 - start);\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: gap < 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[i] = entry = _objectSpread(_objectSpread({}, entry), {}, {\n tickCoord: entry.coordinate\n });\n }\n var isShow = sign * (entry.tickCoord - sign * size / 2 - start) >= 0 && sign * (entry.tickCoord + sign * size / 2 - end) <= 0;\n if (isShow) {\n start = entry.tickCoord + sign * (size / 2 + minTickGap);\n result[i] = _objectSpread(_objectSpread({}, entry), {}, {\n isShow: true\n });\n }\n }\n return result;\n}\nexport function getTicks(props, fontSize, letterSpacing) {\n var tick = props.tick,\n ticks = props.ticks,\n viewBox = props.viewBox,\n minTickGap = props.minTickGap,\n orientation = props.orientation,\n interval = props.interval,\n tickFormatter = props.tickFormatter,\n unit = props.unit;\n if (!ticks || !ticks.length || !tick) {\n return [];\n }\n if (isNumber(interval) || Global.isSsr) {\n return getNumberIntervalTicks(ticks, typeof interval === 'number' && isNumber(interval) ? interval : 0);\n }\n var candidates = [];\n if (interval === 'equidistantPreserveStart') {\n candidates = getTicksStart({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit,\n fontSize: fontSize,\n letterSpacing: letterSpacing\n });\n return getEveryNThTick(candidates);\n }\n if (interval === 'preserveStart' || interval === 'preserveStartEnd') {\n candidates = getTicksStart({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit,\n fontSize: fontSize,\n letterSpacing: letterSpacing\n }, interval === 'preserveStartEnd');\n } else {\n candidates = getTicksEnd({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit,\n fontSize: fontSize,\n letterSpacing: letterSpacing\n });\n }\n return candidates.filter(function (entry) {\n return entry.isShow;\n });\n}","import _isFunction from \"lodash/isFunction\";\nimport _get from \"lodash/get\";\nvar _excluded = [\"viewBox\"],\n _excluded2 = [\"viewBox\"],\n _excluded3 = [\"ticks\"];\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * @fileOverview Cartesian Axis\n */\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { Layer } from '../container/Layer';\nimport { Text } from '../component/Text';\nimport { Label } from '../component/Label';\nimport { isNumber } from '../util/DataUtils';\nimport { adaptEventsOfChild } from '../util/types';\nimport { filterProps } from '../util/ReactUtils';\nimport { getTicks } from './getTicks';\nexport var CartesianAxis = /*#__PURE__*/function (_Component) {\n _inherits(CartesianAxis, _Component);\n var _super = _createSuper(CartesianAxis);\n function CartesianAxis(props) {\n var _this;\n _classCallCheck(this, CartesianAxis);\n _this = _super.call(this, props);\n _this.state = {\n fontSize: '',\n letterSpacing: ''\n };\n return _this;\n }\n _createClass(CartesianAxis, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(_ref, nextState) {\n var viewBox = _ref.viewBox,\n restProps = _objectWithoutProperties(_ref, _excluded);\n // props.viewBox is sometimes generated every time -\n // check that specially as object equality is likely to fail\n var _this$props = this.props,\n viewBoxOld = _this$props.viewBox,\n restPropsOld = _objectWithoutProperties(_this$props, _excluded2);\n return !shallowEqual(viewBox, viewBoxOld) || !shallowEqual(restProps, restPropsOld) || !shallowEqual(nextState, this.state);\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var htmlLayer = this.layerReference;\n if (!htmlLayer) return;\n var tick = htmlLayer.getElementsByClassName('recharts-cartesian-axis-tick-value')[0];\n if (tick) {\n this.setState({\n fontSize: window.getComputedStyle(tick).fontSize,\n letterSpacing: window.getComputedStyle(tick).letterSpacing\n });\n }\n }\n\n /**\n * Calculate the coordinates of endpoints in ticks\n * @param {Object} data The data of a simple tick\n * @return {Object} (x1, y1): The coordinate of endpoint close to tick text\n * (x2, y2): The coordinate of endpoint close to axis\n */\n }, {\n key: \"getTickLineCoord\",\n value: function getTickLineCoord(data) {\n var _this$props2 = this.props,\n x = _this$props2.x,\n y = _this$props2.y,\n width = _this$props2.width,\n height = _this$props2.height,\n orientation = _this$props2.orientation,\n tickSize = _this$props2.tickSize,\n mirror = _this$props2.mirror,\n tickMargin = _this$props2.tickMargin;\n var x1, x2, y1, y2, tx, ty;\n var sign = mirror ? -1 : 1;\n var finalTickSize = data.tickSize || tickSize;\n var tickCoord = isNumber(data.tickCoord) ? data.tickCoord : data.coordinate;\n switch (orientation) {\n case 'top':\n x1 = x2 = data.coordinate;\n y2 = y + +!mirror * height;\n y1 = y2 - sign * finalTickSize;\n ty = y1 - sign * tickMargin;\n tx = tickCoord;\n break;\n case 'left':\n y1 = y2 = data.coordinate;\n x2 = x + +!mirror * width;\n x1 = x2 - sign * finalTickSize;\n tx = x1 - sign * tickMargin;\n ty = tickCoord;\n break;\n case 'right':\n y1 = y2 = data.coordinate;\n x2 = x + +mirror * width;\n x1 = x2 + sign * finalTickSize;\n tx = x1 + sign * tickMargin;\n ty = tickCoord;\n break;\n default:\n x1 = x2 = data.coordinate;\n y2 = y + +mirror * height;\n y1 = y2 + sign * finalTickSize;\n ty = y1 + sign * tickMargin;\n tx = tickCoord;\n break;\n }\n return {\n line: {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n },\n tick: {\n x: tx,\n y: ty\n }\n };\n }\n }, {\n key: \"getTickTextAnchor\",\n value: function getTickTextAnchor() {\n var _this$props3 = this.props,\n orientation = _this$props3.orientation,\n mirror = _this$props3.mirror;\n var textAnchor;\n switch (orientation) {\n case 'left':\n textAnchor = mirror ? 'start' : 'end';\n break;\n case 'right':\n textAnchor = mirror ? 'end' : 'start';\n break;\n default:\n textAnchor = 'middle';\n break;\n }\n return textAnchor;\n }\n }, {\n key: \"getTickVerticalAnchor\",\n value: function getTickVerticalAnchor() {\n var _this$props4 = this.props,\n orientation = _this$props4.orientation,\n mirror = _this$props4.mirror;\n var verticalAnchor = 'end';\n switch (orientation) {\n case 'left':\n case 'right':\n verticalAnchor = 'middle';\n break;\n case 'top':\n verticalAnchor = mirror ? 'start' : 'end';\n break;\n default:\n verticalAnchor = mirror ? 'end' : 'start';\n break;\n }\n return verticalAnchor;\n }\n }, {\n key: \"renderAxisLine\",\n value: function renderAxisLine() {\n var _this$props5 = this.props,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height,\n orientation = _this$props5.orientation,\n mirror = _this$props5.mirror,\n axisLine = _this$props5.axisLine;\n var props = _objectSpread(_objectSpread(_objectSpread({}, filterProps(this.props)), filterProps(axisLine)), {}, {\n fill: 'none'\n });\n if (orientation === 'top' || orientation === 'bottom') {\n var needHeight = +(orientation === 'top' && !mirror || orientation === 'bottom' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x,\n y1: y + needHeight * height,\n x2: x + width,\n y2: y + needHeight * height\n });\n } else {\n var needWidth = +(orientation === 'left' && !mirror || orientation === 'right' && mirror);\n props = _objectSpread(_objectSpread({}, props), {}, {\n x1: x + needWidth * width,\n y1: y,\n x2: x + needWidth * width,\n y2: y + height\n });\n }\n return /*#__PURE__*/React.createElement(\"line\", _extends({}, props, {\n className: classNames('recharts-cartesian-axis-line', _get(axisLine, 'className'))\n }));\n }\n }, {\n key: \"renderTicks\",\n value:\n /**\n * render the ticks\n * @param {Array} ticks The ticks to actually render (overrides what was passed in props)\n * @param {string} fontSize Fontsize to consider for tick spacing\n * @param {string} letterSpacing Letterspacing to consider for tick spacing\n * @return {ReactComponent} renderedTicks\n */\n function renderTicks(ticks, fontSize, letterSpacing) {\n var _this2 = this;\n var _this$props6 = this.props,\n tickLine = _this$props6.tickLine,\n stroke = _this$props6.stroke,\n tick = _this$props6.tick,\n tickFormatter = _this$props6.tickFormatter,\n unit = _this$props6.unit;\n var finalTicks = getTicks(_objectSpread(_objectSpread({}, this.props), {}, {\n ticks: ticks\n }), fontSize, letterSpacing);\n var textAnchor = this.getTickTextAnchor();\n var verticalAnchor = this.getTickVerticalAnchor();\n var axisProps = filterProps(this.props);\n var customTickProps = filterProps(tick);\n var tickLineProps = _objectSpread(_objectSpread({}, axisProps), {}, {\n fill: 'none'\n }, filterProps(tickLine));\n var items = finalTicks.map(function (entry, i) {\n var _this2$getTickLineCoo = _this2.getTickLineCoord(entry),\n lineCoord = _this2$getTickLineCoo.line,\n tickCoord = _this2$getTickLineCoo.tick;\n var tickProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n textAnchor: textAnchor,\n verticalAnchor: verticalAnchor\n }, axisProps), {}, {\n stroke: 'none',\n fill: stroke\n }, customTickProps), tickCoord), {}, {\n index: i,\n payload: entry,\n visibleTicksCount: finalTicks.length,\n tickFormatter: tickFormatter\n });\n return /*#__PURE__*/React.createElement(Layer, _extends({\n className: \"recharts-cartesian-axis-tick\",\n key: \"tick-\".concat(i) // eslint-disable-line react/no-array-index-key\n }, adaptEventsOfChild(_this2.props, entry, i)), tickLine && /*#__PURE__*/React.createElement(\"line\", _extends({}, tickLineProps, lineCoord, {\n className: classNames('recharts-cartesian-axis-tick-line', _get(tickLine, 'className'))\n })), tick && CartesianAxis.renderTickItem(tick, tickProps, \"\".concat(_isFunction(tickFormatter) ? tickFormatter(entry.value, i) : entry.value).concat(unit || '')));\n });\n return /*#__PURE__*/React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n var _this$props7 = this.props,\n axisLine = _this$props7.axisLine,\n width = _this$props7.width,\n height = _this$props7.height,\n ticksGenerator = _this$props7.ticksGenerator,\n className = _this$props7.className,\n hide = _this$props7.hide;\n if (hide) {\n return null;\n }\n var _this$props8 = this.props,\n ticks = _this$props8.ticks,\n noTicksProps = _objectWithoutProperties(_this$props8, _excluded3);\n var finalTicks = ticks;\n if (_isFunction(ticksGenerator)) {\n finalTicks = ticks && ticks.length > 0 ? ticksGenerator(this.props) : ticksGenerator(noTicksProps);\n }\n if (width <= 0 || height <= 0 || !finalTicks || !finalTicks.length) {\n return null;\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: classNames('recharts-cartesian-axis', className),\n ref: function ref(_ref2) {\n _this3.layerReference = _ref2;\n }\n }, axisLine && this.renderAxisLine(), this.renderTicks(finalTicks, this.state.fontSize, this.state.letterSpacing), Label.renderCallByParent(this.props));\n }\n }], [{\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n if ( /*#__PURE__*/React.isValidElement(option)) {\n tickItem = /*#__PURE__*/React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = /*#__PURE__*/React.createElement(Text, _extends({}, props, {\n className: \"recharts-cartesian-axis-tick-value\"\n }), value);\n }\n return tickItem;\n }\n }]);\n return CartesianAxis;\n}(Component);\n_defineProperty(CartesianAxis, \"displayName\", 'CartesianAxis');\n_defineProperty(CartesianAxis, \"defaultProps\", {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n viewBox: {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n },\n // The orientation of axis\n orientation: 'bottom',\n // The ticks\n ticks: [],\n stroke: '#666',\n tickLine: true,\n axisLine: true,\n tick: true,\n mirror: false,\n minTickGap: 5,\n // The width or height of tick\n tickSize: 6,\n tickMargin: 2,\n interval: 'preserveEnd'\n});","var baseIteratee = require('./_baseIteratee'),\n isArrayLike = require('./isArrayLike'),\n keys = require('./keys');\n\n/**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\nfunction createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = baseIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n}\n\nmodule.exports = createFind;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nmodule.exports = findIndex;\n","var createFind = require('./_createFind'),\n findIndex = require('./findIndex');\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nmodule.exports = find;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n}\n\nmodule.exports = isBoolean;\n","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nimport { ReferenceDot } from '../cartesian/ReferenceDot';\nimport { ReferenceLine } from '../cartesian/ReferenceLine';\nimport { ReferenceArea } from '../cartesian/ReferenceArea';\nimport { ifOverflowMatches } from './IfOverflowMatches';\nimport { findAllByType } from './ReactUtils';\nimport { isNumber } from './DataUtils';\nexport var detectReferenceElementsDomain = function detectReferenceElementsDomain(children, domain, axisId, axisType, specifiedTicks) {\n var lines = findAllByType(children, ReferenceLine);\n var dots = findAllByType(children, ReferenceDot);\n var elements = [].concat(_toConsumableArray(lines), _toConsumableArray(dots));\n var areas = findAllByType(children, ReferenceArea);\n var idKey = \"\".concat(axisType, \"Id\");\n var valueKey = axisType[0];\n var finalDomain = domain;\n if (elements.length) {\n finalDomain = elements.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[valueKey])) {\n var value = el.props[valueKey];\n return [Math.min(result[0], value), Math.max(result[1], value)];\n }\n return result;\n }, finalDomain);\n }\n if (areas.length) {\n var key1 = \"\".concat(valueKey, \"1\");\n var key2 = \"\".concat(valueKey, \"2\");\n finalDomain = areas.reduce(function (result, el) {\n if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[key1]) && isNumber(el.props[key2])) {\n var value1 = el.props[key1];\n var value2 = el.props[key2];\n return [Math.min(result[0], value1, value2), Math.max(result[1], value1, value2)];\n }\n return result;\n }, finalDomain);\n }\n if (specifiedTicks && specifiedTicks.length) {\n finalDomain = specifiedTicks.reduce(function (result, tick) {\n if (isNumber(tick)) {\n return [Math.min(result[0], tick), Math.max(result[1], tick)];\n }\n return result;\n }, finalDomain);\n }\n return finalDomain;\n};","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","import EventEmitter from 'eventemitter3';\nvar eventCenter = new EventEmitter();\nif (eventCenter.setMaxListeners) {\n eventCenter.setMaxListeners(10);\n}\nexport { eventCenter };\nexport var SYNC_EVENT = 'recharts.syncMouseEvents';","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nexport var AccessibilityManager = /*#__PURE__*/function () {\n function AccessibilityManager() {\n _classCallCheck(this, AccessibilityManager);\n _defineProperty(this, \"activeIndex\", 0);\n _defineProperty(this, \"coordinateList\", []);\n _defineProperty(this, \"layout\", 'horizontal');\n }\n _createClass(AccessibilityManager, [{\n key: \"setDetails\",\n value: function setDetails(_ref) {\n var _ref$coordinateList = _ref.coordinateList,\n coordinateList = _ref$coordinateList === void 0 ? [] : _ref$coordinateList,\n _ref$container = _ref.container,\n container = _ref$container === void 0 ? null : _ref$container,\n _ref$layout = _ref.layout,\n layout = _ref$layout === void 0 ? null : _ref$layout,\n _ref$offset = _ref.offset,\n offset = _ref$offset === void 0 ? null : _ref$offset,\n _ref$mouseHandlerCall = _ref.mouseHandlerCallback,\n mouseHandlerCallback = _ref$mouseHandlerCall === void 0 ? null : _ref$mouseHandlerCall;\n this.coordinateList = coordinateList !== null && coordinateList !== void 0 ? coordinateList : this.coordinateList;\n this.container = container !== null && container !== void 0 ? container : this.container;\n this.layout = layout !== null && layout !== void 0 ? layout : this.layout;\n this.offset = offset !== null && offset !== void 0 ? offset : this.offset;\n this.mouseHandlerCallback = mouseHandlerCallback !== null && mouseHandlerCallback !== void 0 ? mouseHandlerCallback : this.mouseHandlerCallback;\n if (this.activeIndex >= this.coordinateList.length) {\n this.activeIndex = this.coordinateList.length - 1;\n }\n }\n }, {\n key: \"focus\",\n value: function focus() {\n this.spoofMouse();\n }\n }, {\n key: \"keyboardEvent\",\n value: function keyboardEvent(e) {\n switch (e.key) {\n case 'ArrowRight':\n {\n if (this.layout !== 'horizontal') {\n return;\n }\n this.activeIndex = Math.min(this.activeIndex + 1, this.coordinateList.length - 1);\n this.spoofMouse();\n break;\n }\n case 'ArrowLeft':\n {\n if (this.layout !== 'horizontal') {\n return;\n }\n this.activeIndex = Math.max(this.activeIndex - 1, 0);\n this.spoofMouse();\n break;\n }\n default:\n {\n break;\n }\n }\n }\n }, {\n key: \"spoofMouse\",\n value: function spoofMouse() {\n if (this.layout !== 'horizontal') {\n return;\n }\n var _this$container$getBo = this.container.getBoundingClientRect(),\n x = _this$container$getBo.x,\n y = _this$container$getBo.y;\n var coordinate = this.coordinateList[this.activeIndex].coordinate;\n var pageX = x + coordinate;\n var pageY = y + this.offset.top;\n this.mouseHandlerCallback({\n pageX: pageX,\n pageY: pageY\n });\n }\n }]);\n return AccessibilityManager;\n}();","import _every from \"lodash/every\";\nimport _find from \"lodash/find\";\nimport _isFunction from \"lodash/isFunction\";\nimport _throttle from \"lodash/throttle\";\nimport _sortBy from \"lodash/sortBy\";\nimport _get from \"lodash/get\";\nimport _range from \"lodash/range\";\nimport _isNil from \"lodash/isNil\";\nimport _isBoolean from \"lodash/isBoolean\";\nimport _isArray from \"lodash/isArray\";\nvar _excluded = [\"item\"],\n _excluded2 = [\"children\", \"className\", \"width\", \"height\", \"style\", \"compact\", \"title\", \"desc\"];\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React, { Component, cloneElement, isValidElement, createElement } from 'react';\nimport classNames from 'classnames';\nimport { getTicks } from '../cartesian/getTicks';\nimport { Surface } from '../container/Surface';\nimport { Layer } from '../container/Layer';\nimport { Tooltip } from '../component/Tooltip';\nimport { Legend } from '../component/Legend';\nimport { Curve } from '../shape/Curve';\nimport { Cross } from '../shape/Cross';\nimport { Sector } from '../shape/Sector';\nimport { Dot } from '../shape/Dot';\nimport { isInRectangle, Rectangle } from '../shape/Rectangle';\nimport { findAllByType, findChildByType, getDisplayName, parseChildIndex, validateWidthHeight, isChildrenEqual, renderByOrder, getReactEventByType, filterProps } from '../util/ReactUtils';\nimport { CartesianAxis } from '../cartesian/CartesianAxis';\nimport { Brush } from '../cartesian/Brush';\nimport { getOffset, calculateChartCoordinate } from '../util/DOMUtils';\nimport { getAnyElementOfObject, hasDuplicate, uniqueId, isNumber, findEntryInArray } from '../util/DataUtils';\nimport { calculateActiveTickIndex, getMainColorOfGraphicItem, getBarSizeList, getBarPosition, appendOffsetOfLegend, getLegendProps, combineEventHandlers, getTicksOfAxis, getCoordinatesOfGrid, getStackedDataOfItem, parseErrorBarsOfAxis, getBandSizeOfAxis, getStackGroupsByAxisId, isCategoricalAxis, getDomainOfItemsWithSameAxis, getDomainOfStackGroups, getDomainOfDataByKey, parseSpecifiedDomain, parseDomainOfCategoryAxis, getTooltipItem } from '../util/ChartUtils';\nimport { detectReferenceElementsDomain } from '../util/DetectReferenceElementsDomain';\nimport { inRangeOfSector, polarToCartesian } from '../util/PolarUtils';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { eventCenter, SYNC_EVENT } from '../util/Events';\nimport { adaptEventHandlers } from '../util/types';\nimport { AccessibilityManager } from './AccessibilityManager';\nvar ORIENT_MAP = {\n xAxis: ['bottom', 'top'],\n yAxis: ['left', 'right']\n};\nvar originCoordinate = {\n x: 0,\n y: 0\n};\n\n// use legacy isFinite only if there is a problem (aka IE)\n// eslint-disable-next-line no-restricted-globals\nvar isFinit = Number.isFinite ? Number.isFinite : isFinite;\nvar defer =\n// eslint-disable-next-line no-nested-ternary\ntypeof requestAnimationFrame === 'function' ? requestAnimationFrame : typeof setImmediate === 'function' ? setImmediate : setTimeout;\nvar deferClear =\n// eslint-disable-next-line no-nested-ternary\ntypeof cancelAnimationFrame === 'function' ? cancelAnimationFrame : typeof clearImmediate === 'function' ? clearImmediate : clearTimeout;\nvar calculateTooltipPos = function calculateTooltipPos(rangeObj, layout) {\n if (layout === 'horizontal') {\n return rangeObj.x;\n }\n if (layout === 'vertical') {\n return rangeObj.y;\n }\n if (layout === 'centric') {\n return rangeObj.angle;\n }\n return rangeObj.radius;\n};\nvar getActiveCoordinate = function getActiveCoordinate(layout, tooltipTicks, activeIndex, rangeObj) {\n var entry = tooltipTicks.find(function (tick) {\n return tick && tick.index === activeIndex;\n });\n if (entry) {\n if (layout === 'horizontal') {\n return {\n x: entry.coordinate,\n y: rangeObj.y\n };\n }\n if (layout === 'vertical') {\n return {\n x: rangeObj.x,\n y: entry.coordinate\n };\n }\n if (layout === 'centric') {\n var _angle = entry.coordinate;\n var _radius = rangeObj.radius;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, _radius, _angle)), {}, {\n angle: _angle,\n radius: _radius\n });\n }\n var radius = entry.coordinate;\n var angle = rangeObj.angle;\n return _objectSpread(_objectSpread(_objectSpread({}, rangeObj), polarToCartesian(rangeObj.cx, rangeObj.cy, radius, angle)), {}, {\n angle: angle,\n radius: radius\n });\n }\n return originCoordinate;\n};\nvar getDisplayedData = function getDisplayedData(data, _ref, item) {\n var graphicalItems = _ref.graphicalItems,\n dataStartIndex = _ref.dataStartIndex,\n dataEndIndex = _ref.dataEndIndex;\n var itemsData = (graphicalItems || []).reduce(function (result, child) {\n var itemData = child.props.data;\n if (itemData && itemData.length) {\n return [].concat(_toConsumableArray(result), _toConsumableArray(itemData));\n }\n return result;\n }, []);\n if (itemsData && itemsData.length > 0) {\n return itemsData;\n }\n if (item && item.props && item.props.data && item.props.data.length > 0) {\n return item.props.data;\n }\n if (data && data.length && isNumber(dataStartIndex) && isNumber(dataEndIndex)) {\n return data.slice(dataStartIndex, dataEndIndex + 1);\n }\n return [];\n};\n\n/**\n * Takes a domain and user props to determine whether he provided the domain via props or if we need to calculate it.\n * @param {AxisDomain} domain The potential domain from props\n * @param {Boolean} allowDataOverflow from props\n * @param {String} axisType from props\n * @returns {Boolean} `true` if domain is specified by user\n */\nfunction isDomainSpecifiedByUser(domain, allowDataOverflow, axisType) {\n if (axisType === 'number' && allowDataOverflow === true && Array.isArray(domain)) {\n var domainStart = domain === null || domain === void 0 ? void 0 : domain[0];\n var domainEnd = domain === null || domain === void 0 ? void 0 : domain[1];\n\n /*\n * The `isNumber` check is needed because the user could also provide strings like \"dataMin\" via the domain props.\n * In such case, we have to compute the domain from the data.\n */\n if (!!domainStart && !!domainEnd && isNumber(domainStart) && isNumber(domainEnd)) {\n return true;\n }\n }\n return false;\n}\nfunction getDefaultDomainByAxisType(axisType) {\n return axisType === 'number' ? [0, 'auto'] : undefined;\n}\n\n/**\n * Get the content to be displayed in the tooltip\n * @param {Object} state Current state\n * @param {Array} chartData The data defined in chart\n * @param {Number} activeIndex Active index of data\n * @param {String} activeLabel Active label of data\n * @return {Array} The content of tooltip\n */\nvar getTooltipContent = function getTooltipContent(state, chartData, activeIndex, activeLabel) {\n var graphicalItems = state.graphicalItems,\n tooltipAxis = state.tooltipAxis;\n var displayedData = getDisplayedData(chartData, state);\n if (activeIndex < 0 || !graphicalItems || !graphicalItems.length || activeIndex >= displayedData.length) {\n return null;\n }\n // get data by activeIndex when the axis don't allow duplicated category\n return graphicalItems.reduce(function (result, child) {\n var hide = child.props.hide;\n if (hide) {\n return result;\n }\n var data = child.props.data;\n var payload;\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // graphic child has data props\n var entries = data === undefined ? displayedData : data;\n payload = findEntryInArray(entries, tooltipAxis.dataKey, activeLabel);\n } else {\n payload = data && data[activeIndex] || displayedData[activeIndex];\n }\n if (!payload) {\n return result;\n }\n return [].concat(_toConsumableArray(result), [getTooltipItem(child, payload)]);\n }, []);\n};\n\n/**\n * Returns tooltip data based on a mouse position (as a parameter or in state)\n * @param {Object} state current state\n * @param {Array} chartData the data defined in chart\n * @param {String} layout The layout type of chart\n * @param {Object} rangeObj { x, y } coordinates\n * @return {Object} Tooltip data data\n */\nvar getTooltipData = function getTooltipData(state, chartData, layout, rangeObj) {\n var rangeData = rangeObj || {\n x: state.chartX,\n y: state.chartY\n };\n var pos = calculateTooltipPos(rangeData, layout);\n var ticks = state.orderedTooltipTicks,\n axis = state.tooltipAxis,\n tooltipTicks = state.tooltipTicks;\n var activeIndex = calculateActiveTickIndex(pos, ticks, tooltipTicks, axis);\n if (activeIndex >= 0 && tooltipTicks) {\n var activeLabel = tooltipTicks[activeIndex] && tooltipTicks[activeIndex].value;\n var activePayload = getTooltipContent(state, chartData, activeIndex, activeLabel);\n var activeCoordinate = getActiveCoordinate(layout, ticks, activeIndex, rangeData);\n return {\n activeTooltipIndex: activeIndex,\n activeLabel: activeLabel,\n activePayload: activePayload,\n activeCoordinate: activeCoordinate\n };\n }\n return null;\n};\n\n/**\n * Get the configuration of axis by the options of axis instance\n * @param {Object} props Latest props\n * @param {Array} axes The instance of axes\n * @param {Array} graphicalItems The instances of item\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\nexport var getAxisMapByAxes = function getAxisMapByAxes(props, _ref2) {\n var axes = _ref2.axes,\n graphicalItems = _ref2.graphicalItems,\n axisType = _ref2.axisType,\n axisIdKey = _ref2.axisIdKey,\n stackGroups = _ref2.stackGroups,\n dataStartIndex = _ref2.dataStartIndex,\n dataEndIndex = _ref2.dataEndIndex;\n var layout = props.layout,\n children = props.children,\n stackOffset = props.stackOffset;\n var isCategorical = isCategoricalAxis(layout, axisType);\n\n // Eliminate duplicated axes\n var axisMap = axes.reduce(function (result, child) {\n var _child$props$domain2;\n var _child$props = child.props,\n type = _child$props.type,\n dataKey = _child$props.dataKey,\n allowDataOverflow = _child$props.allowDataOverflow,\n allowDuplicatedCategory = _child$props.allowDuplicatedCategory,\n scale = _child$props.scale,\n ticks = _child$props.ticks,\n includeHidden = _child$props.includeHidden;\n var axisId = child.props[axisIdKey];\n if (result[axisId]) {\n return result;\n }\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId;\n }),\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var domain, duplicateDomain, categoricalDomain;\n\n /*\n * This is a hack to short-circuit the domain creation here to enhance performance.\n * Usually, the data is used to determine the domain, but when the user specifies\n * a domain upfront (via props), there is no need to calculate the domain start and end,\n * which is very expensive for a larger amount of data.\n * The only thing that would prohibit short-circuiting is when the user doesn't allow data overflow,\n * because the axis is supposed to ignore the specified domain that way.\n */\n if (isDomainSpecifiedByUser(child.props.domain, allowDataOverflow, type)) {\n domain = parseSpecifiedDomain(child.props.domain, null, allowDataOverflow);\n /* The chart can be categorical and have the domain specified in numbers\n * we still need to calculate the categorical domain\n * TODO: refactor this more\n */\n if (isCategorical && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n }\n\n // if the domain is defaulted we need this for `originalDomain` as well\n var defaultDomain = getDefaultDomainByAxisType(type);\n\n // we didn't create the domain from user's props above, so we need to calculate it\n if (!domain || domain.length === 0) {\n var _child$props$domain;\n var childDomain = (_child$props$domain = child.props.domain) !== null && _child$props$domain !== void 0 ? _child$props$domain : defaultDomain;\n if (dataKey) {\n // has dataKey in \n domain = getDomainOfDataByKey(displayedData, dataKey, type);\n if (type === 'category' && isCategorical) {\n // the field type is category data and this axis is categorical axis\n var duplicate = hasDuplicate(domain);\n if (allowDuplicatedCategory && duplicate) {\n duplicateDomain = domain;\n // When category axis has duplicated text, serial numbers are used to generate scale\n domain = _range(0, len);\n } else if (!allowDuplicatedCategory) {\n // remove duplicated category\n domain = parseDomainOfCategoryAxis(childDomain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n }\n } else if (type === 'category') {\n // the field type is category data and this axis is numerical axis\n if (!allowDuplicatedCategory) {\n domain = parseDomainOfCategoryAxis(childDomain, domain, child).reduce(function (finalDomain, entry) {\n return finalDomain.indexOf(entry) >= 0 || entry === '' || _isNil(entry) ? finalDomain : [].concat(_toConsumableArray(finalDomain), [entry]);\n }, []);\n } else {\n // eliminate undefined or null or empty string\n domain = domain.filter(function (entry) {\n return entry !== '' && !_isNil(entry);\n });\n }\n } else if (type === 'number') {\n // the field type is numerical\n var errorBarsDomain = parseErrorBarsOfAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && (includeHidden || !item.props.hide);\n }), dataKey, axisType, layout);\n if (errorBarsDomain) {\n domain = errorBarsDomain;\n }\n }\n if (isCategorical && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n } else if (isCategorical) {\n // the axis is a categorical axis\n domain = _range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack && type === 'number') {\n // when stackOffset is 'expand', the domain may be calculated as [0, 1.000000000002]\n domain = stackOffset === 'expand' ? [0, 1] : getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n } else {\n domain = getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && (includeHidden || !item.props.hide);\n }), type, layout, true);\n }\n if (type === 'number') {\n // To detect wether there is any reference lines whose props alwaysShow is true\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType, ticks);\n if (childDomain) {\n domain = parseSpecifiedDomain(childDomain, domain, allowDataOverflow);\n }\n } else if (type === 'category' && childDomain) {\n var axisDomain = childDomain;\n var isDomainValid = domain.every(function (entry) {\n return axisDomain.indexOf(entry) >= 0;\n });\n if (isDomainValid) {\n domain = axisDomain;\n }\n }\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({}, child.props), {}, {\n axisType: axisType,\n domain: domain,\n categoricalDomain: categoricalDomain,\n duplicateDomain: duplicateDomain,\n originalDomain: (_child$props$domain2 = child.props.domain) !== null && _child$props$domain2 !== void 0 ? _child$props$domain2 : defaultDomain,\n isCategorical: isCategorical,\n layout: layout\n })));\n }, {});\n 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 */\nvar getAxisMapByItems = function getAxisMapByItems(props, _ref3) {\n var graphicalItems = _ref3.graphicalItems,\n Axis = _ref3.Axis,\n axisType = _ref3.axisType,\n axisIdKey = _ref3.axisIdKey,\n stackGroups = _ref3.stackGroups,\n dataStartIndex = _ref3.dataStartIndex,\n dataEndIndex = _ref3.dataEndIndex;\n var layout = props.layout,\n children = props.children;\n var displayedData = getDisplayedData(props.data, {\n graphicalItems: graphicalItems,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var isCategorical = isCategoricalAxis(layout, axisType);\n var index = -1;\n\n // The default type of x-axis is category axis,\n // The default contents of x-axis is the serial numbers of data\n // The default type of y-axis is number axis\n // The default contents of y-axis is the domain of data\n var axisMap = graphicalItems.reduce(function (result, child) {\n var axisId = child.props[axisIdKey];\n var originalDomain = getDefaultDomainByAxisType('number');\n if (!result[axisId]) {\n index++;\n var domain;\n if (isCategorical) {\n domain = _range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack) {\n domain = getDomainOfStackGroups(stackGroups[axisId].stackGroups, dataStartIndex, dataEndIndex);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n } else {\n domain = parseSpecifiedDomain(originalDomain, getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), 'number', layout), Axis.defaultProps.allowDataOverflow);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n }\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, axisId, _objectSpread(_objectSpread({\n axisType: axisType\n }, Axis.defaultProps), {}, {\n hide: true,\n orientation: _get(ORIENT_MAP, \"\".concat(axisType, \".\").concat(index % 2), null),\n domain: domain,\n originalDomain: originalDomain,\n isCategorical: isCategorical,\n layout: layout\n // specify scale when no Axis\n // scale: isCategorical ? 'band' : 'linear',\n })));\n }\n\n return result;\n }, {});\n return axisMap;\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 */\nvar getAxisMap = function getAxisMap(props, _ref4) {\n var _ref4$axisType = _ref4.axisType,\n axisType = _ref4$axisType === void 0 ? 'xAxis' : _ref4$axisType,\n AxisComp = _ref4.AxisComp,\n graphicalItems = _ref4.graphicalItems,\n stackGroups = _ref4.stackGroups,\n dataStartIndex = _ref4.dataStartIndex,\n dataEndIndex = _ref4.dataEndIndex;\n var children = props.children;\n var axisIdKey = \"\".concat(axisType, \"Id\");\n // Get all the instance of Axis\n var axes = findAllByType(children, AxisComp);\n var axisMap = {};\n if (axes && axes.length) {\n axisMap = getAxisMapByAxes(props, {\n axes: axes,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n } else if (graphicalItems && graphicalItems.length) {\n axisMap = getAxisMapByItems(props, {\n Axis: AxisComp,\n graphicalItems: graphicalItems,\n axisType: axisType,\n axisIdKey: axisIdKey,\n stackGroups: stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n }\n return axisMap;\n};\nvar tooltipTicksGenerator = function tooltipTicksGenerator(axisMap) {\n var axis = getAnyElementOfObject(axisMap);\n var tooltipTicks = getTicksOfAxis(axis, false, true);\n return {\n tooltipTicks: tooltipTicks,\n orderedTooltipTicks: _sortBy(tooltipTicks, function (o) {\n return o.coordinate;\n }),\n tooltipAxis: axis,\n tooltipAxisBandSize: getBandSizeOfAxis(axis, tooltipTicks)\n };\n};\n\n/**\n * Returns default, reset state for the categorical chart.\n * @param {Object} props Props object to use when creating the default state\n * @return {Object} Whole new state\n */\nvar createDefaultState = function createDefaultState(props) {\n var _brushItem$props, _brushItem$props2;\n var children = props.children,\n defaultShowTooltip = props.defaultShowTooltip;\n var brushItem = findChildByType(children, Brush);\n var startIndex = brushItem && brushItem.props && brushItem.props.startIndex || 0;\n var endIndex = (brushItem === null || brushItem === void 0 ? void 0 : (_brushItem$props = brushItem.props) === null || _brushItem$props === void 0 ? void 0 : _brushItem$props.endIndex) !== undefined ? brushItem === null || brushItem === void 0 ? void 0 : (_brushItem$props2 = brushItem.props) === null || _brushItem$props2 === void 0 ? void 0 : _brushItem$props2.endIndex : props.data && props.data.length - 1 || 0;\n return {\n chartX: 0,\n chartY: 0,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n activeTooltipIndex: -1,\n isTooltipActive: !_isNil(defaultShowTooltip) ? defaultShowTooltip : false\n };\n};\nvar hasGraphicalBarItem = function hasGraphicalBarItem(graphicalItems) {\n if (!graphicalItems || !graphicalItems.length) {\n return false;\n }\n return graphicalItems.some(function (item) {\n var name = getDisplayName(item && item.type);\n return name && name.indexOf('Bar') >= 0;\n });\n};\nvar getAxisNameByLayout = function getAxisNameByLayout(layout) {\n if (layout === 'horizontal') {\n return {\n numericAxisName: 'yAxis',\n cateAxisName: 'xAxis'\n };\n }\n if (layout === 'vertical') {\n return {\n numericAxisName: 'xAxis',\n cateAxisName: 'yAxis'\n };\n }\n if (layout === 'centric') {\n return {\n numericAxisName: 'radiusAxis',\n cateAxisName: 'angleAxis'\n };\n }\n return {\n numericAxisName: 'angleAxis',\n cateAxisName: 'radiusAxis'\n };\n};\n\n/**\n * Calculate the offset of main part in the svg element\n * @param {Object} props Latest props\n * graphicalItems The instances of item\n * xAxisMap The configuration of x-axis\n * yAxisMap The configuration of y-axis\n * @param {Object} prevLegendBBox the boundary box of legend\n * @return {Object} The offset of main part in the svg element\n */\nvar calculateOffset = function calculateOffset(_ref5, prevLegendBBox) {\n var props = _ref5.props,\n graphicalItems = _ref5.graphicalItems,\n _ref5$xAxisMap = _ref5.xAxisMap,\n xAxisMap = _ref5$xAxisMap === void 0 ? {} : _ref5$xAxisMap,\n _ref5$yAxisMap = _ref5.yAxisMap,\n yAxisMap = _ref5$yAxisMap === void 0 ? {} : _ref5$yAxisMap;\n var width = props.width,\n height = props.height,\n children = props.children;\n var margin = props.margin || {};\n var brushItem = findChildByType(children, Brush);\n var legendItem = findChildByType(children, Legend);\n var offsetH = Object.keys(yAxisMap).reduce(function (result, id) {\n var entry = yAxisMap[id];\n var orientation = entry.orientation;\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, result[orientation] + entry.width));\n }\n return result;\n }, {\n left: margin.left || 0,\n right: margin.right || 0\n });\n var offsetV = Object.keys(xAxisMap).reduce(function (result, id) {\n var entry = xAxisMap[id];\n var orientation = entry.orientation;\n if (!entry.mirror && !entry.hide) {\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, orientation, _get(result, \"\".concat(orientation)) + entry.height));\n }\n return result;\n }, {\n top: margin.top || 0,\n bottom: margin.bottom || 0\n });\n var offset = _objectSpread(_objectSpread({}, offsetV), offsetH);\n var brushBottom = offset.bottom;\n if (brushItem) {\n offset.bottom += brushItem.props.height || Brush.defaultProps.height;\n }\n if (legendItem && prevLegendBBox) {\n offset = appendOffsetOfLegend(offset, graphicalItems, props, prevLegendBBox);\n }\n return _objectSpread(_objectSpread({\n brushBottom: brushBottom\n }, offset), {}, {\n width: width - offset.left - offset.right,\n height: height - offset.top - offset.bottom\n });\n};\nexport var generateCategoricalChart = function generateCategoricalChart(_ref6) {\n var _class;\n var chartName = _ref6.chartName,\n GraphicalChild = _ref6.GraphicalChild,\n _ref6$defaultTooltipE = _ref6.defaultTooltipEventType,\n defaultTooltipEventType = _ref6$defaultTooltipE === void 0 ? 'axis' : _ref6$defaultTooltipE,\n _ref6$validateTooltip = _ref6.validateTooltipEventTypes,\n validateTooltipEventTypes = _ref6$validateTooltip === void 0 ? ['axis'] : _ref6$validateTooltip,\n axisComponents = _ref6.axisComponents,\n legendContent = _ref6.legendContent,\n formatAxisMap = _ref6.formatAxisMap,\n defaultProps = _ref6.defaultProps;\n var getFormatItems = function getFormatItems(props, currentState) {\n var graphicalItems = currentState.graphicalItems,\n stackGroups = currentState.stackGroups,\n offset = currentState.offset,\n updateId = currentState.updateId,\n dataStartIndex = currentState.dataStartIndex,\n dataEndIndex = currentState.dataEndIndex;\n var barSize = props.barSize,\n layout = props.layout,\n barGap = props.barGap,\n barCategoryGap = props.barCategoryGap,\n globalMaxBarSize = props.maxBarSize;\n var _getAxisNameByLayout = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout.numericAxisName,\n cateAxisName = _getAxisNameByLayout.cateAxisName;\n var hasBar = hasGraphicalBarItem(graphicalItems);\n var sizeList = hasBar && getBarSizeList({\n barSize: barSize,\n stackGroups: stackGroups\n });\n var formattedItems = [];\n graphicalItems.forEach(function (item, index) {\n var displayedData = getDisplayedData(props.data, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, item);\n var _item$props = item.props,\n dataKey = _item$props.dataKey,\n childMaxBarSize = _item$props.maxBarSize;\n var numericAxisId = item.props[\"\".concat(numericAxisName, \"Id\")];\n var cateAxisId = item.props[\"\".concat(cateAxisName, \"Id\")];\n var axisObj = axisComponents.reduce(function (result, entry) {\n var _objectSpread6;\n var axisMap = currentState[\"\".concat(entry.axisType, \"Map\")];\n var id = item.props[\"\".concat(entry.axisType, \"Id\")];\n var axis = axisMap && axisMap[id];\n return _objectSpread(_objectSpread({}, result), {}, (_objectSpread6 = {}, _defineProperty(_objectSpread6, entry.axisType, axis), _defineProperty(_objectSpread6, \"\".concat(entry.axisType, \"Ticks\"), getTicksOfAxis(axis)), _objectSpread6));\n }, {});\n var cateAxis = axisObj[cateAxisName];\n var cateTicks = axisObj[\"\".concat(cateAxisName, \"Ticks\")];\n var stackedData = stackGroups && stackGroups[numericAxisId] && stackGroups[numericAxisId].hasStack && getStackedDataOfItem(item, stackGroups[numericAxisId].stackGroups);\n var itemIsBar = getDisplayName(item.type).indexOf('Bar') >= 0;\n var bandSize = getBandSizeOfAxis(cateAxis, cateTicks);\n var barPosition = [];\n if (itemIsBar) {\n var _ref7, _getBandSizeOfAxis;\n // 如果是bar,计算bar的位置\n var maxBarSize = _isNil(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n var barBandSize = (_ref7 = (_getBandSizeOfAxis = getBandSizeOfAxis(cateAxis, cateTicks, true)) !== null && _getBandSizeOfAxis !== void 0 ? _getBandSizeOfAxis : maxBarSize) !== null && _ref7 !== void 0 ? _ref7 : 0;\n barPosition = getBarPosition({\n barGap: barGap,\n barCategoryGap: barCategoryGap,\n bandSize: barBandSize !== bandSize ? barBandSize : bandSize,\n sizeList: sizeList[cateAxisId],\n maxBarSize: maxBarSize\n });\n if (barBandSize !== bandSize) {\n barPosition = barPosition.map(function (pos) {\n return _objectSpread(_objectSpread({}, pos), {}, {\n position: _objectSpread(_objectSpread({}, pos.position), {}, {\n offset: pos.position.offset - barBandSize / 2\n })\n });\n });\n }\n }\n var composedFn = item && item.type && item.type.getComposedData;\n if (composedFn) {\n var _objectSpread7;\n formattedItems.push({\n props: _objectSpread(_objectSpread({}, composedFn(_objectSpread(_objectSpread({}, axisObj), {}, {\n displayedData: displayedData,\n props: props,\n dataKey: dataKey,\n item: item,\n bandSize: bandSize,\n barPosition: barPosition,\n offset: offset,\n stackedData: stackedData,\n layout: layout,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))), {}, (_objectSpread7 = {\n key: item.key || \"item-\".concat(index)\n }, _defineProperty(_objectSpread7, numericAxisName, axisObj[numericAxisName]), _defineProperty(_objectSpread7, cateAxisName, axisObj[cateAxisName]), _defineProperty(_objectSpread7, \"animationId\", updateId), _objectSpread7)),\n childIndex: parseChildIndex(item, props.children),\n item: item\n });\n }\n });\n return formattedItems;\n };\n\n /**\n * The AxisMaps are expensive to render on large data sets\n * so provide the ability to store them in state and only update them when necessary\n * they are dependent upon the start and end index of\n * the brush so it's important that this method is called _after_\n * the state is updated with any new start/end indices\n *\n * @param {Object} props The props object to be used for updating the axismaps\n * dataStartIndex: The start index of the data series when a brush is applied\n * dataEndIndex: The end index of the data series when a brush is applied\n * updateId: The update id\n * @param {Object} prevState Prev state\n * @return {Object} state New state to set\n */\n var updateStateOfAxisMapsOffsetAndStackGroups = function updateStateOfAxisMapsOffsetAndStackGroups(_ref8, prevState) {\n var props = _ref8.props,\n dataStartIndex = _ref8.dataStartIndex,\n dataEndIndex = _ref8.dataEndIndex,\n updateId = _ref8.updateId;\n if (!validateWidthHeight({\n props: props\n })) {\n return null;\n }\n var children = props.children,\n layout = props.layout,\n stackOffset = props.stackOffset,\n data = props.data,\n reverseStackOrder = props.reverseStackOrder;\n var _getAxisNameByLayout2 = getAxisNameByLayout(layout),\n numericAxisName = _getAxisNameByLayout2.numericAxisName,\n cateAxisName = _getAxisNameByLayout2.cateAxisName;\n var graphicalItems = findAllByType(children, GraphicalChild);\n var stackGroups = getStackGroupsByAxisId(data, graphicalItems, \"\".concat(numericAxisName, \"Id\"), \"\".concat(cateAxisName, \"Id\"), stackOffset, reverseStackOrder);\n var axisObj = axisComponents.reduce(function (result, entry) {\n var name = \"\".concat(entry.axisType, \"Map\");\n return _objectSpread(_objectSpread({}, result), {}, _defineProperty({}, name, getAxisMap(props, _objectSpread(_objectSpread({}, entry), {}, {\n graphicalItems: graphicalItems,\n stackGroups: entry.axisType === numericAxisName && stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))));\n }, {});\n var offset = calculateOffset(_objectSpread(_objectSpread({}, axisObj), {}, {\n props: props,\n graphicalItems: graphicalItems\n }), prevState === null || prevState === void 0 ? void 0 : prevState.legendBBox);\n Object.keys(axisObj).forEach(function (key) {\n axisObj[key] = formatAxisMap(props, axisObj[key], offset, key.replace('Map', ''), chartName);\n });\n var cateAxisMap = axisObj[\"\".concat(cateAxisName, \"Map\")];\n var ticksObj = tooltipTicksGenerator(cateAxisMap);\n var formattedGraphicalItems = getFormatItems(props, _objectSpread(_objectSpread({}, axisObj), {}, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId,\n graphicalItems: graphicalItems,\n stackGroups: stackGroups,\n offset: offset\n }));\n return _objectSpread(_objectSpread({\n formattedGraphicalItems: formattedGraphicalItems,\n graphicalItems: graphicalItems,\n offset: offset,\n stackGroups: stackGroups\n }, ticksObj), axisObj);\n };\n return _class = /*#__PURE__*/function (_Component) {\n _inherits(CategoricalChartWrapper, _Component);\n var _super = _createSuper(CategoricalChartWrapper);\n function CategoricalChartWrapper(_props) {\n var _this;\n _classCallCheck(this, CategoricalChartWrapper);\n _this = _super.call(this, _props);\n _defineProperty(_assertThisInitialized(_this), \"accessibilityManager\", new AccessibilityManager());\n _defineProperty(_assertThisInitialized(_this), \"clearDeferId\", function () {\n if (!_isNil(_this.deferId) && deferClear) {\n deferClear(_this.deferId);\n }\n _this.deferId = null;\n });\n _defineProperty(_assertThisInitialized(_this), \"handleLegendBBoxUpdate\", function (box) {\n if (box) {\n var _this$state = _this.state,\n dataStartIndex = _this$state.dataStartIndex,\n dataEndIndex = _this$state.dataEndIndex,\n updateId = _this$state.updateId;\n _this.setState(_objectSpread({\n legendBBox: box\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, _objectSpread(_objectSpread({}, _this.state), {}, {\n legendBBox: box\n }))));\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleReceiveSyncEvent\", function (cId, chartId, data) {\n var syncId = _this.props.syncId;\n if (syncId === cId && chartId !== _this.uniqueChartId) {\n _this.clearDeferId();\n _this.deferId = defer && defer(_this.applySyncEvent.bind(_assertThisInitialized(_this), data));\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleBrushChange\", function (_ref9) {\n var startIndex = _ref9.startIndex,\n endIndex = _ref9.endIndex;\n // Only trigger changes if the extents of the brush have actually changed\n if (startIndex !== _this.state.dataStartIndex || endIndex !== _this.state.dataEndIndex) {\n var updateId = _this.state.updateId;\n _this.setState(function () {\n return _objectSpread({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n updateId: updateId\n }, _this.state));\n });\n _this.triggerSyncEvent({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n });\n }\n });\n /**\n * The handler of mouse entering chart\n * @param {Object} e Event object\n * @return {Null} null\n */\n _defineProperty(_assertThisInitialized(_this), \"handleMouseEnter\", function (e) {\n var onMouseEnter = _this.props.onMouseEnter;\n var mouse = _this.getMouseInfo(e);\n if (mouse) {\n var _nextState = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n _this.setState(_nextState);\n _this.triggerSyncEvent(_nextState);\n if (_isFunction(onMouseEnter)) {\n onMouseEnter(_nextState, e);\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"triggeredAfterMouseMove\", function (e) {\n var onMouseMove = _this.props.onMouseMove;\n var mouse = _this.getMouseInfo(e);\n var nextState = mouse ? _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n }) : {\n isTooltipActive: false\n };\n _this.setState(nextState);\n _this.triggerSyncEvent(nextState);\n if (_isFunction(onMouseMove)) {\n onMouseMove(nextState, e);\n }\n });\n /**\n * The handler of mouse entering a scatter\n * @param {Object} el The active scatter\n * @return {Object} no return\n */\n _defineProperty(_assertThisInitialized(_this), \"handleItemMouseEnter\", function (el) {\n _this.setState(function () {\n return {\n isTooltipActive: true,\n activeItem: el,\n activePayload: el.tooltipPayload,\n activeCoordinate: el.tooltipPosition || {\n x: el.cx,\n y: el.cy\n }\n };\n });\n });\n /**\n * The handler of mouse leaving a scatter\n * @return {Object} no return\n */\n _defineProperty(_assertThisInitialized(_this), \"handleItemMouseLeave\", function () {\n _this.setState(function () {\n return {\n isTooltipActive: false\n };\n });\n });\n /**\n * The handler of mouse moving in chart\n * @param {Object} e Event object\n * @return {Null} no return\n */\n _defineProperty(_assertThisInitialized(_this), \"handleMouseMove\", function (e) {\n if (e && _isFunction(e.persist)) {\n e.persist();\n }\n _this.triggeredAfterMouseMove(e);\n });\n /**\n * The handler if mouse leaving chart\n * @param {Object} e Event object\n * @return {Null} no return\n */\n _defineProperty(_assertThisInitialized(_this), \"handleMouseLeave\", function (e) {\n var onMouseLeave = _this.props.onMouseLeave;\n var nextState = {\n isTooltipActive: false\n };\n _this.setState(nextState);\n _this.triggerSyncEvent(nextState);\n if (_isFunction(onMouseLeave)) {\n onMouseLeave(nextState, e);\n }\n _this.cancelThrottledTriggerAfterMouseMove();\n });\n _defineProperty(_assertThisInitialized(_this), \"handleOuterEvent\", function (e) {\n var eventName = getReactEventByType(e);\n var event = _get(_this.props, \"\".concat(eventName));\n if (eventName && _isFunction(event)) {\n var mouse;\n if (/.*touch.*/i.test(eventName)) {\n mouse = _this.getMouseInfo(e.changedTouches[0]);\n } else {\n mouse = _this.getMouseInfo(e);\n }\n var handler = event;\n\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n handler(mouse, e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleClick\", function (e) {\n var onClick = _this.props.onClick;\n var mouse = _this.getMouseInfo(e);\n if (mouse) {\n var _nextState2 = _objectSpread(_objectSpread({}, mouse), {}, {\n isTooltipActive: true\n });\n _this.setState(_nextState2);\n _this.triggerSyncEvent(_nextState2);\n if (_isFunction(onClick)) {\n onClick(_nextState2, e);\n }\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleMouseDown\", function (e) {\n var onMouseDown = _this.props.onMouseDown;\n if (_isFunction(onMouseDown)) {\n var _nextState3 = _this.getMouseInfo(e);\n onMouseDown(_nextState3, e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleMouseUp\", function (e) {\n var onMouseUp = _this.props.onMouseUp;\n if (_isFunction(onMouseUp)) {\n var _nextState4 = _this.getMouseInfo(e);\n onMouseUp(_nextState4, e);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleTouchMove\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseMove(e.changedTouches[0]);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleTouchStart\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseDown(e.changedTouches[0]);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"handleTouchEnd\", function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseUp(e.changedTouches[0]);\n }\n });\n _defineProperty(_assertThisInitialized(_this), \"verticalCoordinatesGenerator\", function (_ref10) {\n var xAxis = _ref10.xAxis,\n width = _ref10.width,\n height = _ref10.height,\n offset = _ref10.offset;\n return getCoordinatesOfGrid(getTicks(_objectSpread(_objectSpread(_objectSpread({}, CartesianAxis.defaultProps), xAxis), {}, {\n ticks: getTicksOfAxis(xAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n }\n })), offset.left, offset.left + offset.width);\n });\n _defineProperty(_assertThisInitialized(_this), \"horizontalCoordinatesGenerator\", function (_ref11) {\n var yAxis = _ref11.yAxis,\n width = _ref11.width,\n height = _ref11.height,\n offset = _ref11.offset;\n return getCoordinatesOfGrid(getTicks(_objectSpread(_objectSpread(_objectSpread({}, CartesianAxis.defaultProps), yAxis), {}, {\n ticks: getTicksOfAxis(yAxis, true),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n }\n })), offset.top, offset.top + offset.height);\n });\n _defineProperty(_assertThisInitialized(_this), \"axesTicksGenerator\", function (axis) {\n return getTicksOfAxis(axis, true);\n });\n _defineProperty(_assertThisInitialized(_this), \"renderCursor\", function (element) {\n var _this$state2 = _this.state,\n isTooltipActive = _this$state2.isTooltipActive,\n activeCoordinate = _this$state2.activeCoordinate,\n activePayload = _this$state2.activePayload,\n offset = _this$state2.offset,\n activeTooltipIndex = _this$state2.activeTooltipIndex;\n var tooltipEventType = _this.getTooltipEventType();\n if (!element || !element.props.cursor || !isTooltipActive || !activeCoordinate || chartName !== 'ScatterChart' && tooltipEventType !== 'axis') {\n return null;\n }\n var layout = _this.props.layout;\n var restProps;\n var cursorComp = Curve;\n if (chartName === 'ScatterChart') {\n restProps = activeCoordinate;\n cursorComp = Cross;\n } else if (chartName === 'BarChart') {\n restProps = _this.getCursorRectangle();\n cursorComp = Rectangle;\n } else if (layout === 'radial') {\n var _this$getCursorPoints = _this.getCursorPoints(),\n cx = _this$getCursorPoints.cx,\n cy = _this$getCursorPoints.cy,\n radius = _this$getCursorPoints.radius,\n startAngle = _this$getCursorPoints.startAngle,\n endAngle = _this$getCursorPoints.endAngle;\n restProps = {\n cx: cx,\n cy: cy,\n startAngle: startAngle,\n endAngle: endAngle,\n innerRadius: radius,\n outerRadius: radius\n };\n cursorComp = Sector;\n } else {\n restProps = {\n points: _this.getCursorPoints()\n };\n cursorComp = Curve;\n }\n var key = element.key || '_recharts-cursor';\n var cursorProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({\n stroke: '#ccc',\n pointerEvents: 'none'\n }, offset), restProps), filterProps(element.props.cursor)), {}, {\n payload: activePayload,\n payloadIndex: activeTooltipIndex,\n key: key,\n className: 'recharts-tooltip-cursor'\n });\n return /*#__PURE__*/isValidElement(element.props.cursor) ? /*#__PURE__*/cloneElement(element.props.cursor, cursorProps) : /*#__PURE__*/createElement(cursorComp, cursorProps);\n });\n _defineProperty(_assertThisInitialized(_this), \"renderPolarAxis\", function (element, displayName, index) {\n var axisType = _get(element, 'type.axisType');\n var axisMap = _get(_this.state, \"\".concat(axisType, \"Map\"));\n var axisOption = axisMap && axisMap[element.props[\"\".concat(axisType, \"Id\")]];\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, axisOption), {}, {\n className: axisType,\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n ticks: getTicksOfAxis(axisOption, true)\n }));\n });\n _defineProperty(_assertThisInitialized(_this), \"renderXAxis\", function (element, displayName, index) {\n var xAxisMap = _this.state.xAxisMap;\n var axisObj = xAxisMap[element.props.xAxisId];\n return _this.renderAxis(axisObj, element, displayName, index);\n });\n _defineProperty(_assertThisInitialized(_this), \"renderYAxis\", function (element, displayName, index) {\n var yAxisMap = _this.state.yAxisMap;\n var axisObj = yAxisMap[element.props.yAxisId];\n return _this.renderAxis(axisObj, element, displayName, index);\n });\n /**\n * Draw grid\n * @param {ReactElement} element the grid item\n * @return {ReactElement} The instance of grid\n */\n _defineProperty(_assertThisInitialized(_this), \"renderGrid\", function (element) {\n var _this$state3 = _this.state,\n xAxisMap = _this$state3.xAxisMap,\n yAxisMap = _this$state3.yAxisMap,\n offset = _this$state3.offset;\n var _this$props = _this.props,\n width = _this$props.width,\n height = _this$props.height;\n var xAxis = getAnyElementOfObject(xAxisMap);\n var yAxisWithFiniteDomain = _find(yAxisMap, function (axis) {\n return _every(axis.domain, isFinit);\n });\n var yAxis = yAxisWithFiniteDomain || getAnyElementOfObject(yAxisMap);\n var props = element.props || {};\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || 'grid',\n x: isNumber(props.x) ? props.x : offset.left,\n y: isNumber(props.y) ? props.y : offset.top,\n width: isNumber(props.width) ? props.width : offset.width,\n height: isNumber(props.height) ? props.height : offset.height,\n xAxis: xAxis,\n yAxis: yAxis,\n offset: offset,\n chartWidth: width,\n chartHeight: height,\n verticalCoordinatesGenerator: props.verticalCoordinatesGenerator || _this.verticalCoordinatesGenerator,\n horizontalCoordinatesGenerator: props.horizontalCoordinatesGenerator || _this.horizontalCoordinatesGenerator\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"renderPolarGrid\", function (element) {\n var _element$props = element.props,\n radialLines = _element$props.radialLines,\n polarAngles = _element$props.polarAngles,\n polarRadius = _element$props.polarRadius;\n var _this$state4 = _this.state,\n radiusAxisMap = _this$state4.radiusAxisMap,\n angleAxisMap = _this$state4.angleAxisMap;\n var radiusAxis = getAnyElementOfObject(radiusAxisMap);\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n var cx = angleAxis.cx,\n cy = angleAxis.cy,\n innerRadius = angleAxis.innerRadius,\n outerRadius = angleAxis.outerRadius;\n return /*#__PURE__*/cloneElement(element, {\n polarAngles: _isArray(polarAngles) ? polarAngles : getTicksOfAxis(angleAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n polarRadius: _isArray(polarRadius) ? polarRadius : getTicksOfAxis(radiusAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n key: element.key || 'polar-grid',\n radialLines: radialLines\n });\n });\n /**\n * Draw legend\n * @return {ReactElement} The instance of Legend\n */\n _defineProperty(_assertThisInitialized(_this), \"renderLegend\", function () {\n var formattedGraphicalItems = _this.state.formattedGraphicalItems;\n var _this$props2 = _this.props,\n children = _this$props2.children,\n width = _this$props2.width,\n height = _this$props2.height;\n var margin = _this.props.margin || {};\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var props = getLegendProps({\n children: children,\n formattedGraphicalItems: formattedGraphicalItems,\n legendWidth: legendWidth,\n legendContent: legendContent\n });\n if (!props) {\n return null;\n }\n var item = props.item,\n otherProps = _objectWithoutProperties(props, _excluded);\n return /*#__PURE__*/cloneElement(item, _objectSpread(_objectSpread({}, otherProps), {}, {\n chartWidth: width,\n chartHeight: height,\n margin: margin,\n ref: function ref(legend) {\n _this.legendInstance = legend;\n },\n onBBoxUpdate: _this.handleLegendBBoxUpdate\n }));\n });\n /**\n * Draw Tooltip\n * @return {ReactElement} The instance of Tooltip\n */\n _defineProperty(_assertThisInitialized(_this), \"renderTooltip\", function () {\n var children = _this.props.children;\n var tooltipItem = findChildByType(children, Tooltip);\n if (!tooltipItem) {\n return null;\n }\n var _this$state5 = _this.state,\n isTooltipActive = _this$state5.isTooltipActive,\n activeCoordinate = _this$state5.activeCoordinate,\n activePayload = _this$state5.activePayload,\n activeLabel = _this$state5.activeLabel,\n offset = _this$state5.offset;\n return /*#__PURE__*/cloneElement(tooltipItem, {\n viewBox: _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n }),\n active: isTooltipActive,\n label: activeLabel,\n payload: isTooltipActive ? activePayload : [],\n coordinate: activeCoordinate\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"renderBrush\", function (element) {\n var _this$props3 = _this.props,\n margin = _this$props3.margin,\n data = _this$props3.data;\n var _this$state6 = _this.state,\n offset = _this$state6.offset,\n dataStartIndex = _this$state6.dataStartIndex,\n dataEndIndex = _this$state6.dataEndIndex,\n updateId = _this$state6.updateId;\n\n // TODO: update brush when children update\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || '_recharts-brush',\n onChange: combineEventHandlers(_this.handleBrushChange, null, element.props.onChange),\n data: data,\n x: isNumber(element.props.x) ? element.props.x : offset.left,\n y: isNumber(element.props.y) ? element.props.y : offset.top + offset.height + offset.brushBottom - (margin.bottom || 0),\n width: isNumber(element.props.width) ? element.props.width : offset.width,\n startIndex: dataStartIndex,\n endIndex: dataEndIndex,\n updateId: \"brush-\".concat(updateId)\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"renderReferenceElement\", function (element, displayName, index) {\n if (!element) {\n return null;\n }\n var _assertThisInitialize = _assertThisInitialized(_this),\n clipPathId = _assertThisInitialize.clipPathId;\n var _this$state7 = _this.state,\n xAxisMap = _this$state7.xAxisMap,\n yAxisMap = _this$state7.yAxisMap,\n offset = _this$state7.offset;\n var _element$props2 = element.props,\n xAxisId = _element$props2.xAxisId,\n yAxisId = _element$props2.yAxisId;\n return /*#__PURE__*/cloneElement(element, {\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n xAxis: xAxisMap[xAxisId],\n yAxis: yAxisMap[yAxisId],\n viewBox: {\n x: offset.left,\n y: offset.top,\n width: offset.width,\n height: offset.height\n },\n clipPathId: clipPathId\n });\n });\n _defineProperty(_assertThisInitialized(_this), \"renderActivePoints\", function (_ref12) {\n var item = _ref12.item,\n activePoint = _ref12.activePoint,\n basePoint = _ref12.basePoint,\n childIndex = _ref12.childIndex,\n isRange = _ref12.isRange;\n var result = [];\n var key = item.props.key;\n var _item$item$props = item.item.props,\n activeDot = _item$item$props.activeDot,\n dataKey = _item$item$props.dataKey;\n var dotProps = _objectSpread(_objectSpread({\n index: childIndex,\n dataKey: dataKey,\n cx: activePoint.x,\n cy: activePoint.y,\n r: 4,\n fill: getMainColorOfGraphicItem(item.item),\n strokeWidth: 2,\n stroke: '#fff',\n payload: activePoint.payload,\n value: activePoint.value,\n key: \"\".concat(key, \"-activePoint-\").concat(childIndex)\n }, filterProps(activeDot)), adaptEventHandlers(activeDot));\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, dotProps));\n if (basePoint) {\n result.push(CategoricalChartWrapper.renderActiveDot(activeDot, _objectSpread(_objectSpread({}, dotProps), {}, {\n cx: basePoint.x,\n cy: basePoint.y,\n key: \"\".concat(key, \"-basePoint-\").concat(childIndex)\n })));\n } else if (isRange) {\n result.push(null);\n }\n return result;\n });\n _defineProperty(_assertThisInitialized(_this), \"renderGraphicChild\", function (element, displayName, index) {\n var item = _this.filterFormatItem(element, displayName, index);\n if (!item) {\n return null;\n }\n var tooltipEventType = _this.getTooltipEventType();\n var _this$state8 = _this.state,\n isTooltipActive = _this$state8.isTooltipActive,\n tooltipAxis = _this$state8.tooltipAxis,\n activeTooltipIndex = _this$state8.activeTooltipIndex,\n activeLabel = _this$state8.activeLabel;\n var children = _this.props.children;\n var tooltipItem = findChildByType(children, Tooltip);\n var _item$props2 = item.props,\n points = _item$props2.points,\n isRange = _item$props2.isRange,\n baseLine = _item$props2.baseLine;\n var _item$item$props2 = item.item.props,\n activeDot = _item$item$props2.activeDot,\n hide = _item$item$props2.hide;\n var hasActive = !hide && isTooltipActive && tooltipItem && activeDot && activeTooltipIndex >= 0;\n var itemEvents = {};\n if (tooltipEventType !== 'axis' && tooltipItem && tooltipItem.props.trigger === 'click') {\n itemEvents = {\n onClick: combineEventHandlers(_this.handleItemMouseEnter, null, element.props.onCLick)\n };\n } else if (tooltipEventType !== 'axis') {\n itemEvents = {\n onMouseLeave: combineEventHandlers(_this.handleItemMouseLeave, null, element.props.onMouseLeave),\n onMouseEnter: combineEventHandlers(_this.handleItemMouseEnter, null, element.props.onMouseEnter)\n };\n }\n var graphicalItem = /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({}, item.props), itemEvents));\n function findWithPayload(entry) {\n // TODO needs to verify dataKey is Function\n return typeof tooltipAxis.dataKey === 'function' ? tooltipAxis.dataKey(entry.payload) : null;\n }\n if (hasActive) {\n var activePoint, basePoint;\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // number transform to string\n var specifiedKey = typeof tooltipAxis.dataKey === 'function' ? findWithPayload : 'payload.'.concat(tooltipAxis.dataKey.toString());\n activePoint = findEntryInArray(points, specifiedKey, activeLabel);\n basePoint = isRange && baseLine && findEntryInArray(baseLine, specifiedKey, activeLabel);\n } else {\n activePoint = points[activeTooltipIndex];\n basePoint = isRange && baseLine && baseLine[activeTooltipIndex];\n }\n if (!_isNil(activePoint)) {\n return [graphicalItem].concat(_toConsumableArray(_this.renderActivePoints({\n item: item,\n activePoint: activePoint,\n basePoint: basePoint,\n childIndex: activeTooltipIndex,\n isRange: isRange\n })));\n }\n }\n if (isRange) {\n return [graphicalItem, null, null];\n }\n return [graphicalItem, null];\n });\n _defineProperty(_assertThisInitialized(_this), \"renderCustomized\", function (element, displayName, index) {\n return /*#__PURE__*/cloneElement(element, _objectSpread(_objectSpread({\n key: \"recharts-customized-\".concat(index)\n }, _this.props), _this.state));\n });\n _this.uniqueChartId = _isNil(_props.id) ? uniqueId('recharts') : _props.id;\n _this.clipPathId = \"\".concat(_this.uniqueChartId, \"-clip\");\n if (_props.throttleDelay) {\n _this.triggeredAfterMouseMove = _throttle(_this.triggeredAfterMouseMove, _props.throttleDelay);\n }\n _this.state = {};\n return _this;\n }\n _createClass(CategoricalChartWrapper, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this$props$margin$le, _this$props$margin$to;\n if (!_isNil(this.props.syncId)) {\n this.addListener();\n }\n this.accessibilityManager.setDetails({\n container: this.container,\n offset: {\n left: (_this$props$margin$le = this.props.margin.left) !== null && _this$props$margin$le !== void 0 ? _this$props$margin$le : 0,\n top: (_this$props$margin$to = this.props.margin.top) !== null && _this$props$margin$to !== void 0 ? _this$props$margin$to : 0\n },\n coordinateList: this.state.tooltipTicks,\n mouseHandlerCallback: this.handleMouseMove,\n layout: this.props.layout\n });\n }\n }, {\n key: \"getSnapshotBeforeUpdate\",\n value: function getSnapshotBeforeUpdate(prevProps, prevState) {\n if (!this.props.accessibilityLayer) {\n return null;\n }\n if (this.state.tooltipTicks !== prevState.tooltipTicks) {\n this.accessibilityManager.setDetails({\n coordinateList: this.state.tooltipTicks\n });\n }\n if (this.props.layout !== prevProps.layout) {\n this.accessibilityManager.setDetails({\n layout: this.props.layout\n });\n }\n if (this.props.margin !== prevProps.margin) {\n var _this$props$margin$le2, _this$props$margin$to2;\n this.accessibilityManager.setDetails({\n offset: {\n left: (_this$props$margin$le2 = this.props.margin.left) !== null && _this$props$margin$le2 !== void 0 ? _this$props$margin$le2 : 0,\n top: (_this$props$margin$to2 = this.props.margin.top) !== null && _this$props$margin$to2 !== void 0 ? _this$props$margin$to2 : 0\n }\n });\n }\n\n // Something has to be returned for getSnapshotBeforeUpdate\n return null;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n // add syncId\n if (_isNil(prevProps.syncId) && !_isNil(this.props.syncId)) {\n this.addListener();\n }\n // remove syncId\n if (!_isNil(prevProps.syncId) && _isNil(this.props.syncId)) {\n this.removeListener();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.clearDeferId();\n if (!_isNil(this.props.syncId)) {\n this.removeListener();\n }\n this.cancelThrottledTriggerAfterMouseMove();\n }\n }, {\n key: \"cancelThrottledTriggerAfterMouseMove\",\n value: function cancelThrottledTriggerAfterMouseMove() {\n if (typeof this.triggeredAfterMouseMove.cancel === 'function') {\n this.triggeredAfterMouseMove.cancel();\n }\n }\n }, {\n key: \"getTooltipEventType\",\n value: function getTooltipEventType() {\n var tooltipItem = findChildByType(this.props.children, Tooltip);\n if (tooltipItem && _isBoolean(tooltipItem.props.shared)) {\n var eventType = tooltipItem.props.shared ? 'axis' : 'item';\n return validateTooltipEventTypes.indexOf(eventType) >= 0 ? eventType : defaultTooltipEventType;\n }\n return defaultTooltipEventType;\n }\n\n /**\n * Get the information of mouse in chart, return null when the mouse is not in the chart\n * @param {Object} event The event object\n * @return {Object} Mouse data\n */\n }, {\n key: \"getMouseInfo\",\n value: function getMouseInfo(event) {\n if (!this.container) {\n return null;\n }\n var containerOffset = getOffset(this.container);\n var e = calculateChartCoordinate(event, containerOffset);\n var rangeObj = this.inRange(e.chartX, e.chartY);\n if (!rangeObj) {\n return null;\n }\n var _this$state9 = this.state,\n xAxisMap = _this$state9.xAxisMap,\n yAxisMap = _this$state9.yAxisMap;\n var tooltipEventType = this.getTooltipEventType();\n if (tooltipEventType !== 'axis' && xAxisMap && yAxisMap) {\n var xScale = getAnyElementOfObject(xAxisMap).scale;\n var yScale = getAnyElementOfObject(yAxisMap).scale;\n var xValue = xScale && xScale.invert ? xScale.invert(e.chartX) : null;\n var yValue = yScale && yScale.invert ? yScale.invert(e.chartY) : null;\n return _objectSpread(_objectSpread({}, e), {}, {\n xValue: xValue,\n yValue: yValue\n });\n }\n var toolTipData = getTooltipData(this.state, this.props.data, this.props.layout, rangeObj);\n if (toolTipData) {\n return _objectSpread(_objectSpread({}, e), toolTipData);\n }\n return null;\n }\n }, {\n key: \"getCursorRectangle\",\n value: function getCursorRectangle() {\n var layout = this.props.layout;\n var _this$state10 = this.state,\n activeCoordinate = _this$state10.activeCoordinate,\n offset = _this$state10.offset,\n tooltipAxisBandSize = _this$state10.tooltipAxisBandSize;\n var halfSize = tooltipAxisBandSize / 2;\n return {\n stroke: 'none',\n fill: '#ccc',\n x: layout === 'horizontal' ? activeCoordinate.x - halfSize : offset.left + 0.5,\n y: layout === 'horizontal' ? offset.top + 0.5 : activeCoordinate.y - halfSize,\n width: layout === 'horizontal' ? tooltipAxisBandSize : offset.width - 1,\n height: layout === 'horizontal' ? offset.height - 1 : tooltipAxisBandSize\n };\n }\n }, {\n key: \"getCursorPoints\",\n value: function getCursorPoints() {\n var layout = this.props.layout;\n var _this$state11 = this.state,\n activeCoordinate = _this$state11.activeCoordinate,\n offset = _this$state11.offset;\n var x1, y1, x2, y2;\n if (layout === 'horizontal') {\n x1 = activeCoordinate.x;\n x2 = x1;\n y1 = offset.top;\n y2 = offset.top + offset.height;\n } else if (layout === 'vertical') {\n y1 = activeCoordinate.y;\n y2 = y1;\n x1 = offset.left;\n x2 = offset.left + offset.width;\n } else if (!_isNil(activeCoordinate.cx) || !_isNil(activeCoordinate.cy)) {\n if (layout === 'centric') {\n var cx = activeCoordinate.cx,\n cy = activeCoordinate.cy,\n innerRadius = activeCoordinate.innerRadius,\n outerRadius = activeCoordinate.outerRadius,\n angle = activeCoordinate.angle;\n var innerPoint = polarToCartesian(cx, cy, innerRadius, angle);\n var outerPoint = polarToCartesian(cx, cy, outerRadius, angle);\n x1 = innerPoint.x;\n y1 = innerPoint.y;\n x2 = outerPoint.x;\n y2 = outerPoint.y;\n } else {\n var _cx = activeCoordinate.cx,\n _cy = activeCoordinate.cy,\n radius = activeCoordinate.radius,\n startAngle = activeCoordinate.startAngle,\n endAngle = activeCoordinate.endAngle;\n var startPoint = polarToCartesian(_cx, _cy, radius, startAngle);\n var endPoint = polarToCartesian(_cx, _cy, radius, endAngle);\n return {\n points: [startPoint, endPoint],\n cx: _cx,\n cy: _cy,\n radius: radius,\n startAngle: startAngle,\n endAngle: endAngle\n };\n }\n }\n return [{\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n }];\n }\n }, {\n key: \"inRange\",\n value: function inRange(x, y) {\n var layout = this.props.layout;\n if (layout === 'horizontal' || layout === 'vertical') {\n var offset = this.state.offset;\n var isInRange = x >= offset.left && x <= offset.left + offset.width && y >= offset.top && y <= offset.top + offset.height;\n return isInRange ? {\n x: x,\n y: y\n } : null;\n }\n var _this$state12 = this.state,\n angleAxisMap = _this$state12.angleAxisMap,\n radiusAxisMap = _this$state12.radiusAxisMap;\n if (angleAxisMap && radiusAxisMap) {\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n return inRangeOfSector({\n x: x,\n y: y\n }, angleAxis);\n }\n return null;\n }\n }, {\n key: \"parseEventsOfWrapper\",\n value: function parseEventsOfWrapper() {\n var children = this.props.children;\n var tooltipEventType = this.getTooltipEventType();\n var tooltipItem = findChildByType(children, Tooltip);\n var tooltipEvents = {};\n if (tooltipItem && tooltipEventType === 'axis') {\n if (tooltipItem.props.trigger === 'click') {\n tooltipEvents = {\n onClick: this.handleClick\n };\n } else {\n tooltipEvents = {\n onMouseEnter: this.handleMouseEnter,\n onMouseMove: this.handleMouseMove,\n onMouseLeave: this.handleMouseLeave,\n onTouchMove: this.handleTouchMove,\n onTouchStart: this.handleTouchStart,\n onTouchEnd: this.handleTouchEnd\n };\n }\n }\n var outerEvents = adaptEventHandlers(this.props, this.handleOuterEvent);\n return _objectSpread(_objectSpread({}, outerEvents), tooltipEvents);\n }\n\n /* eslint-disable no-underscore-dangle */\n }, {\n key: \"addListener\",\n value: function addListener() {\n eventCenter.on(SYNC_EVENT, this.handleReceiveSyncEvent);\n if (eventCenter.setMaxListeners && eventCenter._maxListeners) {\n eventCenter.setMaxListeners(eventCenter._maxListeners + 1);\n }\n }\n }, {\n key: \"removeListener\",\n value: function removeListener() {\n eventCenter.removeListener(SYNC_EVENT, this.handleReceiveSyncEvent);\n if (eventCenter.setMaxListeners && eventCenter._maxListeners) {\n eventCenter.setMaxListeners(eventCenter._maxListeners - 1);\n }\n }\n }, {\n key: \"triggerSyncEvent\",\n value: function triggerSyncEvent(data) {\n var syncId = this.props.syncId;\n if (!_isNil(syncId)) {\n eventCenter.emit(SYNC_EVENT, syncId, this.uniqueChartId, data);\n }\n }\n }, {\n key: \"applySyncEvent\",\n value: function applySyncEvent(data) {\n var _this$props4 = this.props,\n layout = _this$props4.layout,\n syncMethod = _this$props4.syncMethod;\n var updateId = this.state.updateId;\n var dataStartIndex = data.dataStartIndex,\n dataEndIndex = data.dataEndIndex;\n if (!_isNil(data.dataStartIndex) || !_isNil(data.dataEndIndex)) {\n this.setState(_objectSpread({\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, updateStateOfAxisMapsOffsetAndStackGroups({\n props: this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }, this.state)));\n } else if (!_isNil(data.activeTooltipIndex)) {\n var chartX = data.chartX,\n chartY = data.chartY;\n var activeTooltipIndex = data.activeTooltipIndex;\n var _this$state13 = this.state,\n offset = _this$state13.offset,\n tooltipTicks = _this$state13.tooltipTicks;\n if (!offset) {\n return;\n }\n if (typeof syncMethod === 'function') {\n // Call a callback function. If there is an application specific algorithm\n activeTooltipIndex = syncMethod(tooltipTicks, data);\n } else if (syncMethod === 'value') {\n // Set activeTooltipIndex to the index with the same value as data.activeLabel\n // For loop instead of findIndex because the latter is very slow in some browsers\n activeTooltipIndex = -1; // in case we cannot find the element\n for (var i = 0; i < tooltipTicks.length; i++) {\n if (tooltipTicks[i].value === data.activeLabel) {\n activeTooltipIndex = i;\n break;\n }\n }\n }\n var viewBox = _objectSpread(_objectSpread({}, offset), {}, {\n x: offset.left,\n y: offset.top\n });\n // When a categorical chart is combined with another chart, the value of chartX\n // and chartY may beyond the boundaries.\n var validateChartX = Math.min(chartX, viewBox.x + viewBox.width);\n var validateChartY = Math.min(chartY, viewBox.y + viewBox.height);\n var activeLabel = tooltipTicks[activeTooltipIndex] && tooltipTicks[activeTooltipIndex].value;\n var activePayload = getTooltipContent(this.state, this.props.data, activeTooltipIndex);\n var activeCoordinate = tooltipTicks[activeTooltipIndex] ? {\n x: layout === 'horizontal' ? tooltipTicks[activeTooltipIndex].coordinate : validateChartX,\n y: layout === 'horizontal' ? validateChartY : tooltipTicks[activeTooltipIndex].coordinate\n } : originCoordinate;\n this.setState(_objectSpread(_objectSpread({}, data), {}, {\n activeLabel: activeLabel,\n activeCoordinate: activeCoordinate,\n activePayload: activePayload,\n activeTooltipIndex: activeTooltipIndex\n }));\n } else {\n this.setState(data);\n }\n }\n }, {\n key: \"filterFormatItem\",\n value: function filterFormatItem(item, displayName, childIndex) {\n var formattedGraphicalItems = this.state.formattedGraphicalItems;\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var entry = formattedGraphicalItems[i];\n if (entry.item === item || entry.props.key === item.key || displayName === getDisplayName(entry.item.type) && childIndex === entry.childIndex) {\n return entry;\n }\n }\n return null;\n }\n }, {\n key: \"renderAxis\",\n value:\n /**\n * Draw axis\n * @param {Object} axisOptions The options of axis\n * @param {Object} element The axis element\n * @param {String} displayName The display name of axis\n * @param {Number} index The index of element\n * @return {ReactElement} The instance of x-axes\n */\n function renderAxis(axisOptions, element, displayName, index) {\n var _this$props5 = this.props,\n width = _this$props5.width,\n height = _this$props5.height;\n return /*#__PURE__*/React.createElement(CartesianAxis, _extends({}, axisOptions, {\n className: \"recharts-\".concat(axisOptions.axisType, \" \").concat(axisOptions.axisType),\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n viewBox: {\n x: 0,\n y: 0,\n width: width,\n height: height\n },\n ticksGenerator: this.axesTicksGenerator\n }));\n }\n }, {\n key: \"renderClipPath\",\n value: function renderClipPath() {\n var clipPathId = this.clipPathId;\n var _this$state$offset = this.state.offset,\n left = _this$state$offset.left,\n top = _this$state$offset.top,\n height = _this$state$offset.height,\n width = _this$state$offset.width;\n return /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: clipPathId\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: left,\n y: top,\n height: height,\n width: width\n })));\n }\n }, {\n key: \"getXScales\",\n value: function getXScales() {\n var xAxisMap = this.state.xAxisMap;\n return xAxisMap ? Object.entries(xAxisMap).reduce(function (res, _ref13) {\n var _ref14 = _slicedToArray(_ref13, 2),\n axisId = _ref14[0],\n axisProps = _ref14[1];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getYScales\",\n value: function getYScales() {\n var yAxisMap = this.state.yAxisMap;\n return yAxisMap ? Object.entries(yAxisMap).reduce(function (res, _ref15) {\n var _ref16 = _slicedToArray(_ref15, 2),\n axisId = _ref16[0],\n axisProps = _ref16[1];\n return _objectSpread(_objectSpread({}, res), {}, _defineProperty({}, axisId, axisProps.scale));\n }, {}) : null;\n }\n }, {\n key: \"getXScaleByAxisId\",\n value: function getXScaleByAxisId(axisId) {\n var _this$state$xAxisMap, _this$state$xAxisMap$;\n return (_this$state$xAxisMap = this.state.xAxisMap) === null || _this$state$xAxisMap === void 0 ? void 0 : (_this$state$xAxisMap$ = _this$state$xAxisMap[axisId]) === null || _this$state$xAxisMap$ === void 0 ? void 0 : _this$state$xAxisMap$.scale;\n }\n }, {\n key: \"getYScaleByAxisId\",\n value: function getYScaleByAxisId(axisId) {\n var _this$state$yAxisMap, _this$state$yAxisMap$;\n return (_this$state$yAxisMap = this.state.yAxisMap) === null || _this$state$yAxisMap === void 0 ? void 0 : (_this$state$yAxisMap$ = _this$state$yAxisMap[axisId]) === null || _this$state$yAxisMap$ === void 0 ? void 0 : _this$state$yAxisMap$.scale;\n }\n }, {\n key: \"getItemByXY\",\n value: function getItemByXY(chartXY) {\n var formattedGraphicalItems = this.state.formattedGraphicalItems;\n if (formattedGraphicalItems && formattedGraphicalItems.length) {\n for (var i = 0, len = formattedGraphicalItems.length; i < len; i++) {\n var graphicalItem = formattedGraphicalItems[i];\n var props = graphicalItem.props,\n item = graphicalItem.item;\n var itemDisplayName = getDisplayName(item.type);\n if (itemDisplayName === 'Bar') {\n var activeBarItem = (props.data || []).find(function (entry) {\n return isInRectangle(chartXY, entry);\n });\n if (activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: activeBarItem\n };\n }\n } else if (itemDisplayName === 'RadialBar') {\n var _activeBarItem = (props.data || []).find(function (entry) {\n return inRangeOfSector(chartXY, entry);\n });\n if (_activeBarItem) {\n return {\n graphicalItem: graphicalItem,\n payload: _activeBarItem\n };\n }\n }\n }\n }\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n if (!validateWidthHeight(this)) {\n return null;\n }\n var _this$props6 = this.props,\n children = _this$props6.children,\n className = _this$props6.className,\n width = _this$props6.width,\n height = _this$props6.height,\n style = _this$props6.style,\n compact = _this$props6.compact,\n title = _this$props6.title,\n desc = _this$props6.desc,\n others = _objectWithoutProperties(_this$props6, _excluded2);\n var attrs = filterProps(others);\n var map = {\n CartesianGrid: {\n handler: this.renderGrid,\n once: true\n },\n ReferenceArea: {\n handler: this.renderReferenceElement\n },\n ReferenceLine: {\n handler: this.renderReferenceElement\n },\n ReferenceDot: {\n handler: this.renderReferenceElement\n },\n XAxis: {\n handler: this.renderXAxis\n },\n YAxis: {\n handler: this.renderYAxis\n },\n Brush: {\n handler: this.renderBrush,\n once: true\n },\n Bar: {\n handler: this.renderGraphicChild\n },\n Line: {\n handler: this.renderGraphicChild\n },\n Area: {\n handler: this.renderGraphicChild\n },\n Radar: {\n handler: this.renderGraphicChild\n },\n RadialBar: {\n handler: this.renderGraphicChild\n },\n Scatter: {\n handler: this.renderGraphicChild\n },\n Pie: {\n handler: this.renderGraphicChild\n },\n Funnel: {\n handler: this.renderGraphicChild\n },\n Tooltip: {\n handler: this.renderCursor,\n once: true\n },\n PolarGrid: {\n handler: this.renderPolarGrid,\n once: true\n },\n PolarAngleAxis: {\n handler: this.renderPolarAxis\n },\n PolarRadiusAxis: {\n handler: this.renderPolarAxis\n },\n Customized: {\n handler: this.renderCustomized\n }\n };\n\n // The \"compact\" mode is mainly used as the panorama within Brush\n if (compact) {\n return /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height,\n title: title,\n desc: desc\n }), this.renderClipPath(), renderByOrder(children, map));\n }\n if (this.props.accessibilityLayer) {\n var _2, _img;\n // Set tabIndex to 0 by default (can be overwritten)\n attrs.tabIndex = (_2 = 0) !== null && _2 !== void 0 ? _2 : this.props.tabIndex;\n // Set role to img by default (can be overwritten)\n attrs.role = (_img = 'img') !== null && _img !== void 0 ? _img : this.props.role;\n attrs.onKeyDown = function (e) {\n _this2.accessibilityManager.keyboardEvent(e);\n // 'onKeyDown' is not currently a supported prop that can be passed through\n // if it's added, this should be added: this.props.onKeyDown(e);\n };\n\n attrs.onFocus = function () {\n _this2.accessibilityManager.focus();\n // 'onFocus' is not currently a supported prop that can be passed through\n // if it's added, the focus event should be forwarded to the prop\n };\n }\n\n var events = this.parseEventsOfWrapper();\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n className: classNames('recharts-wrapper', className),\n style: _objectSpread({\n position: 'relative',\n cursor: 'default',\n width: width,\n height: height\n }, style)\n }, events, {\n ref: function ref(node) {\n _this2.container = node;\n },\n role: \"region\"\n }), /*#__PURE__*/React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height,\n title: title,\n desc: desc\n }), this.renderClipPath(), renderByOrder(children, map)), this.renderLegend(), this.renderTooltip());\n }\n }]);\n return CategoricalChartWrapper;\n }(Component), _defineProperty(_class, \"displayName\", chartName), _defineProperty(_class, \"defaultProps\", _objectSpread({\n layout: 'horizontal',\n stackOffset: 'none',\n barCategoryGap: '10%',\n barGap: 4,\n margin: {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n },\n reverseStackOrder: false,\n syncMethod: 'index'\n }, defaultProps)), _defineProperty(_class, \"getDerivedStateFromProps\", function (nextProps, prevState) {\n var data = nextProps.data,\n children = nextProps.children,\n width = nextProps.width,\n height = nextProps.height,\n layout = nextProps.layout,\n stackOffset = nextProps.stackOffset,\n margin = nextProps.margin;\n if (_isNil(prevState.updateId)) {\n var defaultState = createDefaultState(nextProps);\n return _objectSpread(_objectSpread(_objectSpread({}, defaultState), {}, {\n updateId: 0\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, defaultState), {}, {\n updateId: 0\n }), prevState)), {}, {\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n if (data !== prevState.prevData || width !== prevState.prevWidth || height !== prevState.prevHeight || layout !== prevState.prevLayout || stackOffset !== prevState.prevStackOffset || !shallowEqual(margin, prevState.prevMargin)) {\n var _defaultState = createDefaultState(nextProps);\n\n // Fixes https://github.com/recharts/recharts/issues/2143\n var keepFromPrevState = {\n // (chartX, chartY) are (0,0) in default state, but we want to keep the last mouse position to avoid\n // any flickering\n chartX: prevState.chartX,\n chartY: prevState.chartY,\n // The tooltip should stay active when it was active in the previous render. If this is not\n // the case, the tooltip disappears and immediately re-appears, causing a flickering effect\n isTooltipActive: prevState.isTooltipActive\n };\n var updatesToState = _objectSpread(_objectSpread({}, getTooltipData(prevState, data, layout)), {}, {\n updateId: prevState.updateId + 1\n });\n var newState = _objectSpread(_objectSpread(_objectSpread({}, _defaultState), keepFromPrevState), updatesToState);\n return _objectSpread(_objectSpread(_objectSpread({}, newState), updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread({\n props: nextProps\n }, newState), prevState)), {}, {\n prevData: data,\n prevWidth: width,\n prevHeight: height,\n prevLayout: layout,\n prevStackOffset: stackOffset,\n prevMargin: margin,\n prevChildren: children\n });\n }\n if (!isChildrenEqual(children, prevState.prevChildren)) {\n // update configuration in children\n var hasGlobalData = !_isNil(data);\n var newUpdateId = hasGlobalData ? prevState.updateId : prevState.updateId + 1;\n return _objectSpread(_objectSpread({\n updateId: newUpdateId\n }, updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread(_objectSpread({\n props: nextProps\n }, prevState), {}, {\n updateId: newUpdateId\n }), prevState)), {}, {\n prevChildren: children\n });\n }\n return null;\n }), _defineProperty(_class, \"renderActiveDot\", function (option, props) {\n var dot;\n if ( /*#__PURE__*/isValidElement(option)) {\n dot = /*#__PURE__*/cloneElement(option, props);\n } else if (_isFunction(option)) {\n dot = option(props);\n } else {\n dot = /*#__PURE__*/React.createElement(Dot, props);\n }\n return /*#__PURE__*/React.createElement(Layer, {\n className: \"recharts-active-dot\",\n key: props.key\n }, dot);\n }), _class;\n};","/**\n * @fileOverview Pie Chart\n */\nimport { generateCategoricalChart } from './generateCategoricalChart';\nimport { PolarAngleAxis } from '../polar/PolarAngleAxis';\nimport { PolarRadiusAxis } from '../polar/PolarRadiusAxis';\nimport { formatAxisMap } from '../util/PolarUtils';\nimport { Pie } from '../polar/Pie';\nexport var PieChart = generateCategoricalChart({\n chartName: 'PieChart',\n GraphicalChild: Pie,\n validateTooltipEventTypes: ['item'],\n defaultTooltipEventType: 'item',\n legendContent: 'children',\n axisComponents: [{\n axisType: 'angleAxis',\n AxisComp: PolarAngleAxis\n }, {\n axisType: 'radiusAxis',\n AxisComp: PolarRadiusAxis\n }],\n formatAxisMap: formatAxisMap,\n defaultProps: {\n layout: 'centric',\n startAngle: 0,\n endAngle: 360,\n cx: '50%',\n cy: '50%',\n innerRadius: 0,\n outerRadius: '80%'\n }\n});"],"names":["_inheritsLoose","subClass","superClass","setPrototypeOf","ROOT","LOCALE","PROJECT","PROJECT_PREVIEW","IDEA_BOARD","IDEA","DISCUSSION_TOPIC","PASSWORD_RESET","ENGAGEMENT","ENGAGEMENT_PREVIEW","ENGAGEMENT_SECTION","ENGAGEMENT_QUIT","ENGAGEMENT_CLOSED","ENGAGEMENT_ERROR","ENGAGEMENT_REPORT","ANNOUNCEMENT","CATEGORY","CATEGORY_ALIAS","ADMIN_LOGIN","SITEMAP","Routes","baseGetTag","require$$0","isArray","require$$1","isObjectLike","require$$2","stringTag","isString","value","isString_1","arrayPush","array","values","index","length","offset","_arrayPush","argsTag","baseIsArguments","_baseIsArguments","objectProto","hasOwnProperty","propertyIsEnumerable","isArguments","isArguments_1","Symbol","spreadableSymbol","isFlattenable","_isFlattenable","baseFlatten","depth","predicate","isStrict","result","_baseFlatten","isSymbol","reIsDeepProp","reIsPlainProp","isKey","object","type","_isKey","isObject","asyncTag","funcTag","genTag","proxyTag","isFunction","tag","isFunction_1","root","coreJsData","_coreJsData","maskSrcKey","uid","isMasked","func","_isMasked","funcProto","funcToString","toSource","_toSource","require$$3","reRegExpChar","reIsHostCtor","reIsNative","baseIsNative","pattern","_baseIsNative","getValue","key","_getValue","getNative","_getNative","nativeCreate","_nativeCreate","hashClear","_hashClear","hashDelete","_hashDelete","HASH_UNDEFINED","hashGet","data","_hashGet","hashHas","_hashHas","hashSet","_hashSet","require$$4","Hash","entries","entry","_Hash","listCacheClear","_listCacheClear","eq","other","eq_1","assocIndexOf","_assocIndexOf","arrayProto","splice","listCacheDelete","lastIndex","_listCacheDelete","listCacheGet","_listCacheGet","listCacheHas","_listCacheHas","listCacheSet","_listCacheSet","ListCache","_ListCache","Map","_Map","mapCacheClear","_mapCacheClear","isKeyable","_isKeyable","getMapData","map","_getMapData","mapCacheDelete","_mapCacheDelete","mapCacheGet","_mapCacheGet","mapCacheHas","_mapCacheHas","mapCacheSet","size","_mapCacheSet","MapCache","_MapCache","FUNC_ERROR_TEXT","memoize","resolver","memoized","args","cache","memoize_1","MAX_MEMOIZE_SIZE","memoizeCapped","_memoizeCapped","rePropName","reEscapeChar","stringToPath","string","match","number","quote","subString","_stringToPath","toString","castPath","_castPath","INFINITY","toKey","_toKey","baseGet","path","_baseGet","stackClear","_stackClear","stackDelete","_stackDelete","stackGet","_stackGet","stackHas","_stackHas","LARGE_ARRAY_SIZE","stackSet","pairs","_stackSet","require$$5","Stack","_Stack","setCacheAdd","_setCacheAdd","setCacheHas","_setCacheHas","SetCache","_SetCache","arraySome","_arraySome","cacheHas","_cacheHas","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","equalArrays","bitmask","customizer","equalFunc","stack","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","_equalArrays","Uint8Array","_Uint8Array","mapToArray","_mapToArray","setToArray","set","_setToArray","boolTag","dateTag","errorTag","mapTag","numberTag","regexpTag","setTag","symbolTag","arrayBufferTag","dataViewTag","symbolProto","symbolValueOf","equalByTag","convert","stacked","_equalByTag","baseGetAllKeys","keysFunc","symbolsFunc","_baseGetAllKeys","arrayFilter","resIndex","_arrayFilter","stubArray","stubArray_1","nativeGetSymbols","getSymbols","symbol","_getSymbols","baseTimes","n","iteratee","_baseTimes","stubFalse","stubFalse_1","freeExports","exports","freeModule","module","moduleExports","Buffer","nativeIsBuffer","isBuffer","MAX_SAFE_INTEGER","reIsUint","isIndex","_isIndex","isLength","isLength_1","arrayTag","objectTag","weakMapTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","typedArrayTags","baseIsTypedArray","_baseIsTypedArray","baseUnary","_baseUnary","freeGlobal","freeProcess","nodeUtil","types","nodeIsTypedArray","isTypedArray","isTypedArray_1","arrayLikeKeys","inherited","isArr","isArg","isBuff","isType","skipIndexes","_arrayLikeKeys","isPrototype","Ctor","proto","_isPrototype","overArg","nativeKeys","_nativeKeys","baseKeys","_baseKeys","isArrayLike","isArrayLike_1","keys","keys_1","getAllKeys","_getAllKeys","equalObjects","objProps","objLength","othProps","objStacked","skipCtor","objValue","objCtor","othCtor","_equalObjects","DataView","_DataView","Promise","_Promise","Set","_Set","WeakMap","_WeakMap","require$$6","promiseTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ctorString","_getTag","require$$7","baseIsEqualDeep","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","_baseIsEqualDeep","baseIsEqual","_baseIsEqual","baseIsMatch","source","matchData","noCustomizer","srcValue","_baseIsMatch","isStrictComparable","_isStrictComparable","getMatchData","_getMatchData","matchesStrictComparable","_matchesStrictComparable","baseMatches","_baseMatches","get","defaultValue","get_1","baseHasIn","_baseHasIn","hasPath","hasFunc","_hasPath","hasIn","hasIn_1","baseMatchesProperty","_baseMatchesProperty","identity","identity_1","baseProperty","_baseProperty","basePropertyDeep","_basePropertyDeep","property","property_1","baseIteratee","_baseIteratee","createBaseFor","fromRight","iterable","props","_createBaseFor","baseFor","_baseFor","baseForOwn","_baseForOwn","createBaseEach","eachFunc","collection","_createBaseEach","baseEach","_baseEach","baseMap","_baseMap","baseSortBy","comparer","_baseSortBy","compareAscending","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","_compareAscending","compareMultiple","orders","objCriteria","othCriteria","ordersLength","order","_compareMultiple","arrayMap","require$$8","baseOrderBy","iteratees","criteria","_baseOrderBy","apply","thisArg","_apply","nativeMax","overRest","start","transform","otherArgs","_overRest","constant","constant_1","defineProperty","_defineProperty","baseSetToString","_baseSetToString","HOT_COUNT","HOT_SPAN","nativeNow","shortOut","count","lastCalled","stamp","remaining","_shortOut","setToString","_setToString","baseRest","_baseRest","isIterateeCall","_isIterateeCall","sortBy","sortBy_1","updateMediaOverlay","overlay","prevProps","LatLngBounds","ImageOverlay","createLayerComponent","_ref","ctx","bounds","url","options","instance","LeafletImageOverlay","Marker","position","LeafletMarker","marker","Popup","createOverlayComponent","context","LeafletPopup","element","setOpen","onClose","onOpen","useEffect","onPopupOpen","event","onPopupClose","_context$overlayConta","isNil","isNil_1","isNumber","isNumber_1","isNaN","_isNaN","mathSign","isPercent","_isString","_isNumber","isNumOrStr","idCounter","uniqueId","prefix","id","getPercentValue","percent","totalValue","validate","getAnyElementOfObject","obj","hasDuplicate","ary","_isArray","len","interpolateNumber","numberA","numberB","t","findEntryInArray","specifiedKey","specifiedValue","_get","shallowEqual","a","b","_key","_typeof","SVGContainerPropKeys","SVGElementPropKeys","PolyElementKeys","FilteredElementKeyMap","EventKeys","adaptEventHandlers","newHandler","inputProps","isValidElement","_isObject","out","e","getEventHandlerOfChild","originalHandler","adaptEventsOfChild","item","_excluded","_excluded2","_objectWithoutProperties","excluded","target","_objectWithoutPropertiesLoose","sourceSymbolKeys","sourceKeys","i","REACT_BROWSER_EVENT_MAP","getDisplayName","Comp","lastChildren","lastResult","toArray","children","Children","child","_isNil","isFragment","findAllByType","childType","findChildByType","validateWidthHeight","el","_el$props","width","height","SVG_TAGS","isSvgElement","isValidSpreadableProp","includeEvents","svgElementType","_FilteredElementKeyMa","matchingElementTypeKeys","_isFunction","filterProps","_inputProps","isChildrenEqual","nextChildren","prevChildren","isSingleChildEqual","nextChild","prevChild","nextProps","_ref2","renderByOrder","renderMap","elements","record","displayName","_ref3","handler","once","results","getReactEventByType","parseChildIndex","_extends","Surface","viewBox","className","style","others","svgView","layerClass","classNames","React","Layer","ref","baseFindIndex","fromIndex","_baseFindIndex","baseIsNaN","_baseIsNaN","strictIndexOf","_strictIndexOf","baseIndexOf","_baseIndexOf","arrayIncludes","_arrayIncludes","arrayIncludesWith","comparator","_arrayIncludesWith","noop","noop_1","createSet","_createSet","baseUniq","includes","isCommon","outer","computed","seenIndex","_baseUniq","uniqBy","uniqBy_1","baseSlice","end","_baseSlice","castSlice","_castSlice","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsVarRange","rsZWJ","reHasUnicode","hasUnicode","_hasUnicode","asciiToArray","_asciiToArray","rsAstral","rsCombo","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsOptJoin","rsSeq","rsSymbol","reUnicode","unicodeToArray","_unicodeToArray","stringToArray","_stringToArray","createCaseFirst","methodName","strSymbols","chr","trailing","_createCaseFirst","upperFirst","upperFirst_1","constant$1","x","cos","sin","sqrt","pi","tau","epsilon","tauEpsilon","append","strings","appendRound","digits","d","k","Path","y","x1","y1","x2","y2","r","x0","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","l","t01","t21","a0","a1","ccw","dx","dy","cw","da","w","h","withPath","shape","_","Linear","curveLinear","p","shapeLine","defined","curve","output","line","pointX","pointY","defined0","buffer","shapeArea","area","j","x0z","y0z","arealine","symbolCircle","symbolCross","tan30","tan30_2","symbolDiamond","symbolSquare","ka","kr","kx","ky","symbolStar","c","sqrt3","symbolTriangle","s","symbolWye","circle","point","that","Basis","curveBasis","BasisClosed","curveBasisClosed","BasisOpen","curveBasisOpen","LinearClosed","curveLinearClosed","sign","slope3","h0","h1","s0","s1","slope2","t0","t1","MonotoneX","MonotoneY","ReflectContext","monotoneX","monotoneY","Natural","px","controlPoints","py","i0","i1","m","curveNatural","Step","curveStep","stepBefore","stepAfter","stackOffsetNone","series","stackOrderNone","o","stackValue","stackSeries","shapeStack","orderNone","offsetNone","sz","oz","stackOffsetExpand","none","stackOffsetSilhouette","stackOffsetWiggle","s2","si","sij0","sij1","s3","sk","skj0","skj1","_classCallCheck","Constructor","_defineProperties","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_inherits","_setPrototypeOf","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","self","call","_assertThisInitialized","arg","_toPrimitive","input","hint","prim","res","symbolFactories","RADIAN","getSymbolFactory","name","_upperFirst","calculateAreaSize","sizeType","angle","Symbols","_PureComponent","_super","_this$props","symbolFactory","shapeSymbol","_this$props2","cx","cy","filteredProps","PureComponent","factory","ownKeys","enumerableOnly","symbols","sym","_objectSpread","SIZE","DefaultLegendContent","inactiveColor","halfSize","sixthSize","thirdSize","color","iconProps","_this","payload","iconSize","layout","formatter","itemStyle","svgStyle","_classNames","finalFormatter","align","finalStyle","defaultUniqBy","getUniqPayload","option","_uniqBy","renderContent","content","otherProps","EPS","Legend","_len","_this$state","boxWidth","boxHeight","verticalAlign","margin","chartWidth","chartHeight","hPos","vPos","_box","_box2","_this$state2","onBBoxUpdate","_box3","_this2","wrapperStyle","payloadUniqBy","outerStyle","node","getOwnPropertyNames","getOwnPropertySymbols","combineComparators","comparatorA","comparatorB","state","createIsCircular","areItemsEqual","cachedA","cachedB","getStrictProperties","hasOwn","sameValueZeroEqual","OWNER","getOwnPropertyDescriptor","areArraysEqual","areDatesEqual","areMapsEqual","matchedIndices","aIterable","aResult","bResult","bIterable","hasMatch","matchIndex","_a","aKey","aValue","_b","bKey","bValue","areObjectsEqual","properties","areObjectsEqualStrict","descriptorA","descriptorB","arePrimitiveWrappersEqual","areRegExpsEqual","areSetsEqual","areTypedArraysEqual","ARGUMENTS_TAG","BOOLEAN_TAG","DATE_TAG","MAP_TAG","NUMBER_TAG","OBJECT_TAG","REG_EXP_TAG","SET_TAG","STRING_TAG","assign","createEqualityComparator","constructor","createEqualityComparatorConfig","circular","createCustomConfig","strict","config","areArraysEqual$1","areMapsEqual$1","areObjectsEqual$1","areSetsEqual$1","createInternalEqualityComparator","compare","_indexOrKeyA","_indexOrKeyB","_parentA","_parentB","createIsEqual","createState","equals","meta","deepEqual","createCustomEqual","createCustomInternalComparator","setRafTimeout","callback","timeout","currTime","shouldUpdate","now","_toArray","arr","_arrayWithHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableRest","minLen","_arrayLikeToArray","arr2","iter","createAnimateManager","currStyle","handleChange","shouldStop","setStyle","_style","styles","_styles","curr","restStyles","_handleChange","PREFIX_LIST","IN_LINE_PREFIX_LIST","IN_COMPATIBLE_PROPERTY","getIntersectionKeys","preObj","nextObj","param","getDashCase","v","generatePrefixStyle","isTransition","camelName","styleVal","mapObject","fn","translateStyle","getTransitionVal","duration","easing","prop","_slicedToArray","_iterableToArrayLimit","_i","_s","_e","_x","_r","_arr","_n","_d","err","_toConsumableArray","_arrayWithoutHoles","_nonIterableSpread","ACCURACY","cubicBezierFactor","c1","c2","multyTime","params","pre","cubicBezier","derivativeCubicBezier","newParams","configBezier","_easing$1$split$0$spl","_easing$1$split$0$spl2","curveX","curveY","derCurveX","rangeValue","bezier","_t","evalT","derVal","configSpring","_config$stiff","stiff","_config$damping","damping","_config$dt","dt","stepper","currX","destX","currV","FSpring","FDamping","newV","newX","configEasing","_len2","_key2","alpha","begin","needContinue","from","to","calStepperVals","preVals","steps","nextStepVals","val","_easing","_easing2","configUpdate","render","interKeys","timingStyle","stepperStyle","cafId","preTime","beginTime","update","getCurrStyle","shouldStopAnimation","stepperUpdate","deltaTime","timingUpdate","Animate","isActive","attributeName","canBegin","_this$props3","shouldReAnimate","currentFrom","newState","isTriggered","_newState","onAnimationEnd","onAnimationStart","startAnimation","finalStartAnimation","_this3","_steps$","initialStyle","_steps$$duration","initialTime","addStyle","sequence","nextItem","_nextItem$easing","nextProperties","preItem","transition","newStyle","propsTo","manager","_this$props4","stateStyle","cloneContainer","container","_container$props","_container$props$styl","cloneElement","PropTypes","defaultFormatter","DefaultTooltipContent","separator","itemSorter","listStyle","items","_sortBy","finalItemStyle","formatted","wrapperClassName","contentStyle","labelClassName","labelStyle","label","labelFormatter","finalLabelStyle","hasLabel","finalLabel","wrapperCN","labelCN","parseIsSsrByDefault","Global","CLS_PREFIX","tooltipDefaultProps","Tooltip","_useState","useState","_useState2","setBoxWidth","_useState3","_useState4","setBoxHeight","_useState5","_useState6","dismissed","setDismissed","_useState7","_useState8","dismissedAtCoordinate","setDismissedAtCoordinate","wrapperNode","useRef","allowEscapeViewBox","reverseDirection","coordinate","handleKeyDown","useCallback","prev","updateBBox","box","getTranslate","tooltipDimension","viewBoxDimension","negative","positive","_tooltipBoundary","_viewBoxBoundary","tooltipBoundary","viewBoxBoundary","filterNull","active","useTranslate3d","isAnimationActive","animationDuration","animationEasing","finalPayload","hasPayload","translateX","translateY","cls","debounce","throttle","wait","leading","throttle_1","warn","condition","format","Cell","_props","openParentheses","closeParentheses","singleQuote","doubleQuote","backslash","slash","comma","colon","star","parse","tokens","next","token","escape","escapePos","whitespacePos","pos","code","max","balanced","parent","before","after","walk","nodes","cb","bubble","stringifyNode","custom","buf","customResult","stringify","stringify_1","minus","plus","dot","exp","EXP","unit","dotted","sciPos","containsNumber","ValueParser","lib","parser","JisonParserError","msg","hash","stacktrace","ex2","bp","rv","bda","g","bt","q","z","u","id_str","do_not_describe","TERROR","tokenset","check","yystate","yysp","yyvstack","yy","str","ExceptionClass","sstack","vstack","table","sp","EOF","NO_ACTION","lexer","sharedState_yy","shallow_copy_noclobber","dst","src","resultValue","invoke_post_methods","do_not_nuke_errorinfos","ex","expected","recoverable","pei","action","rec","stdLex","fastLex","lex","yyval","yyrulelen","this_production","retval","lexerInfo","errStr","errSymbolDescr","ntsymbol","JisonLexerError","show_input_position","pos_str","lineno_msg","col","rules","rule_re","conditions","spec","rule_ids","rule_regexes","rule_new_ids","idx","cpsArg","ch","slice_len","lines","ch2","pre_lines","maxSize","maxLines","past","maxPrefix","maxPostfix","actual","preceding","following","current","loc","context_loc","context_loc2","CONTEXT","CONTEXT_TAIL","MINIMUM_VISIBLE_NONEMPTY_LINE_COUNT","l0","l1","lineno_display_width","ws_prefix","nonempty_line_indexes","lno","lno_pfx","errpfx","lead","mark","clip_start","clip_end","intermediate_line","yylloc","display_range_too","l2","dl","dc","r1","r2","indexed_rule","backup","match_str","match_str_len","tempMatch","regexes","pendingInput","activeCondition","conditionStackDepth","yyrulenumber","YY_START","Parser","require","conversions","cssUnitConverter","sourceUnit","targetUnit","precision","converted","_cssUnitConverter","_cssUnitConverter2","_interopRequireDefault","convertNodes","left","right","convertAbsoluteLength","reducer","flip","_convert","_convert2","reduce","reduceMathExpression","isEqual","isValueType","convertMathExpression","operator","flipValue","reduceAddSubExpression","_node","op","reduceDivisionExpression","reduceMultiplicationExpression","calc","_reducer","round","prec","_postcssValueParser","_postcssValueParser2","_parser","_reducer2","_stringifier","_stringifier2","MATCH_CALC","contents","ast","reducedAst","stringCache","MAX_CACHE_NUM","SPAN_STYLE","STYLE_LIST","MEASUREMENT_SPAN_ID","autoCompleteStyle","camelToMiddleLine","text","strs","formatStrs","getStyleString","getStringSize","styleString","cacheKey","measurementSpan","measurementSpanStyle","styleKey","rect","getOffset","html","calculateChartCoordinate","BREAKING_SPACES","calculateWordWidths","breakAll","words","wordsWithComputedWidth","word","spaceWidth","calculateWordsByLines","initialWordsWithComputedWith","lineWidth","scaleToFit","shouldLimitLines","calculate","currentLine","newLine","originalResult","findLongestLine","suffix","checkOverflow","tempText","doesOverflow","iterations","trimmedResult","middle","_checkOverflow","_checkOverflow2","doesPrevOverflow","_checkOverflow3","_checkOverflow4","doesMiddleOverflow","getWordsWithoutCalculate","getWordsByLines","_ref4","wordWidths","wcw","sw","textDefaultProps","Text","wordsByLines","useMemo","textAnchor","verticalAnchor","lineHeight","capHeight","textProps","startDy","reduceCSSCalc","transforms","isEqual_1","baseExtremum","_baseExtremum","baseGt","_baseGt","max_1","baseLt","_baseLt","min","min_1","map_1","flatMap","flatMap_1","ascending","descending","bisector","f","compare1","compare2","delta","zero","lo","hi","mid","center","numbers","valueof","ascendingBisect","bisectRight","bisect","InternMap","keyof","intern_get","intern_set","intern_delete","_intern","compareDefined","ascendingDefined","e10","e5","e2","tickSpec","stop","step","power","error","factor","i2","inc","ticks","reverse","tickIncrement","tickStep","quickselect","sd","newLeft","newRight","swap","quantile","value0","value1","quantileSorted","range","initRange","domain","initInterpolator","interpolator","implicit","ordinal","unknown","scale","band","ordinalRange","r0","bandwidth","paddingInner","paddingOuter","rescale","pointish","copy","define","prototype","extend","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","channels","color_formatHex","color_formatHex8","color_formatHsl","color_formatRgb","hslConvert","rgbn","Rgb","rgba","hsla","rgbConvert","rgb","opacity","clampi","clampa","rgb_formatHex","rgb_formatHex8","rgb_formatRgb","hex","Hsl","hsl","m2","m1","hsl2rgb","clamph","clampt","linear","exponential","gamma","nogamma","rgbGamma","colorRgb","numberArray","isNumberArray","genericArray","nb","na","date$1","interpolateNumber$1","reA","reB","one","bi","am","bm","bs","interpolate","date","interpolateRound","piecewise","I","constants","normalize","clamper","bimap","d0","d1","polymap","transformer","interpolateValue","untransform","clamp","continuous","formatDecimal","formatDecimalParts","coefficient","exponent","formatGroup","grouping","thousands","formatNumerals","numerals","re","formatSpecifier","specifier","FormatSpecifier","formatTrim","prefixExponent","formatPrefixAuto","formatRounded","formatTypes","identity$2","prefixes","formatLocale$1","locale","group","currencyPrefix","currencySuffix","decimal","nan","newFormat","fill","trim","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","padding","formatPrefix","defaultLocale","formatLocale","precisionFixed","precisionPrefix","precisionRound","tickFormat","linearish","prestep","maxIter","nice","interval","transformLog","transformExp","transformLogn","transformExpn","pow10","powp","base","logp","reflect","loggish","logs","pows","log","transformSymlog","transformSymexp","symlogish","symlog","transformPow","transformSqrt","transformSquare","powish","pow","square","unsquare","radial","squared","thresholds","threshold","quantize","timeInterval","floori","offseti","field","previous","test","millisecond","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","second","timeMinute","utcMinute","timeHour","utcHour","timeDay","utcDay","unixDay","timeWeekday","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","utcWeekday","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","timeMonth","utcMonth","timeYear","utcYear","ticker","year","month","week","day","hour","minute","tickIntervals","tickInterval","utcTicks","utcTickInterval","timeTicks","timeTickInterval","localDate","utcDate","newDate","locale_dateTime","locale_date","locale_time","locale_periods","locale_weekdays","locale_shortWeekdays","locale_months","locale_shortMonths","periodRe","formatRe","periodLookup","formatLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","formatShortWeekday","formatWeekday","formatShortMonth","formatMonth","formatDayOfMonth","formatMicroseconds","formatYearISO","formatFullYearISO","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMonthNumber","formatMinutes","formatPeriod","formatQuarter","formatUnixTimestamp","formatUnixTimestampSeconds","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatFullYear","formatZone","formatLiteralPercent","utcFormats","formatUTCShortWeekday","formatUTCWeekday","formatUTCShortMonth","formatUTCMonth","formatUTCDayOfMonth","formatUTCMicroseconds","formatUTCYearISO","formatUTCFullYearISO","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCPeriod","formatUTCQuarter","formatUTCSeconds","formatUTCWeekdayNumberMonday","formatUTCWeekNumberSunday","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCFullYear","formatUTCZone","parses","parseShortWeekday","parseWeekday","parseShortMonth","parseMonth","parseLocaleDateTime","parseDayOfMonth","parseMicroseconds","parseYear","parseFullYear","parseHour24","parseDayOfYear","parseMilliseconds","parseMonthNumber","parseMinutes","parsePeriod","parseQuarter","parseUnixTimestamp","parseUnixTimestampSeconds","parseSeconds","parseWeekdayNumberMonday","parseWeekNumberSunday","parseWeekNumberISO","parseWeekdayNumberSunday","parseWeekNumberMonday","parseLocaleDate","parseLocaleTime","parseZone","parseLiteralPercent","pad","pads","newParse","Z","parseSpecifier","numberRe","percentRe","requoteRe","requote","names","dISO","dow","UTCdISO","timeFormat","utcFormat","calendar","invert","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","time","timeWeek","timeSecond","utcTime","utcWeek","utcSecond","k10","sequential","sequentialLog","sequentialSymlog","sequentialPow","sequentialSqrt","sequentialQuantile","t2","k21","diverging","divergingLog","divergingSymlog","divergingPow","divergingSqrt","MAX_DIGITS","defaults","Decimal","external","decimalError","invalidArgument","exponentOutOfRange","mathfloor","mathpow","isDecimal","ONE","BASE","LOG_BASE","MAX_E","P","xdL","ydL","dp","divide","getBase10Exponent","pr","wpr","ln","subtract","add","digitsToString","carry","rL","xd","yd","rm","checkInt32","yIsInt","guard","yn","truncate","ws","indexOfLastWord","getZeroString","multiplyInteger","temp","aL","bL","cmp","prod","prodL","qd","rem","remL","rem0","xi","xL","yd0","yL","yz","denominator","sum","getLn10","zs","c0","numerator","parseDecimal","rd","doRound","xdi","xe","xLTy","isExp","clone","ps","Decimal$1","PLACE_HOLDER","isPlaceHolder","curry0","_curried","curryN","argsLength","restArgs","newArgs","curry","compose","_len3","_key3","fns","firstFn","tailsFn","lastArgs","_len4","_key4","getDigitCount","rangeStep","num","newA","newB","uninterpolateNumber","diff","uninterpolateTruncation","Arithmetic","getValidInterval","validMin","validMax","getFormatStep","roughStep","allowDecimals","correctionFactor","digitCount","digitCountValue","stepRatio","stepRatioScale","amendStepRatio","formatStep","getTickOfSingleValue","tickCount","absVal","middleIndex","calculateStep","belowCount","upCount","scaleCount","getNiceTickValuesFn","_getValidInterval","_getValidInterval2","cormin","cormax","_values","_calculateStep","tickMin","tickMax","getTickValuesFixedDomainFn","_ref7","_ref8","_getValidInterval5","_getValidInterval6","getNiceTickValues","getTickValuesFixedDomain","ErrorBar","dataKey","dataPointFormatter","xAxis","yAxis","svgProps","errorBars","_dataPointFormatter","errorVal","lineCoordinates","lowBound","highBound","_errorVal","yMid","yMin","yMax","xMin","xMax","_scale","xMid","_xMin","_xMax","_yMin","_yMax","coordinates","getValueByDataKey","getDomainOfDataByKey","filterNil","flattenData","_flatMap","_min","_max","validateData","calculateActiveTickIndex","_ticks$length","unsortedTicks","axis","cur","sameDirectionCoord","diffInterval","curInRange","afterInRange","sameInterval","getMainColorOfGraphicItem","_item$props","stroke","getLegendProps","formattedGraphicalItems","legendWidth","legendContent","legendItem","legendData","_item$props2","legendType","hide","getBarSizeList","_ref5","globalSize","_ref5$stackGroups","stackGroups","numericAxisIds","sgs","stackIds","sLen","_sgs$stackIds$j","cateAxisId","barItems","selfSize","cateId","getBarPosition","_ref6","barGap","barCategoryGap","bandSize","_ref6$sizeList","sizeList","maxBarSize","realBarGap","useFull","fullBarSize","newRes","_offset","originalSize","appendOffsetOfLegend","legendBox","legendProps","newOffset","isErrorBarRelevantForAxis","axisType","direction","getDomainOfErrorBars","errorBarChild","entryValue","mainValue","errorDomain","prevErrorArr","errorValue","lowerValue","upperValue","parseErrorBarsOfAxis","domains","getDomainOfItemsWithSameAxis","isCategoricalAxis","getCoordinatesOfGrid","hasMin","hasMax","getTicksOfAxis","isGrid","isAll","duplicateDomain","offsetForBand","scaleContent","row","combineEventHandlers","defaultHandler","parentHandler","childHandler","customizedHandler","arg1","arg2","arg3","arg4","parseScale","chartType","hasBar","d3Scales.scaleBand","d3Scales.scaleLinear","d3Scales.scalePoint","d3Scales","checkDomainOfScale","first","last","findPositionOfBar","barPosition","truncateByDomain","offsetSign","offsetPositive","STACK_OFFSET_MAP","getStackedData","stackItems","offsetType","dataKeys","getStackGroupsByAxisId","_items","numericAxisId","reverseStackOrder","_item$props3","stackId","axisId","parentGroup","childGroup","getTicksOfScale","opts","realScaleType","originalDomain","scaleType","tickValues","_domain","_tickValues","getCateCoordinateOfLine","matchedTick","getCateCoordinateOfBar","getBaseValueOfBar","_ref9","numericAxis","getStackedDataOfItem","itemIndex","getDomainOfSingle","getDomainOfStackGroups","startIndex","endIndex","stackedData","MIN_VALUE_REG","MAX_VALUE_REG","parseSpecifiedDomain","specifiedDomain","dataDomain","allowDataOverflow","_value","getBandSizeOfAxis","isBar","bandWidth","orderedTicks","parseDomainOfCategoryAxis","calculatedDomain","axisChild","_isEqual","getTooltipItem","graphicalItem","_graphicalItem$props","tooltipType","radianToDegree","angleInRadian","polarToCartesian","radius","getMaxRadius","formatAxisMap","axisMap","chartName","startAngle","endAngle","maxRadius","innerRadius","outerRadius","ids","reversed","_range","_range2","_parseScale","finalAxis","distanceBetweenPoints","anotherPoint","getAngleOfPoint","formatAngleOfSector","startCnt","endCnt","reverseFormatAngleOfSetor","inRangeOfSector","sector","_getAngleOfPoint","_formatAngleOfSector","formatAngle","inRange","getLabel","getDeltaAngle","deltaAngle","renderRadialLabel","labelProps","attrs","clockWise","labelAngle","startPoint","endPoint","getAttrsOfPolarLabel","midAngle","_polarToCartesian","_y","_polarToCartesian2","getAttrsOfCartesianLabel","parentViewBox","verticalSign","verticalOffset","verticalEnd","verticalStart","horizontalSign","horizontalOffset","horizontalEnd","horizontalStart","_attrs","_attrs2","_attrs3","sizeAttrs","isPolar","Label","_props$className","textBreakAll","createElement","isPolarLabel","positionAttrs","parseViewBox","top","labelViewBox","parseLabel","renderCallByParent","parentProps","checkPropsLabel","explicitChildren","implicitLabel","last_1","defaultProps","_last","LabelList","valueAccessor","idProps","parseLabelList","implicitLabelList","getTangentCircle","isExternal","cornerRadius","cornerIsExternal","centerRadius","theta","centerAngle","circleTangency","lineTangencyAngle","lineTangency","getSectorPath","tempEndAngle","outerStartPoint","outerEndPoint","innerStartPoint","innerEndPoint","getSectorWithCorner","forceCornerRadius","_getTangentCircle","soct","solt","sot","_getTangentCircle2","eoct","eolt","eot","outerArcAngle","_getTangentCircle3","sict","silt","sit","_getTangentCircle4","eict","eilt","eit","innerArcAngle","Sector","deltaRadius","cr","CURVE_FACTORIES","curveMonotoneX","curveMonotoneY","curveStepAfter","curveStepBefore","getX","getY","getCurveFactory","getPath","points","baseLine","connectNulls","curveFactory","formatPoints","lineFunction","formatBaseLine","areaPoints","Curve","pathRef","realPath","getRectanglePath","ySign","xSign","newRadius","_newRadius","isInRectangle","minX","maxX","minY","maxY","Rectangle","totalLength","animationBegin","isUpdateAnimationActive","currWidth","currHeight","currY","isValidatePoint","getParsedPoints","segmentPoints","getSinglePolygonPath","segPoints","polygonPath","getRanglePath","baseLinePoints","outerPath","Polygon","hasStroke","rangePath","singlePath","Dot","Cross","minBy","minBy_1","maxBy","maxBy_1","PolarRadiusAxis","orientation","maxRadiusTick","_maxBy","minRadiusTick","_minBy","axisLine","extent","point0","point1","tick","tickFormatter","axisProps","customTickProps","coord","tickProps","_this$props5","tickItem","eps","PolarAngleAxis","tickSize","tickLineSize","p1","p2","axisLineType","tickLine","tickLineProps","lineCoord","Pie","activeIndex","sectors","labelLine","valueKey","pieProps","customLabelProps","customLabelLineProps","offsetRadius","labels","lineProps","realDataKey","activeShape","blendStroke","inactiveShapeProp","inactiveShape","sectorOptions","sectorProps","animationId","prevSectors","prevIsAnimationActive","stepData","curAngle","paddingAngle","angleIp","latest","interpolatorAngle","_latest","pieRef","_this4","_next","_this5","isAnimationFinished","prevState","_isPlainObject","presentationProps","cells","cell","maxPieRadius","pieData","nameKey","minAngle","absDeltaAngle","notZeroItemCount","totalPadingAngle","realTotalAngle","tempStartAngle","middleRadius","tooltipPayload","tooltipPosition","nativeCeil","baseRange","_baseRange","toNumber","MAX_INTEGER","toFinite","toFinite_1","createRange","_createRange","range_1","createScale","travellerWidth","scalePoint","scaleValues","isTouch","Brush","startX","endX","gap","minIndex","maxIndex","slideMoveStartX","onChange","newIndex","_this$setState","brushMoveStartX","movingTravellerId","prevValue","isFullGap","_this$props6","chartElement","travellerX","_this$props7","traveller","travellerProps","_this$props8","_this$props9","_this$state3","_this$props10","alwaysShowText","_this$state4","isTextActive","isSlideMoving","isTravellerMoving","isPanoramic","lineY","rectangle","updateId","baseSome","_baseSome","some","some_1","ifOverflowMatches","alwaysShow","ifOverflow","arrayEvery","_arrayEvery","baseEvery","_baseEvery","every","every_1","baseAssignValue","_baseAssignValue","mapValues","mapValues_1","Bar","baseProps","prevData","interpolatorX","interpolatorY","interpolatorWidth","interpolatorHeight","_interpolatorHeight","backgroundProps","background","rest","needClip","clipPathId","errorBarItems","dataPoint","errorBarProps","xAxisTicks","yAxisTicks","dataStartIndex","displayedData","minPointSize","stackedDomain","baseValue","rects","baseValueScale","currentValueScale","computedHeight","_baseValueScale","_currentValueScale","_delta","_axis$padding","mirror","offsetKey","calculatedPadding","needSpace","smallestDistanceBetweenValues","sortedValues","smallestDistanceInPercent","rangeWidth","halfBand","rectWithPoints","rectWithCoords","ScaleHelper","bandAware","_offset2","createLabeledScales","scales","_mapValues","_every","renderLine","getEndPoints","isFixedX","isFixedY","isSegment","_props$viewBox","yCoord","xCoord","_orientation","_coord","_points","segment","_points2","_some","ReferenceLine","fixedX","fixedY","isX","isY","endPoints","_endPoints","_endPoints$","_endPoints$2","clipPath","getCoordinate","ReferenceDot","dotProps","getRect","hasX1","hasX2","hasY1","hasY2","xValue1","xValue2","yValue1","yValue2","ReferenceArea","getEveryNthWithCondition","isValid","getEveryNThTick","N","getNumberIntervalTicks","getTicksEnd","minTickGap","fontSize","letterSpacing","sizeKey","unitSize","isShow","getTicksStart","preserveEnd","tail","tailContent","tailSize","tailGap","isTailShow","getTicks","candidates","_excluded3","CartesianAxis","_Component","nextState","restProps","viewBoxOld","restPropsOld","htmlLayer","tickMargin","tx","ty","finalTickSize","tickCoord","needHeight","needWidth","finalTicks","_this2$getTickLineCoo","ticksGenerator","noTicksProps","Component","createFind","findIndexFunc","_createFind","toInteger","remainder","toInteger_1","findIndex","findIndex_1","find","find_1","isBoolean","isBoolean_1","detectReferenceElementsDomain","specifiedTicks","dots","areas","idKey","finalDomain","key1","key2","value2","has","Events","EE","addListener","emitter","listener","evt","clearEvent","EventEmitter","events","handlers","ee","listeners","a2","a3","a4","a5","eventCenter","SYNC_EVENT","AccessibilityManager","_ref$coordinateList","coordinateList","_ref$container","_ref$layout","_ref$offset","_ref$mouseHandlerCall","mouseHandlerCallback","_this$container$getBo","pageX","pageY","ORIENT_MAP","originCoordinate","isFinit","defer","deferClear","calculateTooltipPos","rangeObj","getActiveCoordinate","tooltipTicks","_angle","_radius","getDisplayedData","graphicalItems","dataEndIndex","itemsData","itemData","isDomainSpecifiedByUser","domainStart","domainEnd","getDefaultDomainByAxisType","getTooltipContent","chartData","activeLabel","tooltipAxis","getTooltipData","rangeData","activePayload","activeCoordinate","getAxisMapByAxes","axes","axisIdKey","stackOffset","isCategorical","_child$props$domain2","_child$props","allowDuplicatedCategory","includeHidden","categoricalDomain","defaultDomain","_child$props$domain","childDomain","duplicate","errorBarsDomain","axisDomain","isDomainValid","getAxisMapByItems","Axis","getAxisMap","_ref4$axisType","AxisComp","tooltipTicksGenerator","createDefaultState","_brushItem$props","_brushItem$props2","defaultShowTooltip","brushItem","hasGraphicalBarItem","getAxisNameByLayout","calculateOffset","prevLegendBBox","_ref5$xAxisMap","xAxisMap","_ref5$yAxisMap","yAxisMap","offsetH","offsetV","brushBottom","generateCategoricalChart","_class","GraphicalChild","_ref6$defaultTooltipE","defaultTooltipEventType","_ref6$validateTooltip","validateTooltipEventTypes","axisComponents","getFormatItems","currentState","barSize","globalMaxBarSize","_getAxisNameByLayout","numericAxisName","cateAxisName","formattedItems","childMaxBarSize","axisObj","_objectSpread6","cateAxis","cateTicks","itemIsBar","_getBandSizeOfAxis","barBandSize","composedFn","_objectSpread7","updateStateOfAxisMapsOffsetAndStackGroups","_getAxisNameByLayout2","cateAxisMap","ticksObj","CategoricalChartWrapper","cId","chartId","syncId","onMouseEnter","mouse","_nextState","onMouseMove","onMouseLeave","eventName","onClick","_nextState2","onMouseDown","_nextState3","onMouseUp","_nextState4","_ref10","_ref11","isTooltipActive","activeTooltipIndex","tooltipEventType","cursorComp","_this$getCursorPoints","cursorProps","axisOption","yAxisWithFiniteDomain","_find","_element$props","radialLines","polarAngles","polarRadius","radiusAxisMap","angleAxisMap","radiusAxis","angleAxis","legend","tooltipItem","_this$state5","_this$state6","_assertThisInitialize","_this$state7","_element$props2","xAxisId","yAxisId","_ref12","activePoint","basePoint","childIndex","isRange","_item$item$props","activeDot","_this$state8","_item$item$props2","hasActive","itemEvents","findWithPayload","_throttle","_this$props$margin$le","_this$props$margin$to","_this$props$margin$le2","_this$props$margin$to2","_isBoolean","eventType","containerOffset","_this$state9","xScale","yScale","xValue","yValue","toolTipData","_this$state10","tooltipAxisBandSize","_this$state11","innerPoint","outerPoint","_cx","_cy","isInRange","_this$state12","tooltipEvents","outerEvents","syncMethod","chartX","chartY","_this$state13","validateChartX","validateChartY","axisOptions","_this$state$offset","_ref13","_ref14","_ref15","_ref16","_this$state$xAxisMap","_this$state$xAxisMap$","_this$state$yAxisMap","_this$state$yAxisMap$","chartXY","itemDisplayName","activeBarItem","_activeBarItem","compact","title","desc","_2","_img","defaultState","_defaultState","keepFromPrevState","updatesToState","hasGlobalData","newUpdateId","PieChart"],"mappings":"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"}