{"version":3,"sources":["../node_modules/prop-types/index.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/isNil.js","../node_modules/classnames/index.js","../node_modules/recharts/es6/polyfill.js","../node_modules/recharts/es6/util/DataUtils.js","../node_modules/recharts/es6/util/ShallowEqual.js","../node_modules/recharts/es6/util/ReactUtils.js","../node_modules/recharts/es6/container/Surface.js","../node_modules/d3-shape/src/math.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-path/src/path.js","../node_modules/d3-shape/src/constant.js","../node_modules/recharts/es6/shape/Symbols.js","../node_modules/d3-shape/src/symbol.js","../node_modules/recharts/es6/component/DefaultLegendContent.js","../node_modules/recharts/es6/component/Legend.js","../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/react-smooth/es6/index.js","../node_modules/recharts/es6/component/DefaultTooltipContent.js","../node_modules/recharts/es6/component/Tooltip.js","../node_modules/recharts/es6/component/ResponsiveContainer.js","../node_modules/recharts/es6/cartesian/CartesianGrid.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/linear.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/point.js","../node_modules/d3-shape/src/line.js","../node_modules/d3-shape/src/area.js","../node_modules/recharts/es6/shape/Curve.js","../node_modules/recharts/es6/shape/Dot.js","../node_modules/recharts/es6/container/Layer.js","../node_modules/recharts/es6/util/DOMUtils.js","../node_modules/recharts/es6/component/Text.js","../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/d3-scale/node_modules/d3-array/src/ascending.js","../node_modules/d3-scale/node_modules/d3-array/src/bisector.js","../node_modules/d3-scale/node_modules/d3-array/src/bisect.js","../node_modules/d3-scale/node_modules/d3-array/src/cross.js","../node_modules/d3-scale/node_modules/d3-array/src/number.js","../node_modules/d3-scale/node_modules/d3-array/src/array.js","../node_modules/d3-scale/node_modules/d3-array/src/range.js","../node_modules/d3-scale/node_modules/d3-array/src/ticks.js","../node_modules/d3-scale/node_modules/d3-array/src/threshold/sturges.js","../node_modules/d3-scale/node_modules/d3-array/src/quantile.js","../node_modules/d3-scale/src/init.js","../node_modules/d3-collection/src/map.js","../node_modules/d3-collection/src/set.js","../node_modules/d3-scale/src/array.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/basis.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/basisClosed.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-scale/src/number.js","../node_modules/d3-scale/src/continuous.js","../node_modules/d3-scale/src/constant.js","../node_modules/d3-format/src/formatSpecifier.js","../node_modules/d3-format/src/formatDecimal.js","../node_modules/d3-format/src/exponent.js","../node_modules/d3-format/src/formatPrefixAuto.js","../node_modules/d3-format/src/defaultLocale.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/formatGroup.js","../node_modules/d3-format/src/formatNumerals.js","../node_modules/d3-format/src/formatTrim.js","../node_modules/d3-format/src/precisionRound.js","../node_modules/d3-scale/src/tickFormat.js","../node_modules/d3-format/src/precisionPrefix.js","../node_modules/d3-format/src/precisionFixed.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/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/year.js","../node_modules/d3-time/src/month.js","../node_modules/d3-time/src/duration.js","../node_modules/d3-time/src/week.js","../node_modules/d3-time/src/day.js","../node_modules/d3-time/src/hour.js","../node_modules/d3-time/src/minute.js","../node_modules/d3-time/src/second.js","../node_modules/d3-time/src/millisecond.js","../node_modules/d3-time/src/utcWeek.js","../node_modules/d3-time/src/utcDay.js","../node_modules/d3-time/src/utcYear.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-time/src/utcMonth.js","../node_modules/d3-time/src/utcHour.js","../node_modules/d3-time/src/utcMinute.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/d3-shape/src/offset/none.js","../node_modules/d3-shape/src/array.js","../node_modules/d3-shape/src/order/none.js","../node_modules/d3-shape/src/stack.js","../node_modules/recharts/es6/cartesian/ErrorBar.js","../node_modules/recharts/es6/util/ChartUtils.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/util/PolarUtils.js","../node_modules/recharts/es6/component/Label.js","../node_modules/recharts/es6/component/LabelList.js","../node_modules/recharts/es6/cartesian/Line.js","../node_modules/recharts/es6/cartesian/Area.js","../node_modules/recharts/es6/shape/Rectangle.js","../node_modules/recharts/es6/component/Cell.js","../node_modules/recharts/es6/cartesian/Bar.js","../node_modules/recharts/es6/cartesian/XAxis.js","../node_modules/recharts/es6/cartesian/YAxis.js","../node_modules/recharts/es6/shape/Cross.js","../node_modules/recharts/es6/shape/Sector.js","../node_modules/recharts/es6/cartesian/CartesianAxis.js","../node_modules/recharts/es6/util/CssPrefixUtils.js","../node_modules/recharts/es6/cartesian/Brush.js","../node_modules/recharts/es6/util/IfOverflowMatches.js","../node_modules/recharts/es6/util/CartesianUtils.js","../node_modules/recharts/es6/cartesian/ReferenceDot.js","../node_modules/recharts/es6/cartesian/ReferenceLine.js","../node_modules/recharts/es6/cartesian/ReferenceArea.js","../node_modules/recharts/es6/util/DetectReferenceElementsDomain.js","../node_modules/recharts/es6/util/Events.js","../node_modules/recharts/es6/chart/generateCategoricalChart.js","../node_modules/recharts/es6/chart/LineChart.js","../node_modules/recharts/es6/chart/BarChart.js","../node_modules/recharts/es6/chart/AreaChart.js","../node_modules/lodash/isArray.js","../node_modules/decimal.js-light/decimal.js","../node_modules/core-js/modules/_export.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/lodash/isObject.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../node_modules/lodash/isEqual.js","../node_modules/lodash/get.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/lodash/_root.js","../node_modules/lodash/max.js","../node_modules/core-js/modules/_global.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/isString.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/core-js/modules/_fails.js","../node_modules/lodash/isObjectLike.js","../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../node_modules/raf/index.js","../node_modules/lodash/_baseGetTag.js","../node_modules/webpack/buildin/global.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/isNaN.js","../node_modules/core-js/modules/_is-object.js","../node_modules/core-js/modules/_descriptors.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/identity.js","../node_modules/lodash/isNumber.js","../node_modules/lodash/sortBy.js","../node_modules/lodash/uniqBy.js","../node_modules/lodash/range.js","../node_modules/core-js/modules/_core.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_arrayMap.js","../node_modules/react-i18next/dist/es/context.js","../node_modules/lodash/min.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/core-js/modules/_an-object.js","../node_modules/core-js/modules/_has.js","../node_modules/core-js/modules/_to-integer.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/keys.js","../node_modules/lodash/_toKey.js","../node_modules/lodash/_baseEach.js","../node_modules/lodash/_isIterateeCall.js","../node_modules/react-dom/index.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../node_modules/react-transition-group/index.js","../node_modules/lodash/every.js","../node_modules/reduce-css-calc/index.js","../node_modules/object-assign/index.js","../node_modules/core-js/modules/_object-dp.js","../node_modules/core-js/modules/_to-primitive.js","../node_modules/core-js/modules/_math-sign.js","../node_modules/core-js/modules/_math-expm1.js","../node_modules/core-js/modules/_cof.js","../node_modules/core-js/modules/_to-iobject.js","../node_modules/core-js/modules/_defined.js","../node_modules/core-js/modules/_enum-bug-keys.js","../node_modules/core-js/modules/_string-trim.js","../node_modules/core-js/modules/_string-ws.js","../node_modules/lodash/eq.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/isArguments.js","../node_modules/webpack/buildin/module.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/isLength.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/debounce.js","../node_modules/lodash/mapValues.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/i18next/dist/esm/i18next.js","../node_modules/core-js/modules/_hide.js","../node_modules/core-js/modules/_ie8-dom-define.js","../node_modules/core-js/modules/_dom-create.js","../node_modules/core-js/modules/_property-desc.js","../node_modules/core-js/modules/_redefine.js","../node_modules/core-js/modules/_uid.js","../node_modules/core-js/modules/_shared.js","../node_modules/core-js/modules/_ctx.js","../node_modules/core-js/modules/_math-log1p.js","../node_modules/core-js/modules/_object-gopd.js","../node_modules/core-js/modules/_object-keys-internal.js","../node_modules/core-js/modules/_shared-key.js","../node_modules/core-js/modules/_a-number-value.js","../node_modules/core-js/modules/_is-integer.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/_arrayIncludes.js","../node_modules/lodash/_baseFindIndex.js","../node_modules/lodash/_arrayIncludesWith.js","../node_modules/lodash/_baseRest.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_baseForOwn.js","../node_modules/react-transition-group/Transition.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-transition-group/utils/PropTypes.js","../node_modules/react-transition-group/TransitionGroup.js","../node_modules/lodash/_baseFlatten.js","../node_modules/lodash/_baseMap.js","../node_modules/lodash/toNumber.js","../node_modules/lodash/_baseExtremum.js","../node_modules/lodash/toFinite.js","../node_modules/@babel/runtime/helpers/slicedToArray.js","../node_modules/@babel/runtime/helpers/classCallCheck.js","../node_modules/@babel/runtime/helpers/createClass.js","../node_modules/lodash/intersection.js","../node_modules/lodash/filter.js","../node_modules/react-resize-detector/lib/index.js","../node_modules/lodash/flatMap.js","../node_modules/lodash/last.js","../node_modules/lodash/find.js","../node_modules/lodash/throttle.js","../node_modules/lodash/some.js","../node_modules/events/events.js","../node_modules/lodash.groupby/index.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","../../src/constant.js","../../src/decorators/staticMethods.js","../../src/decorators/customEvent.js","../../src/decorators/bodyMode.js","../../src/utils/getPosition.js","../../src/utils/getTipContent.js","../../src/utils/aria.js","../../src/utils/nodeListToArray.js","../../src/decorators/defaultStyles.js","../../src/decorators/styler.js","../../node_modules/core-js/internals/global.js","../../node_modules/core-js/internals/fails.js","../../node_modules/core-js/internals/descriptors.js","../../node_modules/core-js/internals/object-property-is-enumerable.js","../../node_modules/core-js/internals/create-property-descriptor.js","../../node_modules/core-js/internals/classof-raw.js","../../node_modules/core-js/internals/indexed-object.js","../../node_modules/core-js/internals/require-object-coercible.js","../../node_modules/core-js/internals/to-indexed-object.js","../../node_modules/core-js/internals/is-object.js","../../node_modules/core-js/internals/to-primitive.js","../../node_modules/core-js/internals/to-object.js","../../node_modules/core-js/internals/has.js","../../node_modules/core-js/internals/document-create-element.js","../../node_modules/core-js/internals/ie8-dom-define.js","../../node_modules/core-js/internals/object-get-own-property-descriptor.js","../../node_modules/core-js/internals/an-object.js","../../node_modules/core-js/internals/object-define-property.js","../../node_modules/core-js/internals/create-non-enumerable-property.js","../../node_modules/core-js/internals/set-global.js","../../node_modules/core-js/internals/shared-store.js","../../node_modules/core-js/internals/inspect-source.js","../../node_modules/core-js/internals/internal-state.js","../../node_modules/core-js/internals/native-weak-map.js","../../node_modules/core-js/internals/shared.js","../../node_modules/core-js/internals/uid.js","../../node_modules/core-js/internals/shared-key.js","../../node_modules/core-js/internals/hidden-keys.js","../../node_modules/core-js/internals/engine-v8-version.js","../../node_modules/core-js/internals/redefine.js","../../node_modules/core-js/internals/path.js","../../node_modules/core-js/internals/get-built-in.js","../../node_modules/core-js/internals/to-integer.js","../../node_modules/core-js/internals/to-length.js","../../node_modules/core-js/internals/to-absolute-index.js","../../node_modules/core-js/internals/array-includes.js","../../node_modules/core-js/internals/object-keys-internal.js","../../node_modules/core-js/internals/enum-bug-keys.js","../../node_modules/core-js/internals/object-get-own-property-names.js","../../node_modules/core-js/internals/object-get-own-property-symbols.js","../../node_modules/core-js/internals/own-keys.js","../../node_modules/core-js/internals/copy-constructor-properties.js","../../node_modules/core-js/internals/is-forced.js","../../node_modules/core-js/internals/export.js","../../node_modules/core-js/internals/function-bind-context.js","../../node_modules/core-js/internals/a-function.js","../../node_modules/core-js/internals/is-array.js","../../node_modules/core-js/internals/engine-user-agent.js","../../node_modules/core-js/internals/object-create.js","../../node_modules/core-js/internals/native-symbol.js","../../node_modules/core-js/internals/use-symbol-as-uid.js","../../node_modules/core-js/internals/well-known-symbol.js","../../node_modules/core-js/internals/array-species-create.js","../../node_modules/core-js/internals/array-iteration.js","../../node_modules/core-js/internals/object-keys.js","../../node_modules/core-js/internals/object-define-properties.js","../../node_modules/core-js/internals/html.js","../../node_modules/core-js/internals/add-to-unscopables.js","../../node_modules/core-js/modules/es.array.find.js","../../src/decorators/trackRemoval.js","../../src/index.js","../../src/decorators/windowListener.js","../../src/decorators/isCapture.js","../../src/decorators/getEffect.js","../../src/utils/uuid.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/i18next-xhr-backend/dist/esm/i18nextXHRBackend.js","../node_modules/i18next-browser-languagedetector/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/i18next-browser-languagedetector/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/scheduler/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/core-js/es6/math.js","../node_modules/core-js/modules/es6.math.acosh.js","../node_modules/core-js/modules/_function-to-string.js","../node_modules/core-js/modules/_library.js","../node_modules/core-js/modules/_a-function.js","../node_modules/core-js/modules/es6.math.asinh.js","../node_modules/core-js/modules/es6.math.atanh.js","../node_modules/core-js/modules/es6.math.cbrt.js","../node_modules/core-js/modules/es6.math.clz32.js","../node_modules/core-js/modules/es6.math.cosh.js","../node_modules/core-js/modules/es6.math.expm1.js","../node_modules/core-js/modules/es6.math.fround.js","../node_modules/core-js/modules/_math-fround.js","../node_modules/core-js/modules/es6.math.hypot.js","../node_modules/core-js/modules/es6.math.imul.js","../node_modules/core-js/modules/es6.math.log10.js","../node_modules/core-js/modules/es6.math.log1p.js","../node_modules/core-js/modules/es6.math.log2.js","../node_modules/core-js/modules/es6.math.sign.js","../node_modules/core-js/modules/es6.math.sinh.js","../node_modules/core-js/modules/es6.math.tanh.js","../node_modules/core-js/modules/es6.math.trunc.js","../node_modules/core-js/es6/number.js","../node_modules/core-js/modules/es6.number.constructor.js","../node_modules/core-js/modules/_inherit-if-required.js","../node_modules/core-js/modules/_set-proto.js","../node_modules/core-js/modules/_object-pie.js","../node_modules/core-js/modules/_iobject.js","../node_modules/core-js/modules/_object-gopn.js","../node_modules/core-js/modules/_array-includes.js","../node_modules/core-js/modules/_to-length.js","../node_modules/core-js/modules/_to-absolute-index.js","../node_modules/core-js/modules/_object-create.js","../node_modules/core-js/modules/_object-dps.js","../node_modules/core-js/modules/_object-keys.js","../node_modules/core-js/modules/_html.js","../node_modules/core-js/modules/es6.number.to-fixed.js","../node_modules/core-js/modules/_string-repeat.js","../node_modules/core-js/modules/es6.number.to-precision.js","../node_modules/core-js/modules/es6.number.epsilon.js","../node_modules/core-js/modules/es6.number.is-finite.js","../node_modules/core-js/modules/es6.number.is-integer.js","../node_modules/core-js/modules/es6.number.is-nan.js","../node_modules/core-js/modules/es6.number.is-safe-integer.js","../node_modules/core-js/modules/es6.number.max-safe-integer.js","../node_modules/core-js/modules/es6.number.min-safe-integer.js","../node_modules/core-js/modules/es6.number.parse-float.js","../node_modules/core-js/modules/_parse-float.js","../node_modules/core-js/modules/es6.number.parse-int.js","../node_modules/core-js/modules/_parse-int.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.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/_baseIsNative.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_Hash.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/_mapCacheDelete.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/memoize.js","../node_modules/lodash/toString.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/property.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/lodash/_baseUniq.js","../node_modules/lodash/_baseIndexOf.js","../node_modules/lodash/_baseIsNaN.js","../node_modules/lodash/_strictIndexOf.js","../node_modules/lodash/_createSet.js","../node_modules/lodash/noop.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../src/performance-now.coffee","../node_modules/process/browser.js","../node_modules/lodash/_baseIntersection.js","../node_modules/lodash/_overRest.js","../node_modules/lodash/_apply.js","../node_modules/lodash/_setToString.js","../node_modules/lodash/_baseSetToString.js","../node_modules/lodash/constant.js","../node_modules/lodash/_shortOut.js","../node_modules/lodash/_castArrayLikeObject.js","../node_modules/lodash/isArrayLikeObject.js","../node_modules/lodash/_baseFilter.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_createBaseEach.js","../node_modules/react-transition-group/CSSTransition.js","../node_modules/dom-helpers/class/addClass.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/dom-helpers/class/hasClass.js","../node_modules/dom-helpers/class/removeClass.js","../node_modules/react-transition-group/ReplaceTransition.js","../node_modules/react-transition-group/utils/ChildMapping.js","../node_modules/lodash/_isFlattenable.js","../node_modules/lodash/_baseOrderBy.js","../node_modules/lodash/_baseSortBy.js","../node_modules/lodash/_compareMultiple.js","../node_modules/lodash/_compareAscending.js","../node_modules/lodash/now.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/react-resize-detector/lib/components/ResizeDetector.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/lodash.debounce/index.js","../node_modules/lodash.throttle/index.js","../node_modules/lodash/_baseGt.js","../node_modules/lodash/_baseLt.js","../node_modules/lodash/map.js","../node_modules/reduce-css-calc/node_modules/balanced-match/index.js","../node_modules/reduce-function-call/index.js","../node_modules/balanced-match/index.js","../node_modules/math-expression-evaluator/src/formula_evaluator.js","../node_modules/math-expression-evaluator/src/postfix_evaluator.js","../node_modules/math-expression-evaluator/src/postfix.js","../node_modules/math-expression-evaluator/src/lexer.js","../node_modules/math-expression-evaluator/src/math_function.js","../node_modules/lodash/_arrayEvery.js","../node_modules/lodash/_baseEvery.js","../node_modules/lodash/_createFind.js","../node_modules/lodash/findIndex.js","../node_modules/lodash/toInteger.js","../node_modules/lodash/_createRange.js","../node_modules/lodash/_baseRange.js","../node_modules/lodash/_baseSome.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/react-tooltip/node_modules/uuid/dist/esm-browser/rng.js","../node_modules/react-tooltip/node_modules/uuid/dist/esm-browser/bytesToUuid.js","../node_modules/react-tooltip/node_modules/uuid/dist/esm-browser/v4.js","../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/date-fns/esm/isDate/index.js","../node_modules/date-fns/esm/toDate/index.js","../node_modules/date-fns/esm/isValid/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../node_modules/date-fns/esm/locale/en-US/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../node_modules/date-fns/esm/_lib/toInteger/index.js","../node_modules/date-fns/esm/addMilliseconds/index.js","../node_modules/date-fns/esm/subMilliseconds/index.js","../node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","../node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","../node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCWeek/index.js","../node_modules/date-fns/esm/_lib/format/formatters/index.js","../node_modules/date-fns/esm/_lib/format/longFormatters/index.js","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/date-fns/esm/_lib/protectedTokens/index.js","../node_modules/date-fns/esm/format/index.js","../node_modules/date-fns/esm/locale/es/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/es/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/es/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/es/_lib/localize/index.js","../node_modules/date-fns/esm/locale/es/index.js","../node_modules/date-fns/esm/locale/es/_lib/match/index.js","../node_modules/react-i18next/dist/es/utils.js","../node_modules/react-i18next/dist/es/useTranslation.js"],"names":["module","exports","require","baseGetTag","isObject","value","tag","hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","argType","push","Array","isArray","inner","apply","toString","Object","prototype","key","call","join","default","setPrototypeOf","__proto__","nativeGetPrototypeOf","getPrototypeOf","object","mathSign","isPercent","_isString","indexOf","isNumber","_isNumber","_isNaN","isNumOrStr","idCounter","uniqueId","prefix","id","concat","getPercentValue","percent","totalValue","defaultValue","undefined","validate","index","parseFloat","slice","getAnyElementOfObject","obj","keys","interpolateNumber","numberA","numberB","t","findEntryInArray","ary","specifiedKey","specifiedValue","find","entry","_get","shallowEqual","a","b","_key","_toConsumableArray","arr","arr2","_arrayWithoutHoles","iter","Symbol","iterator","from","_iterableToArray","TypeError","_nonIterableSpread","_objectWithoutProperties","source","excluded","target","sourceKeys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","PRESENTATION_ATTRIBUTES","PropTypes","string","any","alignmentBaseline","angle","number","baselineShift","clip","clipPath","clipRule","color","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","cursor","direction","oneOf","display","dominantBaseline","enableBackground","fill","fillOpacity","oneOfType","fillRule","filter","floodColor","floodOpacity","font","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","glyphOrientationHorizontal","glyphOrientationVertical","imageRendering","kerning","letterSpacing","lightingColor","lineHeight","markerEnd","markerMid","markerStart","mask","opacity","overflow","pointerEvents","shapeRendering","stopColor","stopOpacity","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","textAnchor","textDecoration","textRendering","unicodeBidi","visibility","wordSpacing","writingMode","transform","role","focusable","tabIndex","style","width","height","dx","dy","x","y","r","radius","array","EVENT_ATTRIBUTES","onClick","func","onMouseDown","onMouseUp","onMouseOver","onMouseMove","onMouseOut","onMouseEnter","onMouseLeave","onTouchEnd","onTouchMove","onTouchStart","onTouchCancel","REACT_BROWSER_EVENT_MAP","click","mousedown","mouseup","mouseover","mousemove","mouseout","mouseenter","mouseleave","touchcancel","touchend","touchmove","touchstart","LEGEND_TYPES","TOOLTIP_TYPES","getDisplayName","Comp","displayName","name","findAllByType","children","type","result","types","_isArray","map","React","Children","forEach","child","childType","findChildByType","getPresentationAttributes","el","_isFunction","props","isValidElement","_isObject","out","getEventHandlerOfElement","originalHandler","e","filterEventAttributes","newHandler","wrapCallback","getEventHandlerOfChild","data","filterEventsOfChild","validateWidthHeight","_el$props","isSsr","window","document","createElement","setTimeout","SVG_TAGS","isSingleChildEqual","nextChild","prevChild","_isNil","_ref","nextChildren","nextProps","_ref2","prevChildren","prevProps","isChildrenEqual","count","_i","renderByOrder","renderMap","elements","record","isSvgElement","_renderMap$displayNam","handler","once","results","parseChildIndex","_extends","assign","this","propTypes","isRequired","viewBox","shape","className","arrayOf","node","Surface","others","svgView","layerClass","attrs","version","pi","Math","abs","atan2","cos","max","min","sin","sqrt","PI","tau","draw","context","size","moveTo","arc","lineTo","closePath","tan30","tan30_2","w","rect","kr","kx","ky","c","s","sqrt3","k","x0","y0","x1","y1","x2","y2","epsilon","tauEpsilon","Path","_x0","_y0","_x1","_y1","_","path","constructor","quadraticCurveTo","bezierCurveTo","arcTo","x21","y21","x01","y01","l01_2","Error","x20","y20","l21_2","l20_2","l21","l01","l","tan","acos","t01","t21","a0","a1","ccw","cw","da","h","ownKeys","enumerableOnly","symbols","sym","getOwnPropertyDescriptor","enumerable","_defineProperty","defineProperty","configurable","writable","_typeof","_classCallCheck","instance","Constructor","_defineProperties","descriptor","_possibleConstructorReturn","self","ReferenceError","_assertThisInitialized","_getPrototypeOf","o","_setPrototypeOf","p","SYMBOL_FACTORIES","symbolCircle","symbolCross","symbolDiamond","symbolSquare","symbolStar","symbolTriangle","symbolWye","RADIAN","Symbols","_PureComponent","protoProps","staticProps","subClass","superClass","create","_inherits","_this$props","sizeType","symbolFactory","toUpperCase","getSymbolFactory","symbol","constant","circle","buffer","shapeSymbol","pow","calculateAreaSize","_this$props2","cx","cy","d","getPath","PureComponent","getOwnPropertyDescriptors","defineProperties","_objectSpread","defaultProps","SIZE","ICON_TYPES","DefaultLegendContent","inactiveColor","halfSize","sixthSize","thirdSize","inactive","payload","_this","iconSize","layout","formatter","itemStyle","marginRight","svgStyle","verticalAlign","_classNames","finalFormatter","renderIcon","align","finalStyle","padding","margin","textAlign","renderItems","content","element","iconType","defaultUniqBy","getUniqPaylod","option","_uniqBy","Legend","_getPrototypeOf2","_len","args","state","boxWidth","boxHeight","item","chartWidth","updateBBox","_this$state","hPos","vPos","chartHeight","left","right","getBBox","top","bottom","_this$state2","onBBoxUpdate","wrapperNode","getBoundingClientRect","box","setState","_this2","wrapperStyle","paylodUniqBy","outerStyle","position","getDefaultPosition","ref","cloneElement","renderContent","bool","setRafTimeout","callback","timeout","currTime","shouldUpdate","now","raf","_toArray","_arrayWithHoles","_nonIterableRest","createAnimateManager","handleChange","shouldStop","setStyle","_style","_styles","curr","restStyles","bind","stop","start","subscribe","_handleChange","PREFIX_LIST","IN_LINE_PREFIX_LIST","IN_COMPATIBLE_PROPERTY","identity","param","mapObject","fn","reduce","res","translateStyle","isTransition","camelName","replace","v","styleVal","property","generatePrefixStyle","getTransitionVal","duration","easing","prop","toLowerCase","_slicedToArray","_arr","_n","_d","_e","_s","next","done","err","_iterableToArrayLimit","ACCURACY","cubicBezierFactor","c1","c2","multyTime","params","pre","cubicBezier","derivativeCubicBezier","newParams","configBezier","split","_easing$1$split$0$spl","_easing$1$split$0$spl2","every","num","curveX","curveY","derCurveX","rangeValue","bezier","_t","evalT","derVal","isStepper","configSpring","config","_config$stiff","stiff","_config$damping","damping","_config$dt","dt","stepper","currX","destX","currV","newV","newX","alpha","begin","end","needContinue","to","calStepperVals","preVals","steps","nextStepVals","val","_easing2","velocity","render","preObj","nextObj","preTime","beginTime","interKeys","_intersection","timingStyle","stepperStyle","cafId","update","_filter","currStyle","caf","Animate","isActive","attributeName","handleStyleChange","changeStyle","canBegin","mounted","runAnimation","_this$props3","shouldReAnimate","_isEqual","isTriggered","manager","stopJSAnimation","_newState","newState","unSubscribe","onAnimationEnd","onAnimationStart","startAnimation","configUpdate","_len2","_key2","configEasing","_this3","_steps$","initialStyle","_steps$$duration","initialTime","sequence","nextItem","_nextItem$easing","nextProperties","properties","preItem","runJSAnimation","transition","newStyle","propsTo","runStepAnimation","_this$props4","onAnimationReStart","stateStyle","cloneContainer","container","_container$props","_container$props$styl","only","parseDurationOfSingleTransition","options","AnimateGroupChild","_Component","handleEnter","isAppearing","appearOptions","enterOptions","handleStyleActive","handleExit","leaveOptions","Transition","onEnter","onExit","parseTimeout","Component","AnimateGroup","component","appear","enter","leave","TransitionGroup","defaultFormatter","DefaultTooltipContent","separator","itemSorter","items","_sortBy","finalItemStyle","paddingTop","paddingBottom","formatted","_formatted","unit","wrapperClassName","contentStyle","labelClassName","labelStyle","label","labelFormatter","backgroundColor","border","whiteSpace","finalLabelStyle","hasLabel","finalLabel","wrapperCN","labelCN","CLS_PREFIX","dataKey","allowEscapeViewBox","active","offset","coordinate","isAnimationActive","animationDuration","animationEasing","filterNull","useTranslate3d","cursorStyle","Tooltip","getTranslate","tooltipDimension","viewBoxDimension","restricted","unrestricted","translateX","translateY","finalPayload","hasPayload","cls","ResponsiveContainer","updateDimensionsImmediate","newSize","getContainerSize","oldWidth","containerWidth","oldHeight","containerHeight","handleResize","debounce","_debounce","clientWidth","clientHeight","aspect","maxHeight","minWidth","minHeight","calculatedWidth","calculatedHeight","renderChart","ReactResizeDetector","handleWidth","handleHeight","onResize","CartesianGrid","lineItem","horizontalPoints","horizontal","renderLineItem","verticalPoints","vertical","verticalFill","verticalPointsUpdated","sort","unshift","lineWidth","colorIndex","round","horizontalFill","horizontalPointsUpdated","_this$props5","_this$props6","horizontalCoordinatesGenerator","verticalCoordinatesGenerator","xAxis","yAxis","_this$props7","renderBackground","renderHorizontal","renderVertical","renderHorizontalStripes","renderVerticalStripes","point","that","_context","Basis","areaStart","_line","areaEnd","NaN","lineStart","_point","lineEnd","BasisClosed","noop","_x2","_x3","_x4","_y2","_y3","_y4","BasisOpen","LinearClosed","Linear","sign","slope3","h0","h1","s0","s1","slope2","t0","t1","MonotoneX","MonotoneY","ReflectContext","Natural","controlPoints","m","n","_t0","_x","_y","px","py","i0","i1","Step","pointX","pointY","defined","curve","curveLinear","output","line","defined0","area","j","x0z","y0z","arealine","lineX0","lineY0","lineY1","lineX1","CURVE_FACTORIES","curveBasisClosed","curveBasisOpen","curveBasis","curveLinearClosed","curveMonotoneX","curveMonotoneY","curveNatural","curveStep","curveStepAfter","curveStepBefore","getX","getY","Curve","lineFunction","points","baseLine","connectNulls","curveFactory","getCurveFactory","formatPoints","formatBaseLine","base","areaPoints","shapeArea","shapeLine","pathRef","realPath","Dot","Layer","stringCache","widthCache","cacheCount","SPAN_STYLE","STYLE_LIST","MEASUREMENT_SPAN_ID","getStyleString","text","getStringSize","str","styleString","cacheKey","measurementSpan","getElementById","setAttribute","body","appendChild","measurementSpanStyle","styleKey","textContent","BREAKING_SPACES","Text","_props","getWordsWithoutCalculate","words","wordsByLines","getWordsByLines","updateWordsByLines","scaleToFit","needCalculate","wordWidths","wordsWithComputedWidth","word","spaceWidth","calculateWordWidths","calculateWordsByLines","currentLine","newLine","verticalAnchor","capHeight","textProps","startDy","reduceCSSCalc","transforms","_arrayLikeToArray","minLen","test","_unsupportedIterableToArray","len","PLACE_HOLDER","isPlaceHolder","curry0","_curried","curryN","argsLength","restArgs","newArgs","shift","curry","range","compose","_len3","_key3","fns","reverse","firstFn","tailsFn","memoize","lastArgs","lastResult","_len4","_key4","rangeStep","step","Decimal","lt","toNumber","add","getDigitCount","floor","log","newA","uninterpolateNumber","diff","Infinity","uninterpolateTruncation","getValidInterval","validMin","validMax","getFormatStep","roughStep","allowDecimals","correctionFactor","lte","digitCount","Arithmetic","digitCountValue","stepRatio","div","stepRatioScale","formatStep","ceil","mul","getTickOfSingleValue","tickCount","middle","isint","absVal","middleIndex","calculateStep","Number","isFinite","tickMin","tickMax","sub","mod","belowCount","upCount","scaleCount","getNiceTickValues","_ref3","_ref4","_getValidInterval","_getValidInterval2","cormin","cormax","_values","_calculateStep","values","getTickValuesFixedDomain","_ref5","_ref6","_getValidInterval3","_getValidInterval4","_ref7","_ref8","_getValidInterval5","_getValidInterval6","compare","f","ascending","lo","hi","mid","ascendingBisect","bisector","bisectRight","e10","e5","e2","ticks","tickIncrement","power","LN10","error","tickStep","step0","step1","valueof","value0","initRange","domain","initInterpolator","interpolator","Map","each","set","has","get","remove","clear","entries","empty","Set","proto","implicit","ordinal","unknown","scale","copy","band","bandwidth","ordinalRange","paddingInner","paddingOuter","rescale","rangeRound","pointish","factory","extend","parent","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","RegExp","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatRgb","formatRgb","format","trim","exec","parseInt","rgbn","Rgb","rgba","hsla","g","rgbConvert","rgb_formatHex","hex","rgb_formatRgb","isNaN","Hsl","hslConvert","hsl2rgb","m1","m2","basis","v0","v1","v2","v3","t2","t3","define","channels","displayable","formatHsl","linear","gamma","nogamma","exponential","rgbGamma","colorRgb","rgbSpline","spline","colors","isNumberArray","ArrayBuffer","isView","DataView","genericArray","nb","na","Date","setTime","reA","reB","am","bm","bs","bi","lastIndex","q","one","zero","date","numberArray","valueOf","normalize","clamper","bimap","interpolate","d0","d1","r0","r1","polymap","bisect","clamp","transformer","untransform","piecewise","input","interpolateValue","invert","interpolateRound","u","continuous","re","formatSpecifier","specifier","match","FormatSpecifier","comma","precision","formatDecimalParts","toExponential","coefficient","prefixExponent","locale","formatPrefix","exponent","toFixed","toLocaleString","toPrecision","formatRounded","prefixes","grouping","thousands","group","substring","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","String","minus","nan","newFormat","formatTypes","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","formatTrim","charCodeAt","formatLocale","precisionPrefix","precisionRound","precisionFixed","linearish","tickFormat","nice","interval","transformLog","transformExp","exp","transformLogn","transformExpn","pow10","reflect","loggish","logs","pows","E","log10","log2","logp","powp","z","transformSymlog","log1p","transformSymexp","expm1","symlogish","symlog","transformPow","transformSqrt","transformSquare","powish","quantile","thresholds","threshold","invertExtent","quantiles","quantize","newInterval","floori","offseti","field","previous","year","setMonth","setHours","setFullYear","getFullYear","month","setDate","getMonth","durationSecond","durationMinute","durationHour","durationDay","durationWeek","weekday","getDate","getDay","getTimezoneOffset","sunday","monday","tuesday","wednesday","thursday","friday","saturday","day","hour","getMilliseconds","getSeconds","getMinutes","getHours","minute","second","getUTCSeconds","millisecond","utcWeekday","setUTCDate","getUTCDate","getUTCDay","setUTCHours","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcDay","utcYear","setUTCMonth","setUTCFullYear","getUTCFullYear","localDate","H","M","S","L","utcDate","UTC","newDate","timeFormat","utcFormat","pads","numberRe","percentRe","requoteRe","pad","requote","formatRe","names","formatLookup","parseWeekdayNumberSunday","parseWeekdayNumberMonday","parseWeekNumberSunday","U","parseWeekNumberISO","V","parseWeekNumberMonday","W","parseFullYear","parseYear","parseZone","Z","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","Q","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","timeDay","timeYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","timeSunday","dISO","timeThursday","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","timeMonday","formatYear","formatYearISO","formatFullYear","formatFullYearISO","formatZone","formatUTCDayOfMonth","formatUTCHour24","getUTCHours","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","getUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","getUTCMonth","formatUTCMinutes","getUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","dow","formatUTCWeekNumberSunday","UTCdISO","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCYearISO","formatUTCFullYear","formatUTCFullYearISO","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","locale_dateTime","dateTime","locale_date","locale_time","time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","utcFormats","parses","parseSpecifier","charAt","newParse","week","parse","X","utcParse","defaultLocale","durationMonth","durationYear","calendar","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","tickIntervals","tickInterval","timeMonth","timeWeek","timeHour","timeMinute","timeSecond","timeMillisecond","utcMonth","utcHour","setUTCMinutes","utcMinute","setUTCSeconds","utcWeek","utcSecond","utcMillisecond","k10","sequential","sequentialLog","sequentialSymlog","sequentialPow","sequentialSqrt","sequentialQuantile","k21","diverging","divergingLog","divergingSymlog","divergingPow","divergingSqrt","series","order","stackValue","ErrorBar","dataPointFormatter","xMid","yMid","xMin","yMin","xMax","yMax","coordsTop","coordsMid","coordsBot","lowBound","highBound","_dataPointFormatter","errorVal","_errorVal","renderErrorBars","getValueByDataKey","getDomainOfDataByKey","filterNil","flattenData","_flatMap","_min","_max","getMainColorOfGraphicItem","_item$props","getLegendProps","legendData","formatedGraphicalItems","legendWidth","legendContent","legendItem","sectors","legendType","_item$props2","hide","getWithHeight","getDomainOfErrorBars","axisType","errorBars","errorBarChild","entryValue","mainValue","errorDomain","prevErrorArr","errorValue","lowerValue","upperValue","getDomainOfItemsWithSameAxis","domains","isCategorialAxis","getCoordinatesOfGrid","hasMin","hasMax","getTicksOfAxis","axis","isGrid","isAll","duplicateDomain","niceTicks","scaleContent","isCategorial","categoricalDomain","combineEventHandlers","defaultHandler","parentHandler","childHandler","customizedHandler","arg1","arg2","arg3","arg4","parseScale","chartType","d3Scales","realScaleType","EPS","checkDomainOfScale","first","last","STACK_OFFSET_MAP","positive","negative","expand","none","stackOffsetNone","silhouette","wiggle","s2","si","sij0","s3","sk","getStackedData","stackItems","offsetType","dataKeys","stack","orderNone","offsetNone","oz","kz","sz","sij","ki","shapeStack","stackOrderNone","getTicksOfScale","opts","originalDomain","scaleType","tickValues","calculateDomainOfTicks","_domain","getCateCoordinateOfLine","bandSize","allowDuplicatedCategory","matchedTick","getCateCoordinateOfBar","getDomainOfStackGroups","stackGroups","startIndex","endIndex","stackId","stackedData","MIN_VALUE_REG","MAX_VALUE_REG","parseSpecifiedDomain","specifiedDomain","dataDomain","allowDataOverflow","_value","getBandSizeOfAxis","orderedTicks","cur","prev","parseDomainOfCategoryAxis","calculatedDomain","axisChild","radianToDegree","angleInRadian","polarToCartesian","getAngleOfPoint","anotherPoint","distanceBetweenPoints","reverseFormatAngleOfSetor","startAngle","endAngle","startCnt","endCnt","inRangeOfSector","sector","_getAngleOfPoint","innerRadius","outerRadius","inRange","_formatAngleOfSector","formatAngleOfSector","formatAngle","cartesianViewBoxShape","polarViewBoxShape","renderRadialLabel","labelProps","labelAngle","clockWise","deltaAngle","getDeltaAngle","startPoint","endPoint","xlinkHref","Label","_props$className","getLabel","isPolarLabel","isPolar","events","positionAttrs","midAngle","_polarToCartesian","_polarToCartesian2","getAttrsOfPolarLabel","getAttrsOfCartesianLabel","parseViewBox","parseLabel","renderCallByParent","parentProps","ckeckPropsLabel","parentViewBox","explicitChilren","implicitLabel","valueAccessor","_last","LabelList","idProps","parseLabelList","implicitLabelList","Line","isAnimationFinished","totalLength","cachePrevData","prevPoints","mainCurve","handleAnimationEnd","handleAnimationStart","lines","linesUnit","dotItem","getTotalLength","animationId","curveDom","lineLength","remainLength","restLength","remainLines","sum","emptyLines","repeat","errorBarItems","dataPoint","needClip","clipPathId","dot","lineProps","customDotProps","dotEvents","dots","dotProps","renderDotItem","dotsProps","curveProps","animationBegin","prevPointsDiffFactor","stepData","prevPointIndex","interpolatorX","interpolatorY","animateNewValues","_interpolatorX","_interpolatorY","renderCurveStatically","currentStrokeDasharray","curLength","getStrokeDasharray","renderCurveWithAnimation","hasSinglePoint","renderCurve","renderErrorBar","renderDots","yAxisId","xAxisId","tooltipType","activeDot","getComposedData","xAxisTicks","yAxisTicks","displayedData","Area","prevBaseLine","areaProps","startX","endX","maxY","startY","endY","maxX","renderVerticalRect","renderHorizontalRect","isRange","stepBaseLine","stepPoints","_interpolator","renderAreaStatically","renderClipRect","renderAreaWithAnimation","_this$props8","renderArea","getBaseValue","baseValue","numericAxis","dataStartIndex","hasStack","getRectangePath","maxRadius","ySign","xSign","newRadius","_newRadius","Rectangle","isUpdateAnimationActive","currWidth","currHeight","currY","Cell","Bar","prevData","baseProps","renderRectangle","interpolatorWidth","interpolatorHeight","_interpolatorHeight","renderRectanglesStatically","renderRectanglesWithAnimation","_this4","backgroundProps","background","rest","renderRectangles","barSize","minPointSize","maxBarSize","barPosition","pos","findPositionOfBar","stackedDomain","getBaseValueOfBar","cells","rects","truncateByDomain","delta","XAxis","mirror","orientation","tickFormatter","tick","axisLine","tickLine","minTickGap","tickSize","reversed","YAxis","Cross","getTangentCircle","isExternal","cornerRadius","cornerIsExternal","centerRadius","theta","asin","centerAngle","lineTangencyAngle","center","circleTangency","lineTangency","getSectorPath","tempEndAngle","outerStartPoint","outerEndPoint","innerStartPoint","innerEndPoint","Sector","forceCornerRadius","deltaRadius","cr","_getTangentCircle","soct","solt","sot","_getTangentCircle2","eoct","eolt","eot","outerArcAngle","_getTangentCircle3","sict","silt","sit","_getTangentCircle4","eict","eilt","eit","innerArcAngle","getSectorWithCorner","CartesianAxis","getNumberIntervalTicks","getTicksStart","getTicksEnd","preserveEnd","sizeKey","unitSize","tail","tailContent","tailSize","tailGap","tickCoord","isShow","gap","_i2","restProps","viewBoxOld","restPropsOld","tx","ty","tickMargin","finalTickSize","needHeight","needWidth","finalTicks","getTicks","getTickTextAnchor","getTickVerticalAnchor","axisProps","customTickProps","tickLineProps","_this$getTickLineCoor","getTickLineCoord","lineCoord","tickProps","visibleTicksCount","renderTickItem","ticksGenerator","noTicksProps","renderAxisLine","renderTicks","Brush","handleDrag","leaveTimer","clearTimeout","isTravellerMoving","handleTravellerMove","isSlideMoving","handleSlideDrag","handleTouchMove","changedTouches","handleDragEnd","handleLeaveWrapper","leaveTimeOut","handleEnterSlideOrTraveller","isTextActive","handleLeaveSlideOrTraveller","handleSlideDragStart","event","slideMoveStartX","pageX","travellerDragStartHandlers","handleTravellerDragStart","updateScale","travellerWidth","updateId","scaleValues","minIndex","getIndexInRange","maxIndex","onChange","newIndex","getIndex","movingTravellerId","brushMoveStartX","_this$setState","prevValue","isFullGap","scalePoint","_range","chartElement","compact","travellerX","lineY","_this$props9","_this$props10","_this$state3","getTextOfTick","_this$props11","alwaysShowText","_this$state4","isPanoramic","renderPanorama","renderSlide","renderTraveller","renderText","ifOverflowMatches","alwaysShow","ifOverflow","_createClass","formatAxisMap","axisMap","chartName","ids","leftMirror","rightMirror","topMirror","bottomMirror","needSpace","_axis$padding","offsetKey","_parseScale","finalAxis","rectWithPoints","ScaleHelper","bandAware","_offset","_offset2","LabeledScaleHelper","scales","_mapValues","coords","_every","isInRange","ReferenceDot","isX","isY","getCoordinate","renderDot","isFront","ReferenceLine","isFixedX","isFixedY","isSegment","_this$props$viewBox","yCoord","coord","xCoord","_orientation","_coord","_points","_points2","segment","_some","fixedX","fixedY","endPoints","getEndPoints","_endPoints","_endPoints$","_endPoints$2","renderLine","rectWithCoords","ReferenceArea","hasX1","hasX2","hasY1","hasY2","xValue1","xValue2","yValue1","yValue2","p1","rangeMin","p2","rangeMax","getRect","renderRect","detectReferenceElementsDomain","axisId","specifiedTicks","areas","idKey","valueKey","finalDomain","key1","key2","value1","value2","eventCenter","EventEmitter","setMaxListeners","SYNC_EVENT","ORIENT_MAP","originCoordinate","generateCategoricalChart","GraphicalChild","_ref$eventType","eventType","axisComponents","CategoricalChartWrapper","handleLegendBBoxUpdate","legendInstance","dataEndIndex","updateStateOfAxisMapsOffsetAndStackGroups","handleReceiveSyncEvent","cId","chartId","syncId","uniqueChartId","activeTooltipIndex","chartX","chartY","tooltipTicks","validateChartX","validateChartY","activeLabel","activePayload","getTooltipContent","activeCoordinate","handleBrushChange","triggerSyncEvent","handleMouseEnter","mouse","getMouseInfo","nextState","isTooltipActive","triggeredAfterMouseMove","handleItemMouseEnter","activeItem","tooltipPayload","tooltipPosition","handleItemMouseLeave","handleMouseMove","persist","handleMouseLeave","handleOuterEvent","eventName","getReactEventByType","handleClick","handleMouseDown","handleMouseUp","handleTouchStart","handleTouchEnd","axesTicksGenerator","tooltipTicksGenerator","orderedTooltipTicks","tooltipAxis","tooltipAxisBandSize","renderCursor","cursorComp","getCursorRectangle","_this$getCursorPoints","getCursorPoints","cursorProps","renderPolarAxis","axisOption","renderXAxis","axisObj","xAxisMap","renderAxis","renderYAxis","yAxisMap","renderGrid","_find","renderPolarGrid","_this$state5","radiusAxisMap","angleAxisMap","radiusAxis","angleAxis","polarAngles","polarRadius","renderBrush","_this$state6","brushBottom","renderReferenceElement","_this$state7","_element$props","renderGraphicChild","filterFormatItem","graphicalItem","_this$state8","tooltipItem","_item$item$props","activePoint","basePoint","renderActivePoints","childIndex","renderCustomized","defaultState","createDefaultState","throttleDelay","_throttle","numericAxisName","cateAxisName","addListener","stackOffset","newUpdateId","prevState","removeListener","cancel","_ref5$axisType","AxisComp","graphicalItems","axisIdKey","axes","getAxisMapByAxes","getAxisMapByItems","Axis","_child$props","getDisplayedData","duplicate","cache","hasDuplicate","errorBarsDomain","parseErrorBarsOfAxis","activeIndex","rangeObj","_angle","_radius","pageY","calculateChartCoordinate","html","ownerDocument","documentElement","pageYOffset","clientTop","pageXOffset","clientLeft","getOffset","_this$state9","xScale","yScale","xValue","yValue","_this$state10","unsortedTicks","before","after","sameDirectionCoord","diffInterval","curInRange","afterInRange","sameInterval","calculateActiveTickIndex","calculateTooltipPos","getActiveCoordinate","_this$state11","_child$props2","currentState","barGap","barCategoryGap","globalMaxBarSize","_this$constructor$get","getAxisNameByLayout","hasBar","sizeList","globalSize","_ref4$stackGroups","numericAxisIds","sgs","stackIds","sLen","_sgs$stackIds$j","cateAxisId","barItems","selfSize","cateId","stackList","getBarSizeList","formatedItems","_objectSpread5","childMaxBarSize","numericAxisId","_objectSpread4","cateAxis","cateTicks","itemIndex","getStackedDataOfItem","_ref5$sizeList","realBarGap","useFull","fullBarSize","newRes","originalSize","getBarPosition","componsedFn","onItemMouseLeave","onItemMouseEnter","_this$state12","_this$state13","_cx","_cy","innerPoint","outerPoint","_this$state14","tooltipEvents","_this5","reverseStackOrder","_this$constructor$get2","_items","_item$props3","parentGroup","childGroup","getStackGroupsByAxisId","getAxisMap","calculateOffset","cateAxisMap","ticksObj","getFormatItems","on","_maxListeners","_ref9","_ref9$xAxisMap","_ref9$yAxisMap","brushItem","offsetH","offsetV","legendBox","legendHeight","legendProps","newOffset","appendOffsetOfLegend","emit","axisOptions","_this6","otherProps","legend","_this$state15","_ref10","_item$item$props2","renderActiveDot","_this$state$offset","_this7","Radar","RadialBar","Scatter","Pie","Funnel","PolarGrid","PolarAngleAxis","PolarRadiusAxis","Customized","renderClipPath","parseEventsOfWrapper","renderLegend","renderTooltip","defaultShowTooltip","some","_ref11","itemsData","itemData","globalScope","ONE","MAX_DIGITS","rounding","toExpNeg","toExpPos","external","decimalError","invalidArgument","exponentOutOfRange","mathfloor","mathpow","isDecimal","BASE","MAX_SAFE_INTEGER","MAX_E","P","carry","xd","yd","Ctor","pr","pop","checkInt32","digitsToString","ws","indexOfLastWord","getZeroString","absoluteValue","comparedTo","cmp","xdL","ydL","decimalPlaces","dp","dividedBy","divide","dividedToIntegerBy","idiv","equals","eq","getBase10Exponent","greaterThan","gt","greaterThanOrEqualTo","gte","isInteger","isNegative","isneg","isPositive","ispos","isZero","lessThan","lessThanOrEqualTo","logarithm","wpr","ln","subtract","modulo","times","naturalExponential","naturalLogarithm","negated","neg","plus","sd","squareRoot","rL","toDecimalPlaces","todp","rm","toInteger","toint","toPower","yIsInt","yn","truncate","toSignificantDigits","tosd","toJSON","multiplyInteger","temp","aL","bL","prod","prodL","qd","rem","remL","rem0","xi","xL","yd0","yL","yz","denominator","getLn10","zs","c0","numerator","parseDecimal","search","rd","doRound","xdi","xe","xLTy","isExp","ps","clone","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","global","core","redefine","ctx","$export","own","IS_FORCED","F","IS_GLOBAL","G","IS_PROTO","IS_BIND","B","expProto","Function","R","buildLocalizeFn","dirtyIndex","dirtyOptions","valuesArray","formattingValues","defaultWidth","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","findIndex","pattern","findKey","valueCallback","predicate","baseIsEqual","other","baseGet","freeGlobal","freeSelf","root","baseExtremum","baseGt","__g","baseMatches","baseMatchesProperty","isObjectLike","buildFormatLongFn","vendors","queue","_now","cp","cancelled","handle","polyfill","requestAnimationFrame","cancelAnimationFrame","getRawTag","objectToString","symToStringTag","toStringTag","baseIsNative","getValue","it","isFunction","isLength","baseFlatten","baseOrderBy","baseRest","isIterateeCall","sortBy","collection","iteratees","baseIteratee","baseUniq","iteratee","createRange","__e","i18nInstance","defaultOptions","bindI18n","bindI18nStore","transEmptyNodeValue","transSupportBasicHtmlNodes","transWrapTextNodes","transKeepBasicHtmlNodesFor","useSuspense","I18nContext","createContext","getDefaults","ReportNamespaces","usedNamespaces","namespaces","ns","getI18n","initReactI18next","init","setDefaults","react","setI18n","baseLt","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","nativeCreate","getNative","isKeyable","__data__","arrayLikeKeys","baseKeys","isArrayLike","isSymbol","baseForOwn","baseEach","createBaseEach","isIndex","checkDCE","__REACT_DEVTOOLS_GLOBAL_HOOK__","console","__esModule","buildMatchPatternFn","parseResult","parsePattern","_CSSTransition","_interopRequireDefault","_ReplaceTransition","_TransitionGroup","_Transition","ReplaceTransition","CSSTransition","arrayEvery","baseEvery","guard","balanced","reduceFunctionCall","mexp","NESTED_CALC_RE","decimalPrecision","evaluateExpression","expression","functionIdentifier","matches","evaluatedPart","nonEvaluatedPart","balancedExpr","evaluated","post","evaluateNestedExpression","units","uniqueUnits","uniqueLowerCaseUnits","unitRegEx","getUnitsInExpression","toEvaluate","eval","propIsEnumerable","toObject","test1","getOwnPropertyNames","test2","fromCharCode","test3","letter","shouldUseNative","anObject","IE8_DOM_DEFINE","toPrimitive","dP","O","Attributes","$expm1","IObject","fails","spaces","space","ltrim","rtrim","exporter","KEY","ALIAS","FORCE","TYPE","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","baseIsEqualDeep","bitmask","customizer","setCacheAdd","setCacheHas","SetCache","baseIsArguments","objectProto","isArguments","webpackPolyfill","deprecate","paths","reIsUint","castPath","toKey","reIsDeepProp","reIsPlainProp","nativeMax","nativeMin","wait","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","thisArg","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","flush","baseAssignValue","consoleLogger","warn","Logger","concreteLogger","logger","debug","forward","lvl","debugOnly","moduleName","baseLogger","observers","listener","cloned","observer","_cloned","defer","rej","promise","Promise","resolve","reject","makeString","getLastOfPath","Empty","cleanKey","canNotTraverseDeeper","setPath","newValue","_getLastOfPath","_getLastOfPath3","getPathWithDefaults","defaultData","deepExtend","overwrite","regexEscape","_entityMap","escape","isIE10","navigator","userAgent","chars","ownKeys$1","_objectSpread$1","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","_isNativeReflectConstruct","Super","NewTarget","deepFind","keySeparator","current","mix","joinedPath","ResourceStore","_EventEmitter","_super","defaultNS","ignoreJSONStructure","splice","lng","silent","addNamespaces","resources","addResource","deep","pack","hasResourceBundle","removeNamespaces","getResource","compatibilityAPI","getDataByLanguage","postProcessor","processors","addPostProcessor","translator","processor","process","ownKeys$2","_objectSpread$2","_createSuper$1","_isNativeReflectConstruct$1","checkedLoadedFor","Translator","services","language","interpolation","resolved","nsSeparator","wouldCheckForNsInKey","seemsNaturalLanguage","userDefinedKeySeparator","userDefinedNsSeparator","possibleChars","matched","looksLikeObjectPath","nestingRegexp","parts","lastKey","overloadTranslationOptionHandler","_this$extractFromKey","extractFromKey","namespace","appendNamespaceToCIMode","resUsedKey","usedKey","resExactUsedKey","exactUsedKey","resType","noObject","joinArrays","handleAsObjectInI18nFormat","i18nFormat","handleAsObject","returnObjects","returnedObjectHandler","resTypeIsArray","newKeyToUse","deepKey","translate","extendTranslation","usedDefault","needsPluralHandling","hasDefaultValue","defaultValueSuffix","pluralResolver","getSuffix","isValidLookup","missingKeyNoValueFallbackToKey","resForMissing","updateMissing","fk","lngs","fallbackLngs","languageUtils","getFallbackCodes","fallbackLng","saveMissingTo","toResolveHierarchy","send","fallbackValue","missingKeyHandler","backendConnector","saveMissing","saveMissingPlurals","getSuffixes","appendNamespaceToMissingKey","parseMissingKeyHandler","usedLng","usedNS","skipInterpolation","nestBef","skipOnVariables","defaultVariables","nest","reset","postProcess","postProcessorNames","applyPostProcessor","postProcessPassResolved","i18nResolved","found","extracted","fallbackNS","needsContextHandling","codes","utils","hasLoadedNamespace","code","pluralSuffix","possibleKey","finalKey","finalKeys","addLookupKeys","contextSeparator","returnNull","returnEmptyString","resourceStore","capitalize","LanguageUtil","supportedLngs","formatLanguageCode","specialCases","lowerCaseLng","part","cleanCode","load","nonExplicitSupportedLngs","getLanguagePartFromCode","cleanedLng","isSupportedCode","lngOnly","supportedLng","fallbacks","getScriptPartFromCode","fallbackCode","fallbackCodes","addCode","fc","sets","nr","_rulesPluralsTypes","deprecatedJsonVersions","suffixesOrder","two","few","many","createRules","rules","numbers","plurals","PluralResolver","compatibilityJSON","Intl","PluralRules","shouldUseIntlApi","_unused","rule","getRule","resolvedOptions","pluralCategories","pluralCategory1","pluralCategory2","pluralCategory","prepend","select","getSuffixRetroCompatible","idx","noAbs","simplifyPluralSuffix","returnSuffix","includes","ownKeys$3","_objectSpread$3","Interpolator","escapeValue","iOpts","useRawValueToEscape","prefixEscaped","suffixEscaped","formatSeparator","unescapePrefix","unescapeSuffix","nestingPrefix","nestingPrefixEscaped","nestingSuffix","nestingSuffixEscaped","nestingOptionsSeparator","maxReplaces","alwaysFormat","resetRegExp","regexpStr","regexp","regexpUnescapeStr","regexpUnescape","nestingRegexpStr","replaces","regexSafe","handleFormat","interpolationkey","missingInterpolationHandler","regex","safeValue","todo","clonedOptions","handleHasOptions","inheritedOptions","sep","optionsString","JSON","formatters","doReduce","elem","ownKeys$4","_objectSpread$4","Formatter","NumberFormat","datetime","DateTimeFormat","relativetime","RelativeTimeFormat","list","ListFormat","_format","mem","_parseFormatStr","formatStr","formatName","formatOptions","optStr","opt","_opt$split2","parseFormatStr","valOptions","formatParams","ownKeys$5","_objectSpread$5","_createSuper$2","_isNativeReflectConstruct$2","Connector","backend","store","languages","toLoad","pending","toLoadLanguages","toLoadNamespaces","hasAllNamespaces","reload","loaded","errors","addResourceBundle","_getLastOfPath2","pushPath","what","fcName","tried","read","queueLoad","loadOne","prepareLoading","isUpdate","initImmediate","preload","pluralSeparator","partialBundledLanguages","ret","tDescription","transformOptions","ownKeys$6","_objectSpread$6","_createSuper$3","_isNativeReflectConstruct$3","bindMemberFunctions","inst","I18n","modules","isInitialized","isClone","defOpts","createClassOnDemand","ClassOrObject","lu","languageDetector","detection","storeApi","_this2$store","storeApiChained","_this2$store2","deferred","finish","initializedStoreOnce","changeLanguage","usedCallback","append","isLanguageChangingTo","setLngProps","resolvedLanguage","li","lngInLngs","hasLanguageSomeTranslations","setLng","getBestMatchFromCodes","cacheUserLanguage","loadResources","async","detect","keyPrefix","fixedT","resultKey","_this$translator","_this$translator2","exists","lastLng","loadNotPending","loadState","precheck","preResult","preloaded","newLngs","_this8","mergedOptions","membersToCopy","createInstance","reloadResources","use","getFixedT","setDefaultNamespace","loadNamespaces","loadLanguages","createDesc","is","bitmap","SRC","$toString","TO_STRING","TPL","inspectSource","safe","random","SHARED","mode","copyright","aFunction","pIE","toIObject","gOPD","arrayIndexOf","IE_PROTO","shared","uid","cof","msg","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","funcToString","arraySome","cacheHas","equalFunc","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","othIndex","resIndex","stubFalse","freeExports","nodeType","freeModule","Buffer","isBuffer","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","isTypedArray","srcValue","isKey","stringToPath","baseIndexOf","fromIndex","fromRight","comparator","overRest","setToString","baseFor","EXITING","ENTERED","ENTERING","EXITED","UNMOUNTED","newObj","desc","_interopRequireWildcard","_react","_reactDom","_reactLifecyclesCompat","_React$Component","initialStatus","transitionGroup","isMounting","appearStatus","in","unmountOnExit","mountOnEnter","status","nextCallback","_proto","getChildContext","getDerivedStateFromProps","componentDidMount","updateStatus","componentDidUpdate","nextStatus","componentWillUnmount","cancelNextCallback","getTimeouts","exit","mounting","findDOMNode","performEnter","performExit","appearing","timeouts","enterTimeout","safeSetState","onEntering","onTransitionEnd","onEntered","onExiting","onExited","setNextCallback","doesNotHaveTimeoutOrListener","addEndListener","childProps","contextTypes","childContextTypes","_default","componentWillMount","componentWillReceiveProps","componentWillUpdate","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","isReactComponent","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","componentName","newApiName","maybeSnapshot","snapshot","__suppressDeprecationWarning","classNamesShape","timeoutsShape","_propTypes","_ChildMapping","handleExited","firstRender","appeared","prevChildMapping","getInitialChildMapping","getNextChildMapping","currentChildMapping","getChildMapping","childFactory","arrayPush","isFlattenable","depth","isStrict","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","computed","INFINITY","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","arrayMap","baseIntersection","castArrayLikeObject","intersection","arrays","mapped","arrayFilter","baseFilter","_ResizeDetector","_ResizeDetector2","createFind","baseSome","ReflectOwnKeys","ReflectApply","receiver","NumberIsNaN","emitter","errorListener","resolver","eventTargetAgnosticAddListener","flags","addErrorHandlerIfEventEmitter","_events","_eventsCount","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","existing","warning","newListener","warned","onceWrapper","fired","wrapFn","_onceWrap","wrapped","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","addEventListener","wrapListener","removeEventListener","RangeError","getMaxListeners","doError","er","message","listeners","prependListener","prependOnceListener","originalListener","spliceOne","off","removeAllListeners","rawListeners","eventNames","HASH_UNDEFINED","argsTag","arrayTag","boolTag","dateTag","errorTag","funcTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","reLeadingDot","rePropName","reEscapeChar","reIsHostCtor","typedArrayTags","freeProcess","binding","arrayAggregator","setter","accumulator","isHostObject","mapToArray","setToArray","arrayProto","funcProto","coreJsData","maskSrcKey","reIsNative","Uint8Array","nativeKeys","WeakMap","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","symbolToString","Hash","inherited","baseTimes","skipIndexes","assocIndexOf","baseAggregator","getMapData","pairs","LARGE_ARRAY_SIZE","eachFunc","iterable","keysFunc","createBaseFor","baseHasIn","objIsArr","othIsArr","objTag","othTag","getTag","objIsObj","othIsObj","isSameTag","equalArrays","byteLength","byteOffset","convert","stacked","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","objProps","objLength","skipCtor","objValue","objCtor","othCtor","equalObjects","isMasked","isStrictComparable","matchesStrictComparable","hasFunc","hasPath","hasIn","UNORDERED_COMPARE_FLAG","matchData","getMatchData","noCustomizer","baseIsMatch","basePropertyDeep","isPrototype","ctorString","baseToString","quote","initializer","groupBy","memoized","Cache","isArrayLikeObject","asyncGeneratorStep","gen","_next","_throw","info","then","_asyncToGenerator","HIDE","REBUILD","SHOW","dispatchGlobalEvent","detail","checkStatus","show","isCapture","currentItem","hideTooltip","setUntargetItems","getTargetArray","targetArray","currentTarget","customListeners","bodyListener","respectEffect","customEvent","tip","forId","isCustomEvent","isTargetBelongsToTooltip","getEffect","proxy","makeProxy","findCustomEvents","dataAttribute","getBody","getDimensions","tipWidth","tipHeight","targetWidth","targetHeight","getCurrentOffset","mouseX","mouseY","defaultOffset","extraOffsetX","extraOffsetY","windowWidth","windowHeight","getParent","parentTop","parentLeft","getTipOffsetLeft","place","offsetX","getTipOffsetTop","offsetY","outsideRight","getTipOffsetRight","outsideBottom","getTipOffsetBottom","outside","outsideLeft","outsideTop","inside","placesList","insideList","isNewState","shouldUpdatePlace","desiredPlace","newPlace","effect","boundingClientRect","targetTop","targetLeft","clientY","disToMouse","currentParent","computedStyle","getContent","multiline","parseAria","ariaObj","nodeList","defaultColors","dark","arrow","success","light","generateTooltipStyle","uuid","customColors","hasBorder","textColor","borderColor","arrowColor","generateStyle","getDefaultPopupColors","getPopupColors","check","globalThis","$propertyIsEnumerable","classof","IndexedObject","requireObjectCoercible","PREFERRED_STRING","argument","EXISTS","DESCRIPTORS","$getOwnPropertyDescriptor","toIndexedObject","createPropertyDescriptor","propertyIsEnumerableModule","$defineProperty","definePropertyModule","createNonEnumerableProperty","setGlobal","functionToString","postfix","OBJECT_ALREADY_INITIALIZED","NATIVE_WEAK_MAP","wmget","wmhas","wmset","metadata","facade","STATE","sharedKey","hiddenKeys","objectHas","enforce","getterFor","getInternalState","InternalStateModule","enforceInternalState","TEMPLATE","unsafe","simple","noTargetGet","variable","method","createMethod","IS_INCLUDES","$this","toLength","integer","toAbsoluteIndex","enumBugKeys","internalObjectKeys","getBuiltIn","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","getOwnPropertyDescriptorModule","replacement","isForced","feature","POLYFILL","NATIVE","require$$0","versions","v8","activeXDocument","V8_VERSION","NATIVE_SYMBOL","WellKnownSymbolsStore","createWellKnownSymbol","USE_SYMBOL_AS_UID","withoutSetter","SPECIES","wellKnownSymbol","originalArray","C","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_OUT","NO_HOLES","callbackfn","specificCreate","boundFunction","arraySpeciesCreate","filterOut","Properties","objectKeys","EmptyConstructor","scriptTag","LT","ActiveXObject","write","close","parentWindow","NullProtoObjectViaActiveX","iframeDocument","iframe","documentCreateElement","src","contentWindow","open","NullProtoObjectViaIFrame","UNSCOPABLES","ArrayPrototype","$find","FIND","SKIPS_HOLES","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","forced","copyConstructorProperties","$","ReactTooltip","CONSTANT","hasTarget","staticMethods","windowListener","ele","eventOff","dataEvent","dataEventOff","customListener","dataEffect","possibleCustomEvents","possibleCustomEventsOff","customEvents","customEventsOff","bodyModeListeners","targetEventOff","bodyMode","trackRemoval","extraClass","delayHide","delayShow","currentEvent","ariaProps","isEmptyTip","disable","originTooltip","isMultiline","insecure","class","delayUpdate","globalEventOff","afterShow","afterHide","overridePosition","scrollHide","resizeHide","wrapper","clickable","methodArray","tooltipRef","parentNode","domRoot","escaped","selector","nodeListToArray","isCaptureMode","getTipContent","placeholder","isGlobalCall","switchToSolid","getPosition","reshowDelay","updateState","setInterval","eventTarget","delayTime","isInvisible","isScroll","isMyElement","resetState","isVisible","clearInterval","tooltipClass","hasCustomColors","Wrapper","htmlContent","dangerouslySetInnerHTML","__html","newAriaProps","MutationObserver","mutations","mutation","childList","subtree","defaults","addQueryString","url","queryString","encodeURIComponent","paramName","ajax","queryStringParams","XMLHttpRequest","crossDomain","setRequestHeader","withCredentials","overrideMimeType","customHeaders","onreadystatechange","readyState","responseText","loadPath","addPath","allowMultiLoading","parsePayload","Backend","loadUrl","xhr","fieldContentRegExp","serializeCookie","maxAge","expires","toUTCString","httpOnly","secure","sameSite","cookie","minutes","cookieOptions","getTime","nameEQ","ca","cookie$1","lookup","lookupCookie","cookieMinutes","cookieDomain","querystring","location","lookupQuerystring","hasLocalStorageSupport","localStorageAvailable","localStorage","testKey","setItem","removeItem","lookupLocalStorage","getItem","hasSessionStorageSupport","sessionStorageAvailable","sessionStorage","lookupSessionStorage","navigator$1","userLanguage","htmlTag","getAttribute","pathname","lookupFromPathIndex","subdomain","href","lookupFromSubdomainIndex","Browser","detectors","i18nOptions","caches","excludeCacheFor","lookupFromUrlIndex","addDetector","detector","detectionOrder","detected","detectorName","cacheName","_objectSpread2","Fragment","StrictMode","Profiler","Suspense","for","A","isMounted","enqueueForceUpdate","enqueueReplaceState","enqueueSetState","refs","updater","D","forceUpdate","isPureReactComponent","I","__self","__source","J","$$typeof","_owner","N","K","_status","_result","T","ReactCurrentDispatcher","ReactCurrentBatchConfig","ReactCurrentOwner","IsSomeRendererActing","toArray","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","_calculateChangedBits","_currentValue","_currentValue2","_threadCount","Provider","Consumer","createFactory","createRef","forwardRef","lazy","_payload","_init","memo","useCallback","useContext","useDebugValue","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useReducer","useRef","useState","aa","ba","ea","fa","ha","ia","ja","ka","acceptsBooleans","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","oa","pa","qa","ma","la","removeAttribute","setAttributeNS","ra","sa","ta","ua","wa","xa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ma","Ka","La","Na","Oa","Pa","prepareStackTrace","Qa","_render","Ra","Sa","Ta","nodeName","Va","_valueTracker","setValue","stopTracking","Ua","Wa","checked","Xa","activeElement","Ya","defaultChecked","_wrapperState","initialChecked","Za","initialValue","controlled","$a","ab","bb","cb","eb","db","fb","selected","defaultSelected","disabled","gb","hb","ib","jb","kb","lb","mb","ob","namespaceURI","innerHTML","firstChild","removeChild","MSApp","execUnsafeLocalFunction","pb","lastChild","nodeValue","qb","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","lineClamp","orphans","tabSize","widows","zIndex","zoom","rb","sb","tb","setProperty","ub","menuitem","br","col","embed","hr","img","keygen","link","meta","track","wbr","vb","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Ob","Pb","Qb","Rb","onError","Sb","Tb","Ub","Vb","Wb","Xb","Zb","alternate","return","$b","memoizedState","dehydrated","ac","cc","sibling","bc","dc","ec","gc","hc","ic","jc","kc","lc","mc","nc","oc","pc","qc","rc","blockedOn","domEventName","eventSystemFlags","nativeEvent","targetContainers","sc","delete","pointerId","tc","vc","wc","lanePriority","unstable_runWithPriority","priority","hydrate","containerInfo","xc","yc","zc","Ac","Bc","unstable_scheduleCallback","unstable_NormalPriority","Cc","Dc","Ec","animationend","animationiteration","animationstart","transitionend","Fc","Gc","Hc","animation","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","unstable_now","Rc","Uc","pendingLanes","expiredLanes","suspendedLanes","pingedLanes","Vc","entangledLanes","entanglements","Wc","Xc","Yc","Zc","$c","eventTimes","clz32","bd","cd","LN2","dd","unstable_UserBlockingPriority","ed","fd","gd","hd","uc","jd","kd","ld","md","nd","od","keyCode","charCode","pd","_reactName","_targetInst","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","stopPropagation","cancelBubble","isPersistent","wd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","view","vd","Ad","screenX","screenY","clientX","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","which","Rd","Td","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","email","password","tel","me","ne","oe","pe","qe","se","te","ue","ve","we","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ie","Je","Ke","Le","nextSibling","Me","contains","compareDocumentPosition","Ne","HTMLIFrameElement","Oe","contentEditable","Pe","Qe","Re","Se","Te","Ue","selectionStart","selectionEnd","anchorNode","defaultView","getSelection","anchorOffset","focusNode","focusOffset","Ve","We","Xe","Ye","Ze","Yb","$e","af","bf","cf","df","capture","passive","Nb","ef","ff","gf","hf","je","char","ke","jf","kf","lf","mf","autoFocus","nf","of","pf","qf","rf","sf","previousSibling","tf","vf","wf","xf","yf","zf","Af","Bf","Cf","Df","Ef","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Ff","Gf","Hf","If","Jf","__reactInternalMemoizedMergedChildContext","Kf","Lf","Mf","Nf","Of","Pf","unstable_cancelCallback","Qf","unstable_shouldYield","Rf","unstable_requestPaint","Sf","Tf","unstable_getCurrentPriorityLevel","Uf","unstable_ImmediatePriority","Vf","Wf","Xf","unstable_LowPriority","Yf","unstable_IdlePriority","Zf","$f","ag","bg","cg","dg","eg","fg","gg","hg","ig","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","childLanes","tg","dependencies","firstContext","lanes","ug","vg","observedBits","responders","wg","xg","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","effects","yg","zg","eventTime","lane","Ag","Bg","Cg","Dg","Eg","Fg","Gg","Kg","_reactInternals","Hg","Ig","Jg","Lg","shouldComponentUpdate","Mg","contextType","Ng","Og","Pg","Qg","_stringRef","Rg","Sg","lastEffect","nextEffect","firstEffect","Tg","Ug","elementType","Vg","implementation","Wg","Xg","Yg","Zg","$g","ah","bh","ch","dh","eh","tagName","fh","gh","hh","ih","memoizedProps","revealOrder","jh","kh","lh","mh","nh","oh","pendingProps","ph","qh","rh","sh","th","uh","_workInProgressVersionPrimary","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","baseQueue","Ih","Jh","Kh","lastRenderedReducer","action","eagerReducer","eagerState","lastRenderedState","dispatch","Lh","Mh","_getVersion","_source","mutableReadLanes","Nh","getSnapshot","setSnapshot","Oh","Ph","Qh","Rh","destroy","deps","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","ci","di","readContext","useDeferredValue","useTransition","useMutableSource","useOpaqueIdentifier","unstable_isNewReconciler","uf","ei","fi","gi","ii","ji","mi","baseLanes","ni","oi","qi","getDerivedStateFromError","ri","pendingContext","Bi","Di","Ei","retryLane","ti","fallback","unstable_avoidThisFallback","ui","unstable_expectedLoadTime","vi","wi","yi","zi","isBackwards","rendering","renderingStartTime","tailMode","Ai","Fi","Gi","wasMultiple","multiple","onclick","createElementNS","createTextNode","Hi","Ii","Ji","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","Si","componentDidCatch","Ti","componentStack","Ui","WeakSet","Vi","Wi","Xi","__reactInternalSnapshotBeforeUpdate","Yi","Zi","$i","focus","aj","bj","onCommitFiberUnmount","cj","dj","ej","fj","gj","hj","insertBefore","_reactRootContainer","ij","jj","kj","lj","mj","nj","oj","pj","Y","qj","rj","sj","tj","uj","vj","wj","ck","xj","yj","zj","Aj","Bj","Cj","Dj","Ej","Fj","Gj","Hj","Ij","Jj","Sc","Kj","Lj","Mj","callbackNode","expirationTimes","callbackPriority","Tc","Nj","Oj","Pj","Qj","Rj","Sj","Tj","finishedWork","finishedLanes","Uj","timeoutHandle","Wj","Xj","pingCache","Yj","Zj","va","ak","bk","dk","rangeCount","focusedElem","selectionRange","ek","setStart","removeAllRanges","addRange","setEnd","scrollLeft","scrollTop","onCommitFiberRoot","gk","ik","pendingChildren","jk","mutableSourceEagerHydrationData","kk","lk","mk","nk","ok","qk","hydrationOptions","mutableSources","_internalRoot","rk","tk","hasAttribute","uk","hk","unstable_observedBits","unmount","querySelectorAll","stringify","form","Vj","vk","Events","wk","findFiberByHostInstance","bundleType","rendererPackageName","xk","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","yk","isDisabled","supportsFiber","inject","createPortal","flushSync","unmountComponentAtNode","unstable_batchedUpdates","unstable_createPortal","unstable_renderSubtreeIntoContainer","performance","MessageChannel","unstable_forceFrameRate","port2","port1","onmessage","postMessage","sortIndex","startTime","expirationTime","priorityLevel","unstable_Profiling","unstable_continueExecution","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","delay","unstable_wrapCallback","jsx","jsxs","arrayLikeToArray","$acosh","acosh","MAX_VALUE","$asinh","asinh","$atanh","atanh","cbrt","LOG2E","cosh","fround","EPSILON","EPSILON32","MAX32","MIN32","$abs","$sign","hypot","aLen","larg","$imul","imul","UINT16","xn","xl","yl","LOG10E","sinh","tanh","trunc","inheritIfRequired","gOPN","$trim","NUMBER","$Number","Base","BROKEN_COF","TRIM","third","radix","maxCode","digits","buggy","$keys","dPs","createDict","getKeys","aNumberValue","$toFixed","ERROR","ZERO","multiply","numToString","acc","fractionDigits","$fails","$toPrecision","_isFinite","isSafeInteger","MIN_SAFE_INTEGER","$parseFloat","$parseInt","nativeObjectToString","isOwn","unmasked","COMPARE_PARTIAL_FLAG","hashClear","hashDelete","hashGet","hashHas","hashSet","getAllKeys","objStacked","baseGetAllKeys","getSymbols","symbolsFunc","stubArray","nativeGetSymbols","isArr","isArg","isBuff","isType","overArg","memoizeCapped","subString","baseProperty","arrayIncludes","arrayIncludesWith","createSet","isCommon","outer","seenIndex","baseFindIndex","baseIsNaN","strictIndexOf","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","propFullName","secret","getShim","ReactPropTypes","instanceOf","objectOf","exact","checkPropTypes","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","Item","nextTick","title","browser","env","argv","cwd","chdir","dir","umask","maxLength","otherArgs","baseSetToString","shortOut","nativeNow","lastCalled","stamp","remaining","_addClass","_removeClass","addClass","removeClass","getClassNames","removeClasses","activeClassName","reflowAndAddClass","appearClassName","doneClassName","enterClassName","isStringClassNames","_this$getClassNames6","classList","_hasClass","baseVal","replaceClassName","origClass","classToRemove","_args","handleLifecycle","handleEntering","handleEntered","_len5","_key5","handleExiting","_len6","_key6","_len7","_key7","originalArgs","inProp","_React$Children$toArr","mergeChildMappings","getProp","nextChildMapping","hasPrev","hasNext","isLeaving","mapFn","mapper","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","spreadableSymbol","isConcatSpreadable","baseMap","baseSortBy","compareMultiple","orders","comparer","compareAscending","objCriteria","criteria","othCriteria","ordersLength","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","trimmedEndIndex","reTrimStart","reWhitespace","_react2","_propTypes2","_resizeObserverPolyfill2","_lodash2","_lodash4","listMode","throttle","styles","ResizeDetector","createResizeObserver","_entry$contentRect","contentRect","notifyWidth","notifyHeight","skipOnMount","refreshMode","refreshRate","resizeObserver","ro","resizableElementId","resizableElement","parentElement","observe","unobserve","MapShim","class_1","__entries__","_a","isBrowser","global$1","requestAnimationFrame$1","transitionKeys","mutationObserverSupported","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","leadingCall","trailingCall","resolvePending","timeoutCallback","addObserver","connect_","removeObserver","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","attributes","characterData","disconnect","_b","getInstance","instance_","defineConfigurable","getWindowOf","emptyRect","createRectInit","toFloat","getBordersSize","positions","getHTMLElementContentRect","getComputedStyle","paddings","positions_1","getPaddings","horizPad","vertPad","boxSizing","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","broadcastRect","ResizeObserverEntry","rectInit","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","Element","observations","clearActive","observation","ResizeObserver","reTrim","FUNC_ERROR_TEXT","maybeMatch","reg","begs","beg","functionRE","expressions","fnRE","searchMatch","SyntaxError","getFunctionCalls","evalFunctionCall","Mexp","formulaEval","pop1","pop2","pop3","disp","postfixEval","UserDefined","Exception","tokens","lex","toPostfix","popped","prep","flag","inc","token","eva","math","anchor","atan","fact","sigma","preced","type0","type1","type1Asterick","type3Asterick","type6","newAr","str1","str2","addToken","inp","changeSignObj","changeSign","closingParObj","openingParObj","ptc","inpStr","allowed","bracToClose","asterick","nodes","precedence","tokenize","cToken","cType","cEv","cPre","cShow","hasDec","parsed","isDegree","pro","choice","toRadian","inverse","low","high","ex","pow10x","sinha","cosha","findIndexFunc","toFinite","remainder","baseRange","nativeCeil","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","Context","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iteratorMethod","isGeneratorFunction","genFun","ctor","mark","awrap","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","complete","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","getRandomValues","crypto","msCrypto","rnds8","rng","byteToHex","substr","bytesToUuid","buf","bth","v4","rnds","requiredArgs","required","isDate","toDate","argStr","isValid","dirtyDate","formatDistanceLocale","lessThanXSeconds","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","tokenValue","addSuffix","comparison","formatLong","full","long","medium","short","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","formatRelative","_date","_baseDate","_options","localize","ordinalNumber","dirtyNumber","rem100","era","narrow","abbreviated","wide","quarter","dayPeriod","pm","midnight","noon","morning","afternoon","evening","night","weekStartsOn","firstWeekContainsDate","addMilliseconds","dirtyAmount","timestamp","amount","subMilliseconds","addLeadingZeros","targetLength","signedYear","dayPeriodEnumValue","numberOfDigits","milliseconds","MILLISECONDS_IN_DAY","startOfUTCISOWeek","getUTCISOWeekYear","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","startOfUTCISOWeekYear","fourthOfJanuary","MILLISECONDS_IN_WEEK","startOfUTCWeek","localeWeekStartsOn","defaultWeekStartsOn","getUTCWeekYear","localeFirstWeekContainsDate","defaultFirstWeekContainsDate","firstWeekOfNextYear","firstWeekOfThisYear","startOfUTCWeekYear","firstWeek","dayPeriodEnum","lightFormatters","signedWeekYear","weekYear","getUTCWeek","isoWeek","getUTCISOWeek","dayOfYear","startOfYearTimestamp","difference","getUTCDayOfYear","dayOfWeek","localDayOfWeek","isoDayOfWeek","hours","_localize","timezoneOffset","_originalDate","formatTimezoneWithOptionalMinutes","formatTimezone","formatTimezoneShort","originalDate","dirtyDelimiter","absOffset","delimiter","dateLongFormatter","timeLongFormatter","longFormatters","dateTimeFormat","datePattern","timePattern","getTimezoneOffsetInMilliseconds","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","formatterOptions","firstCharacter","longFormatter","cleanEscapedString","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","formatRelativeLocalePlural","_console","alreadyWarned","warnOnce","i18n","initialized","useTranslation","i18nFromProps","i18nFromContext","defaultNSFromContext","reportNamespaces","notReadyT","retNotReady","ready","addUsedNamespaces","getT","nsMode","_useState","_useState2","setT","boundReset","isInitial"],"mappings":"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OAAoC,YAAbwpH,EAAIxpH,MAExCorD,EAAMzqD,KAAKg/F,IAId,OAAO,IAAI6iE,EAAKt5E,IAEjBvpF,EAAOC,QAAU4iK,G,6BChDjB,IAAIA,EAAO3iK,EAAQ,KACnB,SAAS0jK,EAAKl/J,EAAKogB,GACjB,IAAK,IAAInkB,EAAI,EAAGA,EAAI+D,EAAI7D,OAAQF,IAC9B+D,EAAI/D,IAAMmkB,EAEZ,OAAOpgB,EAET,IAAIm/J,EAAQ,CACV,MACA,MACA,MACA,KACA,IACA,IACA,IACA,IACA,IACA,OACA,OACA,OACA,IACA,IACA,IACA,MACA,OACA,QACA,KACA,IACA,OACA,IACA,IACA,IACA,IACA,IACA,OACA,QACA,MACA,IACA,IACA,IACA,IACA,OACA,QACA,IACA,MACA,IACA,IACA,IACA,IACA,IACA,QACA,IACA,KACA,OAEE9mD,EAAO,CACT,MACA,MACA,MACA,OACA,IACA,IACA,IACA,IACA,IACA,OACA,OACA,OACA,IACA,IACA,IACA,MACA,OACA,QACA,MACA,IACA,OACA,IACA,IACA,IACA,WACA,IACA,OACA,QACA,QACA,IACA,IACA,IACA,UACA,OACA,QACA,IACA,OACA,IACA,IACA,IACA,IACA,IACA,UACA,IACA,OACA,OAEE+mD,EAAM,CACRjB,EAAKkB,KAAK3xJ,IACVywJ,EAAKkB,KAAK9xJ,IACV4wJ,EAAKkB,KAAKruJ,IACV,KACA,IACA,IACAmtJ,EAAKkB,KAAKxqF,EACVspF,EAAKkB,KAAKn9C,EACV,IAAIo9C,OACJnB,EAAKkB,KAAKtpG,KACVooG,EAAKkB,KAAKpuJ,KACVktJ,EAAKkB,KAAKE,KACV,IACA,IACA,IACAnyJ,KAAKwpB,MACLunI,EAAKkB,KAAKpV,KACVkU,EAAKkB,KAAK5V,MACVr8I,KAAKypB,IACLzpB,KAAKyH,IACLzH,KAAKO,KACL,IACA,IACA,IACAwwJ,EAAKkB,KAAKtnI,IACVomI,EAAKkB,KAAKG,KACVrB,EAAKkB,KAAKjU,KACV+S,EAAKkB,KAAKvV,MACVqU,EAAKkB,KAAKrmI,IACV,I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","file":"static/js/2.028f4ec1.chunk.js","sourcesContent":["/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\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","/**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\n","/*!\n Copyright (c) 2018 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import 'core-js/es6/math';\nimport 'core-js/es6/number';\n/* eslint no-proto: 0 */\n\nvar testObject = {};\n\nif (!(Object.setPrototypeOf || testObject.__proto__)) {\n var nativeGetPrototypeOf = Object.getPrototypeOf;\n\n Object.getPrototypeOf = function (object) {\n if (object.__proto__) {\n return object.__proto__;\n }\n\n return nativeGetPrototypeOf.call(Object, object);\n };\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\n if (value > 0) {\n return 1;\n }\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 * 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 */\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\n if (!isNumber(percent) && !_isString(percent)) {\n return defaultValue;\n }\n\n var value;\n\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\n if (_isNaN(value)) {\n value = defaultValue;\n }\n\n if (validate && value > totalValue) {\n value = totalValue;\n }\n\n return value;\n};\nexport var getAnyElementOfObject = function getAnyElementOfObject(obj) {\n if (!obj) {\n return null;\n }\n\n var keys = Object.keys(obj);\n\n if (keys && keys.length) {\n return obj[keys[0]];\n }\n\n return null;\n};\nexport var hasDuplicate = function hasDuplicate(ary) {\n if (!_isArray(ary)) {\n return false;\n }\n\n var len = ary.length;\n var cache = {};\n\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\n return false;\n};\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\n return function () {\n return numberB;\n };\n};\nexport var findEntryInArray = function findEntryInArray(ary, specifiedKey, specifiedValue) {\n if (!ary || !ary.length) {\n return null;\n }\n\n return ary.find(function (entry) {\n return entry && (typeof specifiedKey === 'function' ? specifiedKey(entry) : _get(entry, specifiedKey)) === specifiedValue;\n });\n};\n/**\n * The least square linear regression\n * @param {Array} data The array of points\n * @returns {Object} The domain of x, and the parameter of linear function\n */\n\nexport var getLinearRegression = function getLinearRegression(data) {\n if (!data || !data.length) {\n return null;\n }\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\n for (var i = 0; i < len; i++) {\n xsum += data[i].cx;\n ysum += data[i].cy;\n xysum += data[i].cx * data[i].cy;\n xxsum += data[i].cx * data[i].cx;\n xmin = Math.min(xmin, data[i].cx);\n xmax = Math.max(xmax, data[i].cx);\n }\n\n 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\n for (var _key in b) {\n if ({}.hasOwnProperty.call(b, _key) && !{}.hasOwnProperty.call(a, _key)) {\n return false;\n }\n }\n\n return true;\n}","import _isNil from \"lodash/isNil\";\nimport _isString from \"lodash/isString\";\nimport _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\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; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { Children } from 'react';\nimport PropTypes from 'prop-types';\nimport { isNumber } from './DataUtils';\nimport { shallowEqual } from './ShallowEqual';\nexport var PRESENTATION_ATTRIBUTES = {\n 'aria-current': PropTypes.string,\n // state\n 'aria-details': PropTypes.any,\n 'aria-disabled': PropTypes.any,\n // state\n 'aria-hidden': PropTypes.any,\n // state\n 'aria-invalid': PropTypes.any,\n // state\n 'aria-keyshortcuts': PropTypes.any,\n 'aria-label': PropTypes.any,\n 'aria-roledescription': PropTypes.any,\n // Widget Attributes\n 'aria-autocomplete': PropTypes.any,\n 'aria-checked': PropTypes.any,\n 'aria-expanded': PropTypes.any,\n 'aria-haspopup': PropTypes.any,\n 'aria-level': PropTypes.any,\n 'aria-modal': PropTypes.any,\n 'aria-multiline': PropTypes.any,\n 'aria-multiselectable': PropTypes.any,\n 'aria-orientation': PropTypes.any,\n 'aria-placeholder': PropTypes.any,\n 'aria-pressed': PropTypes.any,\n 'aria-readonly': PropTypes.any,\n 'aria-required': PropTypes.any,\n 'aria-selected': PropTypes.any,\n 'aria-sort': PropTypes.any,\n 'aria-valuemax': PropTypes.any,\n 'aria-valuemin': PropTypes.any,\n 'aria-valuenow': PropTypes.any,\n 'aria-valuetext': PropTypes.any,\n // Live Region Attributes\n 'aria-atomic': PropTypes.any,\n 'aria-busy': PropTypes.any,\n 'aria-live': PropTypes.any,\n 'aria-relevant': PropTypes.any,\n // Drag-and-Drop Attributes\n 'aria-dropeffect': PropTypes.any,\n 'aria-grabbed': PropTypes.any,\n // Relationship Attributes\n 'aria-activedescendant': PropTypes.any,\n 'aria-colcount': PropTypes.any,\n 'aria-colindex': PropTypes.any,\n 'aria-colspan': PropTypes.any,\n 'aria-controls': PropTypes.any,\n 'aria-describedby': PropTypes.any,\n 'aria-errormessage': PropTypes.any,\n 'aria-flowto': PropTypes.any,\n 'aria-labelledby': PropTypes.any,\n 'aria-owns': PropTypes.any,\n 'aria-posinset': PropTypes.any,\n 'aria-rowcount': PropTypes.any,\n 'aria-rowindex': PropTypes.any,\n 'aria-rowspan': PropTypes.any,\n 'aria-setsize': PropTypes.any,\n alignmentBaseline: PropTypes.string,\n angle: PropTypes.number,\n baselineShift: PropTypes.string,\n clip: PropTypes.string,\n clipPath: PropTypes.string,\n clipRule: PropTypes.string,\n color: PropTypes.string,\n colorInterpolation: PropTypes.string,\n colorInterpolationFilters: PropTypes.string,\n colorProfile: PropTypes.string,\n colorRendering: PropTypes.string,\n cursor: PropTypes.string,\n direction: PropTypes.oneOf(['ltr', 'rtl', 'inherit']),\n display: PropTypes.string,\n dominantBaseline: PropTypes.string,\n enableBackground: PropTypes.string,\n fill: PropTypes.string,\n fillOpacity: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n fillRule: PropTypes.oneOf(['nonzero', 'evenodd', 'inherit']),\n filter: PropTypes.string,\n floodColor: PropTypes.string,\n floodOpacity: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n font: PropTypes.string,\n fontFamily: PropTypes.string,\n fontSize: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n fontSizeAdjust: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n fontStretch: PropTypes.oneOf(['normal', 'wider', 'narrower', 'ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded', 'inherit']),\n fontStyle: PropTypes.oneOf(['normal', 'italic', 'oblique', 'inherit']),\n fontVariant: PropTypes.oneOf(['normal', 'small-caps', 'inherit']),\n fontWeight: PropTypes.oneOf(['normal', 'bold', 'bolder', 'lighter', 100, 200, 300, 400, 500, 600, 700, 800, 900, 'inherit']),\n glyphOrientationHorizontal: PropTypes.string,\n glyphOrientationVertical: PropTypes.string,\n imageRendering: PropTypes.oneOf(['auto', 'optimizeSpeed', 'optimizeQuality', 'inherit']),\n kerning: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n letterSpacing: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n lightingColor: PropTypes.string,\n lineHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n markerEnd: PropTypes.string,\n markerMid: PropTypes.string,\n markerStart: PropTypes.string,\n mask: PropTypes.string,\n opacity: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n overflow: PropTypes.oneOf(['visible', 'hidden', 'scroll', 'auto', 'inherit']),\n pointerEvents: PropTypes.oneOf(['visiblePainted', 'visibleFill', 'visibleStroke', 'visible', 'painted', 'fill', 'stroke', 'all', 'none', 'inherit']),\n shapeRendering: PropTypes.oneOf(['auto', 'optimizeSpeed', 'crispEdges', 'geometricPrecision', 'inherit']),\n stopColor: PropTypes.string,\n stopOpacity: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n stroke: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n strokeDasharray: PropTypes.string,\n strokeDashoffset: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n strokeLinecap: PropTypes.oneOf(['butt', 'round', 'square', 'inherit']),\n strokeLinejoin: PropTypes.oneOf(['miter', 'round', 'bevel', 'inherit']),\n strokeMiterlimit: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n strokeOpacity: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n strokeWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n textAnchor: PropTypes.oneOf(['start', 'middle', 'end', 'inherit']),\n textDecoration: PropTypes.oneOf(['none', 'underline', 'overline', 'line-through', 'blink', 'inherit']),\n textRendering: PropTypes.oneOf(['auto', 'optimizeSpeed', 'optimizeLegibility', 'geometricPrecision', 'inherit']),\n unicodeBidi: PropTypes.oneOf(['normal', 'embed', 'bidi-override', 'inherit']),\n visibility: PropTypes.oneOf(['visible', 'hidden', 'collapse', 'inherit']),\n wordSpacing: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n writingMode: PropTypes.oneOf(['lr-tb', 'rl-tb', 'tb-rl', 'lr', 'rl', 'tb', 'inherit']),\n transform: PropTypes.string,\n role: PropTypes.string,\n focusable: PropTypes.string,\n tabIndex: PropTypes.string,\n style: PropTypes.object,\n width: PropTypes.number,\n height: PropTypes.number,\n dx: PropTypes.number,\n dy: PropTypes.number,\n x: PropTypes.number,\n y: PropTypes.number,\n r: PropTypes.number,\n // The radius of Rectangle\n radius: PropTypes.oneOfType([PropTypes.number, PropTypes.array])\n};\nexport var EVENT_ATTRIBUTES = {\n onClick: PropTypes.func,\n onMouseDown: PropTypes.func,\n onMouseUp: PropTypes.func,\n onMouseOver: PropTypes.func,\n onMouseMove: PropTypes.func,\n onMouseOut: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onTouchEnd: PropTypes.func,\n onTouchMove: PropTypes.func,\n onTouchStart: PropTypes.func,\n onTouchCancel: PropTypes.func\n};\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 * Get the display name of a component\n * @param {Object} Comp Specified Component\n * @return {String} Display name of Component\n */\n\nexport var getDisplayName = function getDisplayName(Comp) {\n if (typeof Comp === 'string') {\n return Comp;\n }\n\n if (!Comp) {\n return '';\n }\n\n return Comp.displayName || Comp.name || 'Component';\n};\n/*\n * Find and return all matched children by type. `type` can be a React element class or\n * string\n */\n\nexport var findAllByType = function findAllByType(children, type) {\n var result = [];\n var types = [];\n\n if (_isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n\n React.Children.forEach(children, function (child) {\n var childType = child && child.type && (child.type.displayName || child.type.name);\n\n if (types.indexOf(childType) !== -1) {\n result.push(child);\n }\n });\n return result;\n};\n/*\n * Return the first matched child by type, return null otherwise.\n * `type` can be a React element class or string.\n */\n\nexport var findChildByType = function findChildByType(children, type) {\n var result = findAllByType(children, type);\n return result && result[0];\n};\n/*\n * Create a new array of children excluding the ones matched the type\n */\n\nexport var withoutType = function withoutType(children, type) {\n var newChildren = [];\n var types;\n\n if (_isArray(type)) {\n types = type.map(function (t) {\n return getDisplayName(t);\n });\n } else {\n types = [getDisplayName(type)];\n }\n\n React.Children.forEach(children, function (child) {\n if (child && child.type && child.type.displayName && types.indexOf(child.type.displayName) !== -1) {\n return;\n }\n\n newChildren.push(child);\n });\n return newChildren;\n};\n/**\n * get all the presentation attribute of svg element\n * @param {Object} el A react element or the props of a react element\n * @return {Object} attributes or null\n */\n\nexport var getPresentationAttributes = function getPresentationAttributes(el) {\n if (!el || _isFunction(el)) {\n return null;\n }\n\n var props = React.isValidElement(el) ? el.props : el;\n\n if (!_isObject(props)) {\n return null;\n }\n\n var out = null; // eslint-disable-next-line no-restricted-syntax\n\n for (var i in props) {\n if ({}.hasOwnProperty.call(props, i) && PRESENTATION_ATTRIBUTES[i]) {\n if (!out) out = {};\n out[i] = props[i];\n }\n }\n\n return out;\n};\n\nvar getEventHandlerOfElement = function getEventHandlerOfElement(originalHandler, props) {\n return function (e) {\n originalHandler(props, e);\n return null;\n };\n};\n/**\n * get all the event attribute of svg element\n * @param {Object} el A react element or the props of a react element\n * @param {Function} newHandler New handler of event\n * @param {Boolean} wrapCallback Wrap callback and return more parameters or not\n * @return {Object} attributes or null\n */\n\n\nexport var filterEventAttributes = function filterEventAttributes(el, newHandler) {\n var wrapCallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n if (!el || _isFunction(el)) {\n return null;\n }\n\n var props = React.isValidElement(el) ? el.props : el;\n\n if (!_isObject(props)) {\n return null;\n }\n\n var out = null; // eslint-disable-next-line no-restricted-syntax\n\n for (var i in props) {\n if ({}.hasOwnProperty.call(props, i) && EVENT_ATTRIBUTES[i]) {\n if (!out) out = {};\n out[i] = newHandler || (wrapCallback ? getEventHandlerOfElement(props[i], props) : props[i]);\n }\n }\n\n return out;\n};\n\nvar getEventHandlerOfChild = function getEventHandlerOfChild(originalHandler, data, index) {\n return function (e) {\n originalHandler(data, index, e);\n return null;\n };\n};\n\nexport var filterEventsOfChild = function filterEventsOfChild(props, data, index) {\n if (!_isObject(props)) {\n return null;\n }\n\n var out = null; // eslint-disable-next-line no-restricted-syntax\n\n for (var i in props) {\n if ({}.hasOwnProperty.call(props, i) && EVENT_ATTRIBUTES[i] && _isFunction(props[i])) {\n if (!out) out = {};\n out[i] = getEventHandlerOfChild(props[i], data, index);\n }\n }\n\n return out;\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 */\n\nexport var validateWidthHeight = function validateWidthHeight(el) {\n if (!el || !el.props) {\n return false;\n }\n\n var _el$props = el.props,\n width = _el$props.width,\n height = _el$props.height;\n\n if (!isNumber(width) || width <= 0 || !isNumber(height) || height <= 0) {\n return false;\n }\n\n return true;\n};\nexport var isSsr = function isSsr() {\n return !(typeof window !== 'undefined' && window.document && window.document.createElement && window.setTimeout);\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'];\n\nvar isSvgElement = function isSvgElement(child) {\n return child && child.type && _isString(child.type) && SVG_TAGS.indexOf(child.type) >= 0;\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 */\n\n\nexport var filterSvgElements = function filterSvgElements(children) {\n var svgElements = [];\n React.Children.forEach(children, function (entry) {\n if (entry && entry.type && _isString(entry.type) && SVG_TAGS.indexOf(entry.type) >= 0) {\n svgElements.push(entry);\n }\n });\n return svgElements;\n};\nexport var isSingleChildEqual = function isSingleChildEqual(nextChild, prevChild) {\n if (_isNil(nextChild) && _isNil(prevChild)) {\n return true;\n }\n\n if (!_isNil(nextChild) && !_isNil(prevChild)) {\n var _ref = nextChild.props || {},\n nextChildren = _ref.children,\n nextProps = _objectWithoutProperties(_ref, [\"children\"]);\n\n var _ref2 = prevChild.props || {},\n prevChildren = _ref2.children,\n prevProps = _objectWithoutProperties(_ref2, [\"children\"]);\n\n if (nextChildren && prevChildren) {\n // eslint-disable-next-line no-use-before-define\n return shallowEqual(nextProps, prevProps) && isChildrenEqual(nextChildren, prevChildren);\n }\n\n if (!nextChildren && !prevChildren) {\n return shallowEqual(nextProps, prevProps);\n }\n\n return false;\n }\n\n return false;\n};\n/**\n * Wether props of children changed\n * @param {Object} nextChildren The latest children\n * @param {Object} prevChildren The prev children\n * @return {Boolean} equal or not\n */\n\nexport var isChildrenEqual = function isChildrenEqual(nextChildren, prevChildren) {\n if (nextChildren === prevChildren) {\n return true;\n }\n\n if (Children.count(nextChildren) !== Children.count(prevChildren)) {\n return false;\n }\n\n var count = Children.count(nextChildren);\n\n if (count === 0) {\n return true;\n }\n\n if (count === 1) {\n return isSingleChildEqual(_isArray(nextChildren) ? nextChildren[0] : nextChildren, _isArray(prevChildren) ? prevChildren[0] : prevChildren);\n }\n\n for (var _i = 0; _i < count; _i++) {\n var nextChild = nextChildren[_i];\n var prevChild = prevChildren[_i];\n\n if (_isArray(nextChild) || _isArray(prevChild)) {\n if (!isChildrenEqual(nextChild, prevChild)) {\n return false;\n }\n } else if (!isSingleChildEqual(nextChild, prevChild)) {\n return false;\n }\n }\n\n return true;\n};\nexport var renderByOrder = function renderByOrder(children, renderMap) {\n var elements = [];\n var record = {};\n Children.forEach(children, function (child, index) {\n if (child && isSvgElement(child)) {\n elements.push(child);\n } else if (child && renderMap[getDisplayName(child.type)]) {\n var displayName = getDisplayName(child.type);\n var _renderMap$displayNam = renderMap[displayName],\n handler = _renderMap$displayNam.handler,\n once = _renderMap$displayNam.once;\n\n if (once && !record[displayName] || !once) {\n var results = handler(child, displayName, index);\n\n if (_isArray(results)) {\n elements = [elements].concat(_toConsumableArray(results));\n } else {\n elements.push(results);\n }\n\n record[displayName] = true;\n }\n }\n });\n return elements;\n};\nexport var getReactEventByType = function getReactEventByType(e) {\n var type = e && e.type;\n\n if (type && REACT_BROWSER_EVENT_MAP[type]) {\n return REACT_BROWSER_EVENT_MAP[type];\n }\n\n return null;\n};\nexport var parseChildIndex = function parseChildIndex(child, children) {\n var result = -1;\n Children.forEach(children, function (entry, index) {\n if (entry === child) {\n result = index;\n }\n });\n return result;\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _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; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * @fileOverview Surface\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { getPresentationAttributes } from '../util/ReactUtils';\nvar propTypes = {\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n viewBox: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number\n }),\n className: PropTypes.string,\n style: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])\n};\n\nfunction 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, [\"children\", \"width\", \"height\", \"viewBox\", \"className\", \"style\"]);\n\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 var attrs = getPresentationAttributes(others);\n return React.createElement(\"svg\", _extends({}, attrs, {\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 version: \"1.1\"\n }), children);\n}\n\nSurface.propTypes = propTypes;\nexport default Surface;","export var abs = Math.abs;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var max = Math.max;\nexport var min = Math.min;\nexport var sin = Math.sin;\nexport var sqrt = Math.sqrt;\n\nexport var epsilon = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","import {pi, tau} from \"../math.js\";\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","export default {\n draw: function(context, size) {\n var r = Math.sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n","var tan30 = Math.sqrt(1 / 3),\n tan30_2 = tan30 * 2;\n\nexport default {\n draw: function(context, size) {\n var y = Math.sqrt(size / tan30_2),\n x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n","export default {\n draw: function(context, size) {\n var w = Math.sqrt(size),\n x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","import {pi, tau} from \"../math.js\";\n\nvar ka = 0.89081309152928522810,\n kr = Math.sin(pi / 10) / Math.sin(7 * pi / 10),\n kx = Math.sin(tau / 10) * kr,\n ky = -Math.cos(tau / 10) * kr;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size * ka),\n x = kx * r,\n y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (var i = 1; i < 5; ++i) {\n var a = tau * i / 5,\n c = Math.cos(a),\n s = Math.sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n","var sqrt3 = Math.sqrt(3);\n\nexport default {\n draw: function(context, size) {\n var y = -Math.sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n","var c = -0.5,\n s = Math.sqrt(3) / 2,\n k = 1 / Math.sqrt(12),\n a = (k / 2 + 1) * 3;\n\nexport default {\n draw: function(context, size) {\n var r = Math.sqrt(size / a),\n x0 = r / 2,\n y0 = r * k,\n x1 = x0,\n y1 = r * k + r,\n x2 = -x1,\n y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Curve\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { symbol as shapeSymbol, symbolCircle, symbolCross, symbolDiamond, symbolSquare, symbolStar, symbolTriangle, symbolWye } from 'd3-shape';\nimport classNames from 'classnames';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes, filterEventAttributes } from '../util/ReactUtils';\nvar SYMBOL_FACTORIES = {\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;\n\nvar getSymbolFactory = function getSymbolFactory(type) {\n var name = \"symbol\".concat(type.slice(0, 1).toUpperCase()).concat(type.slice(1));\n return SYMBOL_FACTORIES[name] || symbolCircle;\n};\n\nvar calculateAreaSize = function calculateAreaSize(size, sizeType, type) {\n if (sizeType === 'area') {\n return size;\n }\n\n switch (type) {\n case 'cross':\n return 5 * size * size / 9;\n\n case 'diamond':\n return 0.5 * size * size / Math.sqrt(3);\n\n case 'square':\n return size * size;\n\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\n case 'triangle':\n return Math.sqrt(3) * size * size / 4;\n\n case 'wye':\n return (21 - 10 * Math.sqrt(3)) * size * size / 8;\n\n default:\n return Math.PI * size * size / 4;\n }\n};\n\nvar Symbols =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(Symbols, _PureComponent);\n\n function Symbols() {\n _classCallCheck(this, Symbols);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Symbols).apply(this, arguments));\n }\n\n _createClass(Symbols, [{\n key: \"getPath\",\n\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n value: 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\n if (cx === +cx && cy === +cy && size === +size) {\n return React.createElement(\"path\", _extends({}, getPresentationAttributes(this.props), filterEventAttributes(this.props), {\n className: classNames('recharts-symbols', className),\n transform: \"translate(\".concat(cx, \", \").concat(cy, \")\"),\n d: this.getPath()\n }));\n }\n\n return null;\n }\n }]);\n\n return Symbols;\n}(PureComponent);\n\nSymbols.displayName = 'Symbols';\nSymbols.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n className: PropTypes.string,\n type: PropTypes.oneOf(['circle', 'cross', 'diamond', 'square', 'star', 'triangle', 'wye']),\n cx: PropTypes.number,\n cy: PropTypes.number,\n size: PropTypes.number,\n sizeType: PropTypes.oneOf(['area', 'diameter'])\n});\nSymbols.defaultProps = {\n type: 'circle',\n size: 64,\n sizeType: 'area'\n};\nexport default Symbols;","import {path} from \"d3-path\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport star from \"./symbol/star.js\";\nimport square from \"./symbol/square.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport wye from \"./symbol/wye.js\";\nimport constant from \"./constant.js\";\n\nexport var symbols = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\nexport default function() {\n var type = constant(circle),\n size = constant(64),\n context = null;\n\n function symbol() {\n var buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Default Legend Content\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Surface from '../container/Surface';\nimport Symbols from '../shape/Symbols';\nimport { filterEventsOfChild, LEGEND_TYPES } from '../util/ReactUtils';\nvar SIZE = 32;\nvar ICON_TYPES = LEGEND_TYPES.filter(function (type) {\n return type !== 'none';\n});\n\nvar DefaultLegendContent =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(DefaultLegendContent, _PureComponent);\n\n function DefaultLegendContent() {\n _classCallCheck(this, DefaultLegendContent);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(DefaultLegendContent).apply(this, arguments));\n }\n\n _createClass(DefaultLegendContent, [{\n key: \"renderIcon\",\n\n /**\n * Render the path of icon\n * @param {Object} data Data of each legend item\n * @return {String} Path element\n */\n value: 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\n if (data.type === 'plainline') {\n return 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\n if (data.type === 'line') {\n return 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\n if (data.type === 'rect') {\n return 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\n return 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 * Draw items of legend\n * @return {ReactElement} Items\n */\n\n }, {\n key: \"renderItems\",\n value: function renderItems() {\n var _this = this;\n\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 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\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\n if (entry.type === 'none') {\n return null;\n }\n\n return 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\n }, filterEventsOfChild(_this.props, entry, i)), React.createElement(Surface, {\n width: iconSize,\n height: iconSize,\n viewBox: viewBox,\n style: svgStyle\n }, _this.renderIcon(entry)), React.createElement(\"span\", {\n className: \"recharts-legend-item-text\"\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\n if (!payload || !payload.length) {\n return null;\n }\n\n var finalStyle = {\n padding: 0,\n margin: 0,\n textAlign: layout === 'horizontal' ? align : 'left'\n };\n return React.createElement(\"ul\", {\n className: \"recharts-default-legend\",\n style: finalStyle\n }, this.renderItems());\n }\n }]);\n\n return DefaultLegendContent;\n}(PureComponent);\n\nDefaultLegendContent.displayName = 'Legend';\nDefaultLegendContent.propTypes = {\n content: PropTypes.element,\n iconSize: PropTypes.number,\n iconType: PropTypes.oneOf(ICON_TYPES),\n layout: PropTypes.oneOf(['horizontal', 'vertical']),\n align: PropTypes.oneOf(['center', 'left', 'right']),\n verticalAlign: PropTypes.oneOf(['top', 'bottom', 'middle']),\n payload: PropTypes.arrayOf(PropTypes.shape({\n value: PropTypes.any,\n id: PropTypes.any,\n type: PropTypes.oneOf(LEGEND_TYPES)\n })),\n inactiveColor: PropTypes.string,\n formatter: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onClick: PropTypes.func\n};\nDefaultLegendContent.defaultProps = {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'middle',\n inactiveColor: '#ccc'\n};\nexport default DefaultLegendContent;","import _isFunction from \"lodash/isFunction\";\nimport _uniqBy from \"lodash/uniqBy\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Legend\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport DefaultLegendContent from './DefaultLegendContent';\nimport { isNumber } from '../util/DataUtils';\nimport { LEGEND_TYPES } from '../util/ReactUtils';\n\nvar defaultUniqBy = function defaultUniqBy(entry) {\n return entry.value;\n};\n\nvar getUniqPaylod = function getUniqPaylod(option, payload) {\n if (option === true) {\n return _uniqBy(payload, defaultUniqBy);\n }\n\n if (_isFunction(option)) {\n return _uniqBy(payload, option);\n }\n\n return payload;\n};\n\nvar renderContent = function renderContent(content, props) {\n if (React.isValidElement(content)) {\n return React.cloneElement(content, props);\n }\n\n if (_isFunction(content)) {\n return content(props);\n }\n\n return React.createElement(DefaultLegendContent, props);\n};\n\nvar EPS = 1;\nvar ICON_TYPES = LEGEND_TYPES.filter(function (type) {\n return type !== 'none';\n});\n\nvar Legend =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(Legend, _PureComponent);\n\n function Legend() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Legend);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Legend)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n boxWidth: -1,\n boxHeight: -1\n };\n return _this;\n }\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 var _this$state = this.state,\n boxWidth = _this$state.boxWidth,\n boxHeight = _this$state.boxHeight;\n\n if (boxWidth >= 0 && boxHeight >= 0) {\n return {\n width: boxWidth,\n height: boxHeight\n };\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\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.getBBox() || {\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\n if (!style || (style.top === undefined || style.top === null) && (style.bottom === undefined || style.bottom === null)) {\n if (verticalAlign === 'middle') {\n var _box = this.getBBox() || {\n height: 0\n };\n\n vPos = {\n top: ((chartHeight || 0) - _box.height) / 2\n };\n } else {\n vPos = verticalAlign === 'bottom' ? {\n bottom: margin && margin.bottom || 0\n } : {\n top: margin && margin.top || 0\n };\n }\n }\n\n return _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\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var box = this.wrapperNode.getBoundingClientRect();\n\n if (Math.abs(box.width - boxWidth) > EPS || Math.abs(box.height - boxHeight) > EPS) {\n this.setState({\n boxWidth: box.width,\n boxHeight: box.height\n }, function () {\n if (onBBoxUpdate) {\n onBBoxUpdate(box);\n }\n });\n }\n } else if (boxWidth !== -1 || boxHeight !== -1) {\n this.setState({\n boxWidth: -1,\n boxHeight: -1\n }, function () {\n if (onBBoxUpdate) {\n onBBoxUpdate(null);\n }\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\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 paylodUniqBy = _this$props2.paylodUniqBy,\n payload = _this$props2.payload;\n\n var outerStyle = _objectSpread({\n position: 'absolute',\n width: width || 'auto',\n height: height || 'auto'\n }, this.getDefaultPosition(wrapperStyle), {}, wrapperStyle);\n\n return 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({}, this.props, {\n payload: getUniqPaylod(paylodUniqBy, payload)\n })));\n }\n }], [{\n key: \"getWithHeight\",\n value: function getWithHeight(item, chartWidth) {\n var layout = item.props.layout;\n\n if (layout === 'vertical' && isNumber(item.props.height)) {\n return {\n height: item.props.height\n };\n }\n\n if (layout === 'horizontal') {\n return {\n width: item.props.width || chartWidth\n };\n }\n\n return null;\n }\n }]);\n\n return Legend;\n}(PureComponent);\n\nLegend.displayName = 'Legend';\nLegend.propTypes = {\n content: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n wrapperStyle: PropTypes.object,\n chartWidth: PropTypes.number,\n chartHeight: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n iconSize: PropTypes.number,\n iconType: PropTypes.oneOf(ICON_TYPES),\n layout: PropTypes.oneOf(['horizontal', 'vertical']),\n align: PropTypes.oneOf(['center', 'left', 'right']),\n verticalAlign: PropTypes.oneOf(['top', 'bottom', 'middle']),\n margin: PropTypes.shape({\n top: PropTypes.number,\n left: PropTypes.number,\n bottom: PropTypes.number,\n right: PropTypes.number\n }),\n payload: PropTypes.arrayOf(PropTypes.shape({\n value: PropTypes.any,\n id: PropTypes.any,\n type: PropTypes.oneOf(LEGEND_TYPES)\n })),\n paylodUniqBy: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n formatter: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onClick: PropTypes.func,\n onBBoxUpdate: PropTypes.func\n};\nLegend.defaultProps = {\n iconSize: 14,\n layout: 'horizontal',\n align: 'center',\n verticalAlign: 'bottom'\n};\nexport default Legend;","import raf from 'raf';\nexport default function setRafTimeout(callback) {\n var timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var currTime = -1;\n\n var shouldUpdate = function shouldUpdate(now) {\n if (currTime < 0) {\n currTime = now;\n }\n\n if (now - currTime > timeout) {\n callback(now);\n currTime = -1;\n } else {\n raf(shouldUpdate);\n }\n };\n\n raf(shouldUpdate);\n}","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport setRafTimeout from './setRafTimeout';\nexport default function createAnimateManager() {\n var currStyle = {};\n\n var handleChange = function handleChange() {\n return null;\n };\n\n var shouldStop = false;\n\n var setStyle = function setStyle(_style) {\n if (shouldStop) {\n return;\n }\n\n if (Array.isArray(_style)) {\n if (!_style.length) {\n return;\n }\n\n var styles = _style;\n\n var _styles = _toArray(styles),\n curr = _styles[0],\n restStyles = _styles.slice(1);\n\n if (typeof curr === 'number') {\n setRafTimeout(setStyle.bind(null, restStyles), curr);\n return;\n }\n\n setStyle(curr);\n setRafTimeout(setStyle.bind(null, restStyles));\n return;\n }\n\n if (_typeof(_style) === 'object') {\n currStyle = _style;\n handleChange(currStyle);\n }\n\n if (typeof _style === 'function') {\n _style();\n }\n };\n\n return {\n stop: function stop() {\n shouldStop = true;\n },\n start: function start(style) {\n shouldStop = false;\n setStyle(style);\n },\n subscribe: function subscribe(_handleChange) {\n handleChange = _handleChange;\n return function () {\n handleChange = function handleChange() {\n return null;\n };\n };\n }\n };\n}","import _intersection from \"lodash/intersection\";\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/* eslint no-console: 0 */\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nvar IN_LINE_PREFIX_LIST = ['-webkit-', '-moz-', '-o-', '-ms-'];\nvar IN_COMPATIBLE_PROPERTY = ['transform', 'transformOrigin', 'transition'];\nexport var getIntersectionKeys = function getIntersectionKeys(preObj, nextObj) {\n return _intersection(Object.keys(preObj), Object.keys(nextObj));\n};\nexport var identity = function identity(param) {\n return param;\n};\n/*\n * @description: convert camel case to dash case\n * string => string\n */\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 * @description: add compatible style prefix\n * (string, string) => object\n */\n\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (IN_COMPATIBLE_PROPERTY.indexOf(name) === -1) {\n return _defineProperty({}, name, value);\n }\n\n var isTransition = name === 'transition';\n var camelName = name.replace(/(\\w)/, function (v) {\n return v.toUpperCase();\n });\n var styleVal = value;\n 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\n return _objectSpread({}, result, _defineProperty({}, property + camelName, styleVal));\n }, {});\n};\nexport var log = function log() {\n var _console;\n\n (_console = console).log.apply(_console, arguments);\n};\n/*\n * @description: log the value of a varible\n * string => any => any\n */\n\nexport var debug = function debug(name) {\n return function (item) {\n log(name, item);\n return item;\n };\n};\n/*\n * @description: log name, args, return value of a function\n * function => function\n */\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\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 * @description: map object on every element in this object.\n * (function, object) => object\n */\n\nexport var mapObject = function mapObject(fn, obj) {\n return Object.keys(obj).reduce(function (res, key) {\n return _objectSpread({}, res, _defineProperty({}, key, fn(key, obj[key])));\n }, {});\n};\n/*\n * @description: add compatible prefix to style\n * object => object\n */\n\nexport var translateStyle = function translateStyle(style) {\n return Object.keys(style).reduce(function (res, key) {\n return _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\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 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\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) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nimport { warn } from './util';\nvar ACCURACY = 1e-4;\n\nvar cubicBezierFactor = function cubicBezierFactor(c1, c2) {\n return [0, 3 * c1, 3 * c2 - 6 * c1, 3 * c1 - 3 * c2 + 1];\n};\n\nvar multyTime = function multyTime(params, t) {\n return params.map(function (param, i) {\n return param * Math.pow(t, i);\n }).reduce(function (pre, curr) {\n return pre + curr;\n });\n};\n\nvar cubicBezier = function cubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n return multyTime(params, t);\n };\n};\n\nvar derivativeCubicBezier = function derivativeCubicBezier(c1, c2) {\n return function (t) {\n var params = cubicBezierFactor(c1, c2);\n\n var newParams = _toConsumableArray(params.map(function (param, i) {\n return param * i;\n }).slice(1)).concat([0]);\n\n return multyTime(newParams, t);\n };\n}; // calculate cubic-bezier using Newton's method\n\n\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\n var x1 = args[0],\n y1 = args[1],\n x2 = args[2],\n y2 = args[3];\n\n if (args.length === 1) {\n switch (args[0]) {\n case 'linear':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n\n case 'ease':\n x1 = 0.25;\n y1 = 0.1;\n x2 = 0.25;\n y2 = 1.0;\n break;\n\n case 'ease-in':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 1.0;\n y2 = 1.0;\n break;\n\n case 'ease-out':\n x1 = 0.42;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n\n case 'ease-in-out':\n x1 = 0.0;\n y1 = 0.0;\n x2 = 0.58;\n y2 = 1.0;\n break;\n\n default:\n {\n var easing = args[0].split('(');\n\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\n var _easing$1$split$0$spl2 = _slicedToArray(_easing$1$split$0$spl, 4);\n\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\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\n var rangeValue = function rangeValue(value) {\n if (value > 1) {\n return 1;\n } else if (value < 0) {\n return 0;\n }\n\n return value;\n };\n\n var bezier = function bezier(_t) {\n var t = _t > 1 ? 1 : _t;\n var x = t;\n\n for (var i = 0; i < 8; ++i) {\n var evalT = curveX(x) - t;\n var derVal = derCurveX(x);\n\n if (Math.abs(evalT - t) < ACCURACY || derVal < ACCURACY) {\n return curveY(x);\n }\n\n x = rangeValue(x - evalT / derVal);\n }\n\n return curveY(x);\n };\n\n bezier.isStepper = false;\n 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\n var stepper = function stepper(currX, destX, currV) {\n var FSpring = -(currX - destX) * stiff;\n var FDamping = currV * damping;\n var newV = currV + (FSpring - FDamping) * dt / 1000;\n var newX = currV * dt / 1000 + currX;\n\n if (Math.abs(newX - destX) < ACCURACY && Math.abs(newV) < ACCURACY) {\n return [destX, 0];\n }\n\n return [newX, newV];\n };\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\n var easing = args[0];\n\n if (typeof easing === 'string') {\n switch (easing) {\n case 'ease':\n case 'ease-in-out':\n case 'ease-out':\n case 'ease-in':\n case 'linear':\n return configBezier(easing);\n\n case 'spring':\n return configSpring();\n\n default:\n if (easing.split('(')[0] === 'cubic-bezier') {\n return configBezier(easing);\n }\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\n if (typeof easing === 'function') {\n return easing;\n }\n\n warn(false, '[configEasing]: first argument type should be function or ' + 'string, instead received %s', args);\n return null;\n};","import _filter from \"lodash/filter\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport raf, { cancel as caf } from 'raf';\nimport { getIntersectionKeys, mapObject } from './util';\n\nvar alpha = function alpha(begin, end, k) {\n return begin + (end - begin) * k;\n};\n\nvar needContinue = function needContinue(_ref) {\n var from = _ref.from,\n to = _ref.to;\n return from !== to;\n};\n/*\n * @description: cal new from value and velocity in each stepper\n * @return: { [styleProperty]: { from, to, velocity } }\n */\n\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\n return _objectSpread({}, val, {\n from: newX,\n velocity: newV\n });\n }\n\n return val;\n }, preVals);\n\n if (steps < 1) {\n return mapObject(function (key, val) {\n if (needContinue(val)) {\n return _objectSpread({}, val, {\n velocity: alpha(val.velocity, nextStepVals[key].velocity, steps),\n from: alpha(val.from, nextStepVals[key].from, steps)\n });\n }\n\n return val;\n }, preVals);\n }\n\n return calStepperVals(easing, nextStepVals, steps - 1);\n}; // configure update function\n\n\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({}, res, _defineProperty({}, key, [from[key], to[key]]));\n }, {});\n var stepperStyle = interKeys.reduce(function (res, key) {\n return _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\n var update = function update() {\n return null;\n };\n\n var getCurrStyle = function getCurrStyle() {\n return mapObject(function (key, val) {\n return val.from;\n }, stepperStyle);\n };\n\n var shouldStopAnimation = function shouldStopAnimation() {\n return !_filter(stepperStyle, needContinue).length;\n }; // stepper timing function like spring\n\n\n var stepperUpdate = function stepperUpdate(now) {\n if (!preTime) {\n preTime = now;\n }\n\n var deltaTime = now - preTime;\n var steps = deltaTime / easing.dt;\n stepperStyle = calStepperVals(easing, stepperStyle, steps); // get union set and add compatible prefix\n\n render(_objectSpread({}, from, to, getCurrStyle(stepperStyle)));\n preTime = now;\n\n if (!shouldStopAnimation()) {\n cafId = raf(update);\n }\n }; // t => val timing function like cubic-bezier\n\n\n var timingUpdate = function timingUpdate(now) {\n if (!beginTime) {\n beginTime = now;\n }\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); // get union set and add compatible prefix\n\n render(_objectSpread({}, from, to, currStyle));\n\n if (t < 1) {\n cafId = raf(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({}, from, to, finalStyle));\n }\n };\n\n update = easing.isStepper ? stepperUpdate : timingUpdate; // return start animation method\n\n return function () {\n raf(update); // return stop animation method\n\n return function () {\n caf(cafId);\n };\n };\n});","import _isEqual from \"lodash/isEqual\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\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; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nimport React, { PureComponent, cloneElement, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport createAnimateManager from './AnimateManager';\nimport { configEasing } from './easing';\nimport configUpdate from './configUpdate';\nimport { getTransitionVal, identity, translateStyle } from './util';\n\nvar Animate =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(Animate, _PureComponent);\n\n function Animate(props, context) {\n var _this;\n\n _classCallCheck(this, Animate);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Animate).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 _this.handleStyleChange = _this.handleStyleChange.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n _this.changeStyle = _this.changeStyle.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n\n if (!isActive) {\n _this.state = {\n style: {}\n }; // if children is a function and animation is not active, set style to 'to'\n\n if (typeof children === 'function') {\n _this.state = {\n style: to\n };\n }\n\n return _possibleConstructorReturn(_this);\n }\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\n _this.state = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n } else {\n _this.state = {\n style: {}\n };\n }\n\n return _this;\n }\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\n if (!isActive || !canBegin) {\n return;\n }\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\n if (!canBegin) {\n return;\n }\n\n if (!isActive) {\n var newState = {\n style: attributeName ? _defineProperty({}, attributeName, this.props.to) : this.props.to\n };\n\n if (this.state && this.state.style) {\n if (attributeName && this.state.style[attributeName] !== this.props.to || !attributeName && this.state.style !== this.props.to) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(newState);\n }\n }\n\n return;\n }\n\n if (_isEqual(prevProps.to, this.props.to) && prevProps.canBegin && prevProps.isActive) {\n return;\n }\n\n var isTriggered = !prevProps.canBegin || !prevProps.isActive;\n\n if (this.manager) {\n this.manager.stop();\n }\n\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n\n var from = isTriggered || shouldReAnimate ? this.props.from : prevProps.to;\n\n if (this.state && this.state.style) {\n var _newState = {\n style: attributeName ? _defineProperty({}, attributeName, from) : from\n };\n\n if (attributeName && this.state.style[attributeName] !== from || !attributeName && this.state.style !== from) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(_newState);\n }\n }\n\n this.runAnimation(_objectSpread({}, this.props, {\n from: from,\n begin: 0\n }));\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false;\n\n if (this.unSubscribe) {\n this.unSubscribe();\n }\n\n if (this.manager) {\n this.manager.stop();\n this.manager = null;\n }\n\n if (this.stopJSAnimation) {\n this.stopJSAnimation();\n }\n }\n }, {\n key: \"runJSAnimation\",\n value: function runJSAnimation(props) {\n var _this2 = this;\n\n var from = props.from,\n to = props.to,\n duration = props.duration,\n easing = props.easing,\n begin = props.begin,\n onAnimationEnd = props.onAnimationEnd,\n onAnimationStart = props.onAnimationStart;\n var startAnimation = configUpdate(from, to, configEasing(easing), duration, this.changeStyle);\n\n var finalStartAnimation = function finalStartAnimation() {\n _this2.stopJSAnimation = startAnimation();\n };\n\n this.manager.start([onAnimationStart, begin, finalStartAnimation, duration, onAnimationEnd]);\n }\n }, {\n key: \"runStepAnimation\",\n value: function runStepAnimation(props) {\n var _this3 = this;\n\n var steps = props.steps,\n begin = props.begin,\n onAnimationStart = props.onAnimationStart;\n var _steps$ = steps[0],\n initialStyle = _steps$.style,\n _steps$$duration = _steps$.duration,\n initialTime = _steps$$duration === void 0 ? 0 : _steps$$duration;\n\n var addStyle = function addStyle(sequence, nextItem, index) {\n if (index === 0) {\n return sequence;\n }\n\n var duration = nextItem.duration,\n _nextItem$easing = nextItem.easing,\n easing = _nextItem$easing === 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\n if (typeof easing === 'function' || easing === 'spring') {\n return _toConsumableArray(sequence).concat([_this3.runJSAnimation.bind(_this3, {\n from: preItem.style,\n to: style,\n duration: duration,\n easing: easing\n }), duration]);\n }\n\n var transition = getTransitionVal(properties, duration, easing);\n\n var newStyle = _objectSpread({}, preItem.style, style, {\n transition: transition\n });\n\n return _toConsumableArray(sequence).concat([newStyle, duration, onAnimationEnd]).filter(identity);\n };\n\n return this.manager.start([onAnimationStart].concat(_toConsumableArray(steps.reduce(addStyle, [initialStyle, Math.max(initialTime, begin)])), [props.onAnimationEnd]));\n }\n }, {\n key: \"runAnimation\",\n value: function runAnimation(props) {\n if (!this.manager) {\n this.manager = createAnimateManager();\n }\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\n if (typeof easing === 'function' || typeof children === 'function' || easing === 'spring') {\n this.runJSAnimation(props);\n return;\n }\n\n if (steps.length > 1) {\n this.runStepAnimation(props);\n return;\n }\n\n var to = attributeName ? _defineProperty({}, attributeName, propsTo) : propsTo;\n var transition = getTransitionVal(Object.keys(to), duration, easing);\n manager.start([onAnimationStart, begin, _objectSpread({}, to, {\n transition: transition\n }), duration, onAnimationEnd]);\n }\n }, {\n key: \"handleStyleChange\",\n value: function handleStyleChange(style) {\n this.changeStyle(style);\n }\n }, {\n key: \"changeStyle\",\n value: function changeStyle(style) {\n if (this.mounted) {\n this.setState({\n style: style\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _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, [\"children\", \"begin\", \"duration\", \"attributeName\", \"easing\", \"isActive\", \"steps\", \"from\", \"to\", \"canBegin\", \"onAnimationEnd\", \"shouldReAnimate\", \"onAnimationReStart\"]);\n\n var count = Children.count(children);\n var stateStyle = translateStyle(this.state.style);\n\n if (typeof children === 'function') {\n return children(stateStyle);\n }\n\n if (!isActive || count === 0) {\n return children;\n }\n\n var cloneContainer = function cloneContainer(container) {\n var _container$props = container.props,\n _container$props$styl = _container$props.style,\n style = _container$props$styl === void 0 ? {} : _container$props$styl,\n className = _container$props.className;\n var res = cloneElement(container, _objectSpread({}, others, {\n style: _objectSpread({}, style, stateStyle),\n className: className\n }));\n return res;\n };\n\n if (count === 1) {\n return cloneContainer(Children.only(children));\n }\n\n return React.createElement(\"div\", null, Children.map(children, function (child) {\n return cloneContainer(child);\n }));\n }\n }]);\n\n return Animate;\n}(PureComponent);\n\nAnimate.displayName = 'Animate';\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};\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};\nexport default Animate;","import _isNumber from \"lodash/isNumber\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _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; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport React, { Component, Children } from 'react';\nimport { Transition } from 'react-transition-group';\nimport PropTypes from 'prop-types';\nimport Animate from './Animate';\n\nvar parseDurationOfSingleTransition = function parseDurationOfSingleTransition() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var steps = options.steps,\n duration = options.duration;\n\n if (steps && steps.length) {\n return steps.reduce(function (result, entry) {\n return result + (_isNumber(entry.duration) && entry.duration > 0 ? entry.duration : 0);\n }, 0);\n }\n\n if (_isNumber(duration)) {\n return duration;\n }\n\n return 0;\n};\n\nvar AnimateGroupChild =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(AnimateGroupChild, _Component);\n\n function AnimateGroupChild() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, AnimateGroupChild);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(AnimateGroupChild)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n isActive: false\n };\n\n _this.handleEnter = function (node, isAppearing) {\n var _this$props = _this.props,\n appearOptions = _this$props.appearOptions,\n enterOptions = _this$props.enterOptions;\n\n _this.handleStyleActive(isAppearing ? appearOptions : enterOptions);\n };\n\n _this.handleExit = function () {\n _this.handleStyleActive(_this.props.leaveOptions);\n };\n\n return _this;\n }\n\n _createClass(AnimateGroupChild, [{\n key: \"handleStyleActive\",\n value: function handleStyleActive(style) {\n if (style) {\n var onAnimationEnd = style.onAnimationEnd ? function () {\n style.onAnimationEnd();\n } : null;\n this.setState(_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\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, [\"children\", \"appearOptions\", \"enterOptions\", \"leaveOptions\"]);\n\n return React.createElement(Transition, _extends({}, props, {\n onEnter: this.handleEnter,\n onExit: this.handleExit,\n timeout: this.parseTimeout()\n }), function () {\n return React.createElement(Animate, _this2.state, Children.only(children));\n });\n }\n }]);\n\n return AnimateGroupChild;\n}(Component);\n\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';\n\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 React.createElement(TransitionGroup, {\n component: component\n }, Children.map(children, function (child, index) {\n return React.createElement(AnimateGroupChild, {\n appearOptions: appear,\n enterOptions: enter,\n leaveOptions: leave,\n key: \"child-\".concat(index)\n }, child);\n }));\n}\n\nAnimateGroup.propTypes = {\n appear: PropTypes.object,\n enter: PropTypes.object,\n leave: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.array, PropTypes.element]),\n component: PropTypes.any\n};\nAnimateGroup.defaultProps = {\n component: 'span'\n};\nexport default AnimateGroup;","import Animate from './Animate';\nimport { configBezier, configSpring } from './easing';\nimport { translateStyle } from './util';\nimport AnimateGroup from './AnimateGroup';\nexport { configSpring, configBezier, AnimateGroup, translateStyle };\nexport default Animate;","import _sortBy from \"lodash/sortBy\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { 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\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { isNumOrStr } from '../util/DataUtils';\n\nvar defaultFormatter = function defaultFormatter(value) {\n return _isArray(value) && isNumOrStr(value[0]) && isNumOrStr(value[1]) ? value.join(' ~ ') : value;\n};\n\nvar DefaultTooltipContent =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(DefaultTooltipContent, _PureComponent);\n\n function DefaultTooltipContent() {\n _classCallCheck(this, DefaultTooltipContent);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(DefaultTooltipContent).apply(this, arguments));\n }\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\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\n var finalItemStyle = _objectSpread({\n display: 'block',\n paddingTop: 4,\n paddingBottom: 4,\n color: entry.color || '#000'\n }, itemStyle);\n\n var finalFormatter = entry.formatter || formatter || defaultFormatter;\n var name = entry.name,\n value = entry.value;\n\n if (finalFormatter) {\n var formatted = finalFormatter(value, name, entry, i);\n\n if (Array.isArray(formatted)) {\n var _formatted = _slicedToArray(formatted, 2);\n\n value = _formatted[0];\n name = _formatted[1];\n } else {\n value = formatted;\n }\n }\n\n return (// 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) ? React.createElement(\"span\", {\n className: \"recharts-tooltip-item-name\"\n }, name) : null, isNumOrStr(name) ? React.createElement(\"span\", {\n className: \"recharts-tooltip-item-separator\"\n }, separator) : null, React.createElement(\"span\", {\n className: \"recharts-tooltip-item-value\"\n }, value), React.createElement(\"span\", {\n className: \"recharts-tooltip-item-unit\"\n }, entry.unit || ''))\n );\n });\n return React.createElement(\"ul\", {\n className: \"recharts-tooltip-item-list\",\n style: listStyle\n }, items);\n }\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\n var finalStyle = _objectSpread({\n margin: 0,\n padding: 10,\n backgroundColor: '#fff',\n border: '1px solid #ccc',\n whiteSpace: 'nowrap'\n }, contentStyle);\n\n var finalLabelStyle = _objectSpread({\n margin: 0\n }, labelStyle);\n\n var hasLabel = isNumOrStr(label);\n var finalLabel = hasLabel ? label : '';\n var wrapperCN = classNames('recharts-default-tooltip', wrapperClassName);\n var labelCN = classNames('recharts-tooltip-label', labelClassName);\n\n if (hasLabel && labelFormatter) {\n finalLabel = labelFormatter(label);\n }\n\n return React.createElement(\"div\", {\n className: wrapperCN,\n style: finalStyle\n }, React.createElement(\"p\", {\n className: labelCN,\n style: finalLabelStyle\n }, finalLabel), this.renderContent());\n }\n }]);\n\n return DefaultTooltipContent;\n}(PureComponent);\n\nDefaultTooltipContent.displayName = 'DefaultTooltipContent';\nDefaultTooltipContent.propTypes = {\n separator: PropTypes.string,\n wrapperClassName: PropTypes.string,\n labelClassName: PropTypes.string,\n formatter: PropTypes.func,\n contentStyle: PropTypes.object,\n itemStyle: PropTypes.object,\n labelStyle: PropTypes.object,\n labelFormatter: PropTypes.func,\n label: PropTypes.any,\n payload: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.any,\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.array]),\n unit: PropTypes.any\n })),\n itemSorter: PropTypes.func\n};\nDefaultTooltipContent.defaultProps = {\n separator: ' : ',\n contentStyle: {},\n itemStyle: {},\n labelStyle: {}\n};\nexport default DefaultTooltipContent;","import _isNil from \"lodash/isNil\";\nimport _isFunction from \"lodash/isFunction\";\nimport _uniqBy from \"lodash/uniqBy\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Tooltip\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { translateStyle } from 'react-smooth';\nimport classNames from 'classnames';\nimport DefaultTooltipContent from './DefaultTooltipContent';\nimport { TOOLTIP_TYPES, isSsr } from '../util/ReactUtils';\nimport { isNumber } from '../util/DataUtils';\nvar CLS_PREFIX = 'recharts-tooltip-wrapper';\nvar EPS = 1;\n\nvar defaultUniqBy = function defaultUniqBy(entry) {\n return entry.dataKey;\n};\n\nvar getUniqPaylod = function getUniqPaylod(option, payload) {\n if (option === true) {\n return _uniqBy(payload, defaultUniqBy);\n }\n\n if (_isFunction(option)) {\n return _uniqBy(payload, option);\n }\n\n return payload;\n};\n\nvar propTypes = {\n allowEscapeViewBox: PropTypes.shape({\n x: PropTypes[\"boolean\"],\n y: PropTypes[\"boolean\"]\n }),\n content: PropTypes.oneOfType([PropTypes.element, PropTypes.func]),\n viewBox: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number\n }),\n active: PropTypes.bool,\n separator: PropTypes.string,\n formatter: PropTypes.func,\n offset: PropTypes.number,\n itemStyle: PropTypes.object,\n labelStyle: PropTypes.object,\n wrapperStyle: PropTypes.object,\n contentStyle: PropTypes.object,\n cursor: PropTypes.oneOfType([PropTypes.bool, PropTypes.element, PropTypes.object]),\n coordinate: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n position: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n label: PropTypes.any,\n payload: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.any,\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.array]),\n unit: PropTypes.any,\n type: PropTypes.oneOf(TOOLTIP_TYPES)\n })),\n paylodUniqBy: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n isAnimationActive: PropTypes.bool,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']),\n itemSorter: PropTypes.func,\n filterNull: PropTypes.bool,\n useTranslate3d: PropTypes.bool\n};\nvar defaultProps = {\n active: false,\n allowEscapeViewBox: {\n x: false,\n y: false\n },\n offset: 10,\n viewBox: {\n x1: 0,\n x2: 0,\n y1: 0,\n y2: 0\n },\n coordinate: {\n x: 0,\n y: 0\n },\n cursorStyle: {},\n separator: ' : ',\n wrapperStyle: {},\n contentStyle: {},\n itemStyle: {},\n labelStyle: {},\n cursor: true,\n isAnimationActive: !isSsr(),\n animationEasing: 'ease',\n animationDuration: 400,\n filterNull: true,\n useTranslate3d: false\n};\n\nvar renderContent = function renderContent(content, props) {\n if (React.isValidElement(content)) {\n return React.cloneElement(content, props);\n }\n\n if (_isFunction(content)) {\n return content(props);\n }\n\n return React.createElement(DefaultTooltipContent, props);\n};\n\nvar Tooltip =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(Tooltip, _PureComponent);\n\n function Tooltip() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Tooltip);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Tooltip)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n boxWidth: -1,\n boxHeight: -1\n };\n\n _this.getTranslate = function (_ref) {\n var key = _ref.key,\n tooltipDimension = _ref.tooltipDimension,\n viewBoxDimension = _ref.viewBoxDimension;\n var _this$props = _this.props,\n allowEscapeViewBox = _this$props.allowEscapeViewBox,\n coordinate = _this$props.coordinate,\n offset = _this$props.offset,\n position = _this$props.position,\n viewBox = _this$props.viewBox;\n\n if (position && isNumber(position[key])) {\n return position[key];\n }\n\n var restricted = coordinate[key] - tooltipDimension - offset;\n var unrestricted = coordinate[key] + offset;\n\n if (allowEscapeViewBox[key]) {\n return unrestricted;\n }\n\n var tooltipBoundary = coordinate[key] + tooltipDimension + offset;\n var viewBoxBoundary = viewBox[key] + viewBoxDimension;\n\n if (tooltipBoundary > viewBoxBoundary) {\n return Math.max(restricted, viewBox[key]);\n }\n\n return Math.max(unrestricted, viewBox[key]);\n };\n\n return _this;\n }\n\n _createClass(Tooltip, [{\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: \"updateBBox\",\n value: function updateBBox() {\n var _this$state = this.state,\n boxWidth = _this$state.boxWidth,\n boxHeight = _this$state.boxHeight;\n\n if (this.wrapperNode && this.wrapperNode.getBoundingClientRect) {\n var box = this.wrapperNode.getBoundingClientRect();\n\n if (Math.abs(box.width - boxWidth) > EPS || Math.abs(box.height - boxHeight) > EPS) {\n this.setState({\n boxWidth: box.width,\n boxHeight: box.height\n });\n }\n } else if (boxWidth !== -1 || boxHeight !== -1) {\n this.setState({\n boxWidth: -1,\n boxHeight: -1\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _classNames,\n _this2 = this;\n\n var _this$props2 = this.props,\n payload = _this$props2.payload,\n isAnimationActive = _this$props2.isAnimationActive,\n animationDuration = _this$props2.animationDuration,\n animationEasing = _this$props2.animationEasing,\n filterNull = _this$props2.filterNull,\n paylodUniqBy = _this$props2.paylodUniqBy;\n var finalPayload = getUniqPaylod(paylodUniqBy, filterNull && payload && payload.length ? payload.filter(function (entry) {\n return !_isNil(entry.value);\n }) : payload);\n var hasPayload = finalPayload && finalPayload.length;\n var _this$props3 = this.props,\n content = _this$props3.content,\n viewBox = _this$props3.viewBox,\n coordinate = _this$props3.coordinate,\n position = _this$props3.position,\n active = _this$props3.active,\n wrapperStyle = _this$props3.wrapperStyle;\n\n var outerStyle = _objectSpread({\n pointerEvents: 'none',\n visibility: active && hasPayload ? 'visible' : 'hidden',\n position: 'absolute',\n top: 0\n }, wrapperStyle);\n\n var translateX, translateY;\n\n if (position && isNumber(position.x) && isNumber(position.y)) {\n translateX = position.x;\n translateY = position.y;\n } else {\n var _this$state2 = this.state,\n boxWidth = _this$state2.boxWidth,\n boxHeight = _this$state2.boxHeight;\n\n if (boxWidth > 0 && boxHeight > 0 && coordinate) {\n translateX = this.getTranslate({\n key: 'x',\n tooltipDimension: boxWidth,\n viewBoxDimension: viewBox.width\n });\n translateY = this.getTranslate({\n key: 'y',\n tooltipDimension: boxHeight,\n viewBoxDimension: viewBox.height\n });\n } else {\n outerStyle.visibility = 'hidden';\n }\n }\n\n outerStyle = _objectSpread({}, translateStyle({\n transform: this.props.useTranslate3d ? \"translate3d(\".concat(translateX, \"px, \").concat(translateY, \"px, 0)\") : \"translate(\".concat(translateX, \"px, \").concat(translateY, \"px)\")\n }), {}, outerStyle);\n\n if (isAnimationActive && active) {\n outerStyle = _objectSpread({}, translateStyle({\n transition: \"transform \".concat(animationDuration, \"ms \").concat(animationEasing)\n }), {}, outerStyle);\n }\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 React.createElement(\"div\", {\n className: cls,\n style: outerStyle,\n ref: function ref(node) {\n _this2.wrapperNode = node;\n }\n }, renderContent(content, _objectSpread({}, this.props, {\n payload: finalPayload\n })));\n }\n }]);\n\n return Tooltip;\n}(PureComponent);\n\nTooltip.displayName = 'Tooltip';\nTooltip.propTypes = propTypes;\nTooltip.defaultProps = defaultProps;\nexport default Tooltip;","import _debounce from \"lodash/debounce\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Wrapper component to make charts adapt to the size of parent * DOM\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport ReactResizeDetector from 'react-resize-detector';\nimport { isPercent } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\n\nvar ResponsiveContainer =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(ResponsiveContainer, _Component);\n\n function ResponsiveContainer(props) {\n var _this;\n\n _classCallCheck(this, ResponsiveContainer);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ResponsiveContainer).call(this, props));\n\n _this.updateDimensionsImmediate = function () {\n if (!_this.mounted) {\n return;\n }\n\n var newSize = _this.getContainerSize();\n\n if (newSize) {\n var _this$state = _this.state,\n oldWidth = _this$state.containerWidth,\n oldHeight = _this$state.containerHeight;\n var containerWidth = newSize.containerWidth,\n containerHeight = newSize.containerHeight;\n\n if (containerWidth !== oldWidth || containerHeight !== oldHeight) {\n _this.setState({\n containerWidth: containerWidth,\n containerHeight: containerHeight\n });\n }\n }\n };\n\n _this.state = {\n containerWidth: -1,\n containerHeight: -1\n };\n _this.handleResize = props.debounce > 0 ? _debounce(_this.updateDimensionsImmediate, props.debounce) : _this.updateDimensionsImmediate;\n return _this;\n }\n /* eslint-disable react/no-did-mount-set-state */\n\n\n _createClass(ResponsiveContainer, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.mounted = true;\n var size = this.getContainerSize();\n\n if (size) {\n this.setState(size);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.mounted = false;\n }\n }, {\n key: \"getContainerSize\",\n value: function getContainerSize() {\n if (!this.container) {\n return null;\n }\n\n return {\n containerWidth: this.container.clientWidth,\n containerHeight: this.container.clientHeight\n };\n }\n }, {\n key: \"renderChart\",\n value: function renderChart() {\n var _this$state2 = this.state,\n containerWidth = _this$state2.containerWidth,\n containerHeight = _this$state2.containerHeight;\n\n if (containerWidth < 0 || containerHeight < 0) {\n return null;\n }\n\n var _this$props = this.props,\n aspect = _this$props.aspect,\n width = _this$props.width,\n height = _this$props.height,\n minWidth = _this$props.minWidth,\n minHeight = _this$props.minHeight,\n maxHeight = _this$props.maxHeight,\n children = _this$props.children;\n warn(isPercent(width) || isPercent(height), \"The width(%s) and height(%s) are both fixed numbers,\\n maybe you don't need to use a ResponsiveContainer.\", width, height);\n warn(!aspect || aspect > 0, 'The aspect(%s) must be greater than zero.', aspect);\n var calculatedWidth = isPercent(width) ? containerWidth : width;\n var calculatedHeight = isPercent(height) ? containerHeight : height;\n\n if (aspect && aspect > 0) {\n // Preserve the desired aspect ratio\n if (calculatedWidth) {\n // Will default to using width for aspect ratio\n calculatedHeight = calculatedWidth / aspect;\n } else if (calculatedHeight) {\n // But we should also take height into consideration\n calculatedWidth = calculatedHeight * aspect;\n } // if maxHeight is set, overwrite if calculatedHeight is greater than maxHeight\n\n\n if (maxHeight && calculatedHeight > maxHeight) {\n calculatedHeight = maxHeight;\n }\n }\n\n warn(calculatedWidth > 0 || calculatedHeight > 0, \"The width(%s) and height(%s) of chart should be greater than 0,\\n please check the style of container, or the props width(%s) and height(%s),\\n or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the\\n height and width.\", calculatedWidth, calculatedHeight, width, height, minWidth, minHeight, aspect);\n return React.cloneElement(children, {\n width: calculatedWidth,\n height: calculatedHeight\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\n var _this$props2 = this.props,\n minWidth = _this$props2.minWidth,\n minHeight = _this$props2.minHeight,\n width = _this$props2.width,\n height = _this$props2.height,\n maxHeight = _this$props2.maxHeight,\n id = _this$props2.id,\n className = _this$props2.className;\n var style = {\n width: width,\n height: height,\n minWidth: minWidth,\n minHeight: minHeight,\n maxHeight: maxHeight\n };\n return React.createElement(\"div\", {\n id: id,\n className: classNames('recharts-responsive-container', className),\n style: style,\n ref: function ref(node) {\n _this2.container = node;\n }\n }, this.renderChart(), React.createElement(ReactResizeDetector, {\n handleWidth: true,\n handleHeight: true,\n onResize: this.handleResize\n }));\n }\n }]);\n\n return ResponsiveContainer;\n}(Component);\n\nResponsiveContainer.displayName = 'ResponsiveContainer';\nResponsiveContainer.propTypes = {\n aspect: PropTypes.number,\n width: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n height: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n minHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n minWidth: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n maxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n children: PropTypes.node.isRequired,\n debounce: PropTypes.number,\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n};\nResponsiveContainer.defaultProps = {\n width: '100%',\n height: '100%',\n debounce: 0\n};\nexport default ResponsiveContainer;","import _isFunction from \"lodash/isFunction\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _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; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Cartesian Grid\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes } from '../util/ReactUtils';\nimport { isNumber } from '../util/DataUtils';\n\nvar CartesianGrid =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(CartesianGrid, _PureComponent);\n\n function CartesianGrid() {\n _classCallCheck(this, CartesianGrid);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(CartesianGrid).apply(this, arguments));\n }\n\n _createClass(CartesianGrid, [{\n key: \"renderHorizontal\",\n\n /**\n * Draw the horizontal grid lines\n * @param {Array} horizontalPoints either passed in as props or generated from function\n * @return {Group} Horizontal lines\n */\n value: function renderHorizontal(horizontalPoints) {\n var _this = this;\n\n var _this$props = this.props,\n x = _this$props.x,\n width = _this$props.width,\n horizontal = _this$props.horizontal;\n\n if (!horizontalPoints || !horizontalPoints.length) {\n return null;\n }\n\n var items = horizontalPoints.map(function (entry, i) {\n var props = _objectSpread({}, _this.props, {\n x1: x,\n y1: entry,\n x2: x + width,\n y2: entry,\n key: \"line-\".concat(i),\n index: i\n });\n\n return _this.constructor.renderLineItem(horizontal, props);\n });\n return React.createElement(\"g\", {\n className: \"recharts-cartesian-grid-horizontal\"\n }, items);\n }\n /**\n * Draw vertical grid lines\n * @param {Array} verticalPoints either passed in as props or generated from function\n * @return {Group} Vertical lines\n */\n\n }, {\n key: \"renderVertical\",\n value: function renderVertical(verticalPoints) {\n var _this2 = this;\n\n var _this$props2 = this.props,\n y = _this$props2.y,\n height = _this$props2.height,\n vertical = _this$props2.vertical;\n\n if (!verticalPoints || !verticalPoints.length) {\n return null;\n }\n\n var items = verticalPoints.map(function (entry, i) {\n var props = _objectSpread({}, _this2.props, {\n x1: entry,\n y1: y,\n x2: entry,\n y2: y + height,\n key: \"line-\".concat(i),\n index: i\n });\n\n return _this2.constructor.renderLineItem(vertical, props);\n });\n return React.createElement(\"g\", {\n className: \"recharts-cartesian-grid-vertical\"\n }, items);\n }\n /**\n * Draw vertical grid stripes filled by colors\n * @param {Array} verticalPoints either passed in as props or generated from function\n * @return {Group} Vertical stripes\n */\n\n }, {\n key: \"renderVerticalStripes\",\n value: function renderVerticalStripes(verticalPoints) {\n var verticalFill = this.props.verticalFill;\n\n if (!verticalFill || !verticalFill.length) {\n return null;\n }\n\n var _this$props3 = this.props,\n fillOpacity = _this$props3.fillOpacity,\n x = _this$props3.x,\n y = _this$props3.y,\n width = _this$props3.width,\n height = _this$props3.height;\n var verticalPointsUpdated = verticalPoints.slice().sort(function (a, b) {\n return a - b;\n });\n\n if (x !== verticalPointsUpdated[0]) {\n verticalPointsUpdated.unshift(0);\n }\n\n var items = verticalPointsUpdated.map(function (entry, i) {\n var lineWidth = verticalPointsUpdated[i + 1] ? verticalPointsUpdated[i + 1] - entry : x + width - entry;\n\n if (lineWidth <= 0) {\n return null;\n }\n\n var colorIndex = i % verticalFill.length;\n return React.createElement(\"rect\", {\n key: \"react-\".concat(i) // eslint-disable-line react/no-array-index-key\n ,\n x: Math.round(entry + x - x),\n y: y,\n width: lineWidth,\n height: height,\n stroke: \"none\",\n fill: verticalFill[colorIndex],\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n });\n return React.createElement(\"g\", {\n className: \"recharts-cartesian-gridstripes-vertical\"\n }, items);\n }\n /**\n * Draw horizontal grid stripes filled by colors\n * @param {Array} horizontalPoints either passed in as props or generated from function\n * @return {Group} Horizontal stripes\n */\n\n }, {\n key: \"renderHorizontalStripes\",\n value: function renderHorizontalStripes(horizontalPoints) {\n var horizontalFill = this.props.horizontalFill;\n\n if (!horizontalFill || !horizontalFill.length) {\n return null;\n }\n\n var _this$props4 = this.props,\n fillOpacity = _this$props4.fillOpacity,\n x = _this$props4.x,\n y = _this$props4.y,\n width = _this$props4.width,\n height = _this$props4.height;\n var horizontalPointsUpdated = horizontalPoints.slice().sort(function (a, b) {\n return a - b;\n });\n\n if (y !== horizontalPointsUpdated[0]) {\n horizontalPointsUpdated.unshift(0);\n }\n\n var items = horizontalPointsUpdated.map(function (entry, i) {\n var lineHeight = horizontalPointsUpdated[i + 1] ? horizontalPointsUpdated[i + 1] - entry : y + height - entry;\n\n if (lineHeight <= 0) {\n return null;\n }\n\n var colorIndex = i % horizontalFill.length;\n return React.createElement(\"rect\", {\n key: \"react-\".concat(i) // eslint-disable-line react/no-array-index-key\n ,\n y: Math.round(entry + y - y),\n x: x,\n height: lineHeight,\n width: width,\n stroke: \"none\",\n fill: horizontalFill[colorIndex],\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n });\n return React.createElement(\"g\", {\n className: \"recharts-cartesian-gridstripes-horizontal\"\n }, items);\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var fill = this.props.fill;\n\n if (!fill || fill === 'none') {\n return null;\n }\n\n var _this$props5 = this.props,\n fillOpacity = _this$props5.fillOpacity,\n x = _this$props5.x,\n y = _this$props5.y,\n width = _this$props5.width,\n height = _this$props5.height;\n return React.createElement(\"rect\", {\n x: x,\n y: y,\n width: width,\n height: height,\n stroke: \"none\",\n fill: fill,\n fillOpacity: fillOpacity,\n className: \"recharts-cartesian-grid-bg\"\n });\n }\n }, {\n key: \"render\",\n value: function render() {\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 horizontal = _this$props6.horizontal,\n vertical = _this$props6.vertical,\n horizontalCoordinatesGenerator = _this$props6.horizontalCoordinatesGenerator,\n verticalCoordinatesGenerator = _this$props6.verticalCoordinatesGenerator,\n xAxis = _this$props6.xAxis,\n yAxis = _this$props6.yAxis,\n offset = _this$props6.offset,\n chartWidth = _this$props6.chartWidth,\n chartHeight = _this$props6.chartHeight;\n\n if (!isNumber(width) || width <= 0 || !isNumber(height) || height <= 0 || !isNumber(x) || x !== +x || !isNumber(y) || y !== +y) {\n return null;\n }\n\n var _this$props7 = this.props,\n horizontalPoints = _this$props7.horizontalPoints,\n verticalPoints = _this$props7.verticalPoints; // No horizontal points are specified\n\n if ((!horizontalPoints || !horizontalPoints.length) && _isFunction(horizontalCoordinatesGenerator)) {\n horizontalPoints = horizontalCoordinatesGenerator({\n yAxis: yAxis,\n width: chartWidth,\n height: chartHeight,\n offset: offset\n });\n } // No vertical points are specified\n\n\n if ((!verticalPoints || !verticalPoints.length) && _isFunction(verticalCoordinatesGenerator)) {\n verticalPoints = verticalCoordinatesGenerator({\n xAxis: xAxis,\n width: chartWidth,\n height: chartHeight,\n offset: offset\n });\n }\n\n return React.createElement(\"g\", {\n className: \"recharts-cartesian-grid\"\n }, this.renderBackground(), horizontal && this.renderHorizontal(horizontalPoints), vertical && this.renderVertical(verticalPoints), horizontal && this.renderHorizontalStripes(horizontalPoints), vertical && this.renderVerticalStripes(verticalPoints));\n }\n }], [{\n key: \"renderLineItem\",\n value: function renderLineItem(option, props) {\n var lineItem;\n\n if (React.isValidElement(option)) {\n lineItem = React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n lineItem = option(props);\n } else {\n var x1 = props.x1,\n y1 = props.y1,\n x2 = props.x2,\n y2 = props.y2,\n key = props.key,\n others = _objectWithoutProperties(props, [\"x1\", \"y1\", \"x2\", \"y2\", \"key\"]);\n\n lineItem = React.createElement(\"line\", _extends({}, getPresentationAttributes(others), {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2,\n fill: \"none\",\n key: key\n }));\n }\n\n return lineItem;\n }\n }]);\n\n return CartesianGrid;\n}(PureComponent);\n\nCartesianGrid.displayName = 'CartesianGrid';\nCartesianGrid.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n horizontal: PropTypes.oneOfType([PropTypes.object, PropTypes.element, PropTypes.func, PropTypes.bool]),\n vertical: PropTypes.oneOfType([PropTypes.object, PropTypes.element, PropTypes.func, PropTypes.bool]),\n horizontalPoints: PropTypes.arrayOf(PropTypes.number),\n verticalPoints: PropTypes.arrayOf(PropTypes.number),\n horizontalCoordinatesGenerator: PropTypes.func,\n verticalCoordinatesGenerator: PropTypes.func,\n xAxis: PropTypes.object,\n yAxis: PropTypes.object,\n offset: PropTypes.object,\n chartWidth: PropTypes.number,\n chartHeight: PropTypes.number,\n verticalFill: PropTypes.arrayOf(PropTypes.string),\n horizontalFill: PropTypes.arrayOf(PropTypes.string)\n});\nCartesianGrid.defaultProps = {\n horizontal: true,\n vertical: true,\n // The ordinates of horizontal grid lines\n horizontalPoints: [],\n // The abscissas of vertical grid lines\n verticalPoints: [],\n stroke: '#ccc',\n fill: 'none',\n // The fill of colors of grid lines\n verticalFill: [],\n horizontalFill: []\n};\nexport default CartesianGrid;","export default function() {}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // proceed\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.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; // proceed\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import 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 Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // proceed\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function() {\n var x = pointX,\n y = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function line(data) {\n var i,\n n = data.length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","import {path} from \"d3-path\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function() {\n var x0 = pointX,\n x1 = null,\n y0 = constant(0),\n y1 = pointY,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null;\n\n function area(data) {\n var i,\n j,\n k,\n n = data.length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","import _isArray from \"lodash/isArray\";\nimport _isFunction from \"lodash/isFunction\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Curve\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { line as shapeLine, area as shapeArea, curveBasisClosed, curveBasisOpen, curveBasis, curveLinearClosed, curveLinear, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from 'd3-shape';\nimport classNames from 'classnames';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes, filterEventAttributes } 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};\n\nvar defined = function defined(p) {\n return p.x === +p.x && p.y === +p.y;\n};\n\nvar getX = function getX(p) {\n return p.x;\n};\n\nvar getY = function getY(p) {\n return p.y;\n};\n\nvar getCurveFactory = function getCurveFactory(type, layout) {\n if (_isFunction(type)) {\n return type;\n }\n\n var name = \"curve\".concat(type.slice(0, 1).toUpperCase()).concat(type.slice(1));\n\n if (name === 'curveMonotone' && layout) {\n return CURVE_FACTORIES[\"\".concat(name).concat(layout === 'vertical' ? 'Y' : 'X')];\n }\n\n return CURVE_FACTORIES[name] || curveLinear;\n};\n\nvar Curve =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(Curve, _PureComponent);\n\n function Curve() {\n _classCallCheck(this, Curve);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Curve).apply(this, arguments));\n }\n\n _createClass(Curve, [{\n key: \"getPath\",\n\n /**\n * Calculate the path of curve\n * @return {String} path\n */\n value: function getPath() {\n var _this$props = this.props,\n type = _this$props.type,\n points = _this$props.points,\n baseLine = _this$props.baseLine,\n layout = _this$props.layout,\n connectNulls = _this$props.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\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({}, entry, {\n base: formatBaseLine[index]\n });\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\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(areaPoints);\n }\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\n lineFunction.defined(defined).curve(curveFactory);\n return lineFunction(formatPoints);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n className = _this$props2.className,\n points = _this$props2.points,\n path = _this$props2.path,\n pathRef = _this$props2.pathRef;\n\n if ((!points || !points.length) && !path) {\n return null;\n }\n\n var realPath = points && points.length ? this.getPath() : path;\n return React.createElement(\"path\", _extends({}, getPresentationAttributes(this.props), filterEventAttributes(this.props, null, true), {\n className: classNames('recharts-curve', className),\n d: realPath,\n ref: pathRef\n }));\n }\n }]);\n\n return Curve;\n}(PureComponent);\n\nCurve.displayName = 'Curve';\nCurve.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n className: PropTypes.string,\n type: PropTypes.oneOfType([PropTypes.oneOf(['basis', 'basisClosed', 'basisOpen', 'linear', 'linearClosed', 'natural', 'monotoneX', 'monotoneY', 'monotone', 'step', 'stepBefore', 'stepAfter']), PropTypes.func]),\n layout: PropTypes.oneOf(['horizontal', 'vertical']),\n baseLine: PropTypes.oneOfType([PropTypes.number, PropTypes.array]),\n points: PropTypes.arrayOf(PropTypes.object),\n connectNulls: PropTypes.bool,\n path: PropTypes.string,\n pathRef: PropTypes.func\n});\nCurve.defaultProps = {\n type: 'linear',\n points: [],\n connectNulls: false\n};\nexport default Curve;","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Dot\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { getPresentationAttributes, filterEventAttributes } from '../util/ReactUtils';\n\nvar Dot =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(Dot, _PureComponent);\n\n function Dot() {\n _classCallCheck(this, Dot);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Dot).apply(this, arguments));\n }\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\n if (cx === +cx && cy === +cy && r === +r) {\n return React.createElement(\"circle\", _extends({}, getPresentationAttributes(this.props), filterEventAttributes(this.props, null, true), {\n className: layerClass,\n cx: cx,\n cy: cy,\n r: r\n }));\n }\n\n return null;\n }\n }]);\n\n return Dot;\n}(PureComponent);\n\nDot.displayName = 'Dot';\nDot.propTypes = {\n className: PropTypes.string,\n cx: PropTypes.number,\n cy: PropTypes.number,\n r: PropTypes.number\n};\nexport default Dot;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _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; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/**\n * @fileOverview Layer\n */\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nvar propTypes = {\n className: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node])\n};\n\nfunction Layer(props) {\n var children = props.children,\n className = props.className,\n others = _objectWithoutProperties(props, [\"children\", \"className\"]);\n\n var layerClass = classNames('recharts-layer', className);\n return React.createElement(\"g\", _extends({\n className: layerClass\n }, others), children);\n}\n\nLayer.propTypes = propTypes;\nexport default Layer;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nimport { isSsr } from './ReactUtils';\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';\n\nfunction autoCompleteStyle(name, value) {\n if (STYLE_LIST.indexOf(name) >= 0 && value === +value) {\n return \"\".concat(value, \"px\");\n }\n\n return value;\n}\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\n return [].concat(_toConsumableArray(result), [entry]);\n }, []);\n return formatStrs.join('');\n}\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\n if (text === undefined || text === null || isSsr()) {\n return {\n width: 0,\n height: 0\n };\n }\n\n var str = \"\".concat(text);\n var styleString = getStyleString(style);\n var cacheKey = \"\".concat(str, \"-\").concat(styleString);\n\n if (stringCache.widthCache[cacheKey]) {\n return stringCache.widthCache[cacheKey];\n }\n\n try {\n var measurementSpan = document.getElementById(MEASUREMENT_SPAN_ID);\n\n if (!measurementSpan) {\n measurementSpan = document.createElement('span');\n measurementSpan.setAttribute('id', MEASUREMENT_SPAN_ID);\n document.body.appendChild(measurementSpan);\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\n\n var measurementSpanStyle = _objectSpread({}, SPAN_STYLE, {}, style);\n\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\n if (++stringCache.cacheCount > MAX_CACHE_NUM) {\n stringCache.cacheCount = 0;\n stringCache.widthCache = {};\n }\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 }; // If we don't have gBCR, just use 0,0 rather than error\n // BlackBerry 5, iOS 3 (original iPhone)\n\n if (typeof el.getBoundingClientRect !== 'undefined') {\n box = el.getBoundingClientRect();\n }\n\n return {\n top: box.top + window.pageYOffset - html.clientTop,\n left: box.left + window.pageXOffset - html.clientLeft\n };\n};\n/**\n * 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 */\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\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _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; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport reduceCSSCalc from 'reduce-css-calc';\nimport classNames from 'classnames';\nimport { isNumber, isNumOrStr } from '../util/DataUtils';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes, isSsr, filterEventAttributes } from '../util/ReactUtils';\nimport { getStringSize } from '../util/DOMUtils';\nvar BREAKING_SPACES = /[ \\f\\n\\r\\t\\v\\u2028\\u2029]+/;\n\nvar calculateWordWidths = function calculateWordWidths(props) {\n try {\n var words = !_isNil(props.children) ? props.children.toString().split(BREAKING_SPACES) : [];\n var wordsWithComputedWidth = words.map(function (word) {\n return {\n word: word,\n width: getStringSize(word, props.style).width\n };\n });\n var spaceWidth = getStringSize(\"\\xA0\", props.style).width;\n return {\n wordsWithComputedWidth: wordsWithComputedWidth,\n spaceWidth: spaceWidth\n };\n } catch (e) {\n return null;\n }\n};\n\nvar Text =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(Text, _Component);\n\n function Text(_props) {\n var _this;\n\n _classCallCheck(this, Text);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Text).call(this, _props));\n\n _this.getWordsWithoutCalculate = function (props) {\n var words = !_isNil(props.children) ? props.children.toString().split(BREAKING_SPACES) : [];\n return [{\n words: words\n }];\n };\n\n _this.state = {\n wordsByLines: _this.getWordsByLines(_props, true)\n };\n return _this;\n }\n\n _createClass(Text, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.updateWordsByLines(this.props, true);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.width !== this.props.width || prevProps.scaleToFit !== this.props.scaleToFit || prevProps.children !== this.props.children || prevProps.style !== this.props.style) {\n var needCalculate = this.props.children !== prevProps.children || this.props.style !== prevProps.style;\n this.updateWordsByLines(this.props, needCalculate);\n }\n }\n }, {\n key: \"updateWordsByLines\",\n value: function updateWordsByLines(props, needCalculate) {\n this.setState({\n wordsByLines: this.getWordsByLines(props, needCalculate)\n });\n }\n }, {\n key: \"getWordsByLines\",\n value: function getWordsByLines(props, needCalculate) {\n // Only perform calculations if using features that require them (multiline, scaleToFit)\n if ((props.width || props.scaleToFit) && !isSsr()) {\n if (needCalculate) {\n var wordWidths = calculateWordWidths(props);\n\n if (wordWidths) {\n var wordsWithComputedWidth = wordWidths.wordsWithComputedWidth,\n spaceWidth = wordWidths.spaceWidth;\n this.wordsWithComputedWidth = wordsWithComputedWidth;\n this.spaceWidth = spaceWidth;\n } else {\n return this.getWordsWithoutCalculate(props);\n }\n }\n\n return this.calculateWordsByLines(this.wordsWithComputedWidth, this.spaceWidth, props.width);\n }\n\n return this.getWordsWithoutCalculate(props);\n }\n }, {\n key: \"calculateWordsByLines\",\n value: function calculateWordsByLines(wordsWithComputedWidth, spaceWidth, lineWidth) {\n var scaleToFit = this.props.scaleToFit;\n return (wordsWithComputedWidth || []).reduce(function (result, _ref) {\n var word = _ref.word,\n width = _ref.width;\n var currentLine = result[result.length - 1];\n\n if (currentLine && (lineWidth == null || scaleToFit || currentLine.width + width + spaceWidth < lineWidth)) {\n // Word can be added to an existing line\n currentLine.words.push(word);\n currentLine.width += width + spaceWidth;\n } else {\n // Add first word to line or word is too long to scaleToFit on existing line\n var newLine = {\n words: [word],\n width: width\n };\n result.push(newLine);\n }\n\n return result;\n }, []);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n dx = _this$props.dx,\n dy = _this$props.dy,\n textAnchor = _this$props.textAnchor,\n verticalAnchor = _this$props.verticalAnchor,\n scaleToFit = _this$props.scaleToFit,\n angle = _this$props.angle,\n lineHeight = _this$props.lineHeight,\n capHeight = _this$props.capHeight,\n className = _this$props.className,\n textProps = _objectWithoutProperties(_this$props, [\"dx\", \"dy\", \"textAnchor\", \"verticalAnchor\", \"scaleToFit\", \"angle\", \"lineHeight\", \"capHeight\", \"className\"]);\n\n var wordsByLines = this.state.wordsByLines;\n\n if (!isNumOrStr(textProps.x) || !isNumOrStr(textProps.y)) {\n return null;\n }\n\n var x = textProps.x + (isNumber(dx) ? dx : 0);\n var y = textProps.y + (isNumber(dy) ? dy : 0);\n var startDy;\n\n switch (verticalAnchor) {\n case 'start':\n startDy = reduceCSSCalc(\"calc(\".concat(capHeight, \")\"));\n break;\n\n case 'middle':\n startDy = reduceCSSCalc(\"calc(\".concat((wordsByLines.length - 1) / 2, \" * -\").concat(lineHeight, \" + (\").concat(capHeight, \" / 2))\"));\n break;\n\n default:\n startDy = reduceCSSCalc(\"calc(\".concat(wordsByLines.length - 1, \" * -\").concat(lineHeight, \")\"));\n break;\n }\n\n var transforms = [];\n\n if (scaleToFit) {\n var lineWidth = wordsByLines[0].width;\n transforms.push(\"scale(\".concat(this.props.width / lineWidth, \")\"));\n }\n\n if (angle) {\n transforms.push(\"rotate(\".concat(angle, \", \").concat(x, \", \").concat(y, \")\"));\n }\n\n if (transforms.length) {\n textProps.transform = transforms.join(' ');\n }\n\n return React.createElement(\"text\", _extends({}, getPresentationAttributes(textProps), filterEventAttributes(textProps), {\n x: x,\n y: y,\n className: classNames('recharts-text', className),\n textAnchor: textAnchor\n }), wordsByLines.map(function (line, index) {\n return (// 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(' '))\n );\n }));\n }\n }]);\n\n return Text;\n}(Component);\n\nText.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n scaleToFit: PropTypes.bool,\n angle: PropTypes.number,\n textAnchor: PropTypes.oneOf(['start', 'middle', 'end', 'inherit']),\n verticalAnchor: PropTypes.oneOf(['start', 'middle', 'end']),\n style: PropTypes.object\n});\nText.defaultProps = {\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' // Maintain compat with existing charts / default SVG behavior\n\n};\nexport default Text;","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);","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending\";\n\nexport default function(compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n}\n\nfunction ascendingComparator(f) {\n return function(d, x) {\n return ascending(f(d), x);\n };\n}\n","import ascending from \"./ascending\";\nimport bisector from \"./bisector\";\n\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;\n","import {pair} from \"./pairs\";\n\nexport default function(values0, values1, reduce) {\n var n0 = values0.length,\n n1 = values1.length,\n values = new Array(n0 * n1),\n i0,\n i1,\n i,\n value0;\n\n if (reduce == null) reduce = pair;\n\n for (i0 = i = 0; i0 < n0; ++i0) {\n for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {\n values[i] = reduce(value0, values1[i1]);\n }\n }\n\n return values;\n}\n","export default function(x) {\n return x === null ? NaN : +x;\n}\n","var array = Array.prototype;\n\nexport var slice = array.slice;\nexport var map = array.map;\n","export default function(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks[i] = (start - i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","export default function(values) {\n return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n}\n","import number from \"./number\";\n\nexport default function(values, p, valueof) {\n if (valueof == null) valueof = number;\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n","export 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: this.interpolator(domain); break;\n default: this.interpolator(interpolator).domain(domain); break;\n }\n return this;\n}\n","export var prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map.prototype = {\n constructor: Map,\n has: function(key) {\n return (prefix + key) in this;\n },\n get: function(key) {\n return this[prefix + key];\n },\n set: function(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function() {\n for (var property in this) if (property[0] === prefix) delete this[property];\n },\n keys: function() {\n var keys = [];\n for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));\n return keys;\n },\n values: function() {\n var values = [];\n for (var property in this) if (property[0] === prefix) values.push(this[property]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});\n return entries;\n },\n size: function() {\n var size = 0;\n for (var property in this) if (property[0] === prefix) ++size;\n return size;\n },\n empty: function() {\n for (var property in this) if (property[0] === prefix) return false;\n return true;\n },\n each: function(f) {\n for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n};\n\nfunction map(object, f) {\n var map = new Map;\n\n // Copy constructor.\n if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });\n\n // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n\n if (f == null) while (++i < n) map.set(i, object[i]);\n else while (++i < n) map.set(f(o = object[i], i, object), o);\n }\n\n // Convert object to map.\n else if (object) for (var key in object) map.set(key, object[key]);\n\n return map;\n}\n\nexport default map;\n","import {default as map, prefix} from \"./map\";\n\nfunction Set() {}\n\nvar proto = map.prototype;\n\nSet.prototype = set.prototype = {\n constructor: Set,\n has: proto.has,\n add: function(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n};\n\nfunction set(object, f) {\n var set = new Set;\n\n // Copy constructor.\n if (object instanceof Set) object.each(function(value) { set.add(value); });\n\n // Otherwise, assume it’s an array.\n else if (object) {\n var i = -1, n = object.length;\n if (f == null) while (++i < n) set.add(object[i]);\n else while (++i < n) set.add(f(object[i], i, object));\n }\n\n return set;\n}\n\nexport default set;\n","var array = Array.prototype;\n\nexport var map = array.map;\nexport var slice = array.slice;\n","import {map} from \"d3-collection\";\nimport {slice} from \"./array\";\nimport {initRange} from \"./init\";\n\nexport var implicit = {name: \"implicit\"};\n\nexport default function ordinal() {\n var index = map(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n var key = d + \"\", i = index.get(key);\n if (!i) {\n if (unknown !== implicit) return unknown;\n index.set(key, i = domain.push(d));\n }\n return range[(i - 1) % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = map();\n var i = -1, n = _.length, d, key;\n while (++i < n) if (!index.has(key = (d = _[i]) + \"\")) index.set(key, domain.push(d));\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(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\";\nimport ordinal from \"./ordinal\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n range = [0, 1],\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = range[1] < range[0],\n start = range[reverse - 0],\n stop = range[1 - reverse];\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = [+_[0], +_[1]], rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = [+_[0], +_[1]], round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = 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(), range)\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: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\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_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: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.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 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_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import constant from \"./constant.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","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default function(a, b) {\n 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","export default function(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport {map, slice} from \"./array\";\nimport constant from \"./constant\";\nimport number from \"./number\";\n\nvar unit = [0, 1];\n\nexport function 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(domain) {\n var a = domain[0], b = domain[domain.length - 1], 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 piecewise = Math.min(domain.length, range.length) > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return 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 = map.call(_, number), clamp === identity || (clamp = clamper(domain)), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = slice.call(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? clamper(domain) : identity, scale) : 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(transform, untransform) {\n return transformer()(transform, untransform);\n}\n","export default function(x) {\n return function() {\n return x;\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","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","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 formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\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 {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 \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": formatDecimal,\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return formatRounded(x * 100, p); },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return Math.round(x).toString(16); }\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.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","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","// 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 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(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 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) {\n return Math.max(0, -exponent(Math.abs(step)));\n}\n","import {ticks, tickIncrement} from \"d3-array\";\nimport continuous, {copy, identity} from \"./continuous\";\nimport {initRange} from \"./init\";\nimport tickFormat from \"./tickFormat\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n 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 i0 = 0,\n i1 = d.length - 1,\n start = d[i0],\n stop = d[i1],\n step;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n\n step = tickIncrement(start, stop, count);\n\n if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n step = tickIncrement(start, stop, count);\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n step = tickIncrement(start, stop, count);\n }\n\n if (step > 0) {\n d[i0] = Math.floor(start / step) * step;\n d[i1] = Math.ceil(stop / step) * step;\n domain(d);\n } else if (step < 0) {\n d[i0] = Math.ceil(start * step) / step;\n d[i1] = Math.floor(stop * step) / step;\n domain(d);\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous(identity, identity);\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 {map} from \"./array\";\nimport {linearish} from \"./linear\";\nimport number from \"./number\";\n\nexport default function identity(domain) {\n var unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = map.call(_, number), scale) : domain.slice();\n };\n\n scale.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 ? map.call(domain, number) : [0, 1];\n\n return linearish(scale);\n}\n","export default function(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","import {ticks} from \"d3-array\";\nimport {format} from \"d3-format\";\nimport nice from \"./nice\";\nimport {copy, transformer} from \"./continuous\";\nimport {initRange} from \"./init\";\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 : function(x) { return Math.pow(base, x); };\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), function(x) { return Math.log(x) / base; });\n}\n\nfunction reflect(f) {\n return function(x) {\n return -f(-x);\n };\n}\n\nexport function loggish(transform) {\n var scale = transform(transformLog, transformExp),\n domain = scale.domain,\n base = 10,\n logs,\n 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 = function(count) {\n var d = domain(),\n u = d[0],\n v = d[d.length - 1],\n r;\n\n if (r = v < u) i = u, u = v, v = i;\n\n var i = logs(u),\n j = logs(v),\n p,\n k,\n t,\n n = count == null ? 10 : +count,\n z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.round(i) - 1, j = Math.round(j) + 1;\n if (u > 0) for (; i < j; ++i) {\n for (k = 1, p = pows(i); k < base; ++k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i < j; ++i) {\n for (k = base - 1, p = pows(i); k >= 1; --k) {\n t = p * k;\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = function(count, specifier) {\n if (specifier == null) specifier = base === 10 ? \".0e\" : \",\";\n if (typeof specifier !== \"function\") specifier = format(specifier);\n if (count === Infinity) return specifier;\n if (count == null) count = 10;\n var k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return function(d) {\n var i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = function() {\n return domain(nice(domain(), {\n floor: function(x) { return pows(Math.floor(logs(x))); },\n ceil: function(x) { return pows(Math.ceil(logs(x))); }\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, log()).base(scale.base());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {linearish} from \"./linear\";\nimport {copy, transformer} from \"./continuous\";\nimport {initRange} from \"./init\";\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\";\nimport {copy, identity, transformer} from \"./continuous\";\nimport {initRange} from \"./init\";\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 {ascending, bisect, quantile as threshold} from \"d3-array\";\nimport {slice} from \"./array\";\nimport {initRange} from \"./init\";\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 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 (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), rescale()) : range.slice();\n };\n\n scale.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 {slice} from \"./array\";\nimport {linearish} from \"./linear\";\nimport {initRange} from \"./init\";\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 <= 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 = +_[0], x1 = +_[1], rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = slice.call(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.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 {slice} from \"./array\";\nimport {initRange} from \"./init\";\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 <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = slice.call(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = slice.call(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.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","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(function(date) {\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setDate(date.getDate() + step);\n}, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function(date) {\n return date.getDate() - 1;\n});\n\nexport default day;\nexport var days = day.range;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction 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[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function 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 var map = {}, i = -1, n = names.length;\n while (++i < n) map[names[i].toLowerCase()] = i;\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction 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 {bisector, tickStep} from \"d3-array\";\nimport {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport {map} from \"./array\";\nimport continuous, {copy, identity} from \"./continuous\";\nimport {initRange} from \"./init\";\nimport nice from \"./nice\";\n\nvar durationSecond = 1000,\n durationMinute = durationSecond * 60,\n durationHour = durationMinute * 60,\n durationDay = durationHour * 24,\n durationWeek = durationDay * 7,\n durationMonth = durationDay * 30,\n durationYear = durationDay * 365;\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(year, month, week, day, hour, minute, second, millisecond, format) {\n var scale = continuous(identity, identity),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n var tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n function tickInterval(interval, start, stop, step) {\n if (interval == null) interval = 10;\n\n // If a desired tick count is specified, pick a reasonable tick interval\n // based on the extent of the domain and a rough estimate of tick size.\n // Otherwise, assume interval is already a time interval and use it.\n if (typeof interval === \"number\") {\n var target = Math.abs(stop - start) / interval,\n i = bisector(function(i) { return i[2]; }).right(tickIntervals, target);\n if (i === tickIntervals.length) {\n step = tickStep(start / durationYear, stop / durationYear, interval);\n interval = year;\n } else if (i) {\n i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n step = i[1];\n interval = i[0];\n } else {\n step = Math.max(tickStep(start, stop, interval), 1);\n interval = millisecond;\n }\n }\n\n return step == null ? interval : interval.every(step);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(map.call(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval, step) {\n var d = domain(),\n t0 = d[0],\n t1 = d[d.length - 1],\n r = t1 < t0,\n t;\n if (r) t = t0, t0 = t1, t1 = t;\n t = tickInterval(interval, t0, t1, step);\n t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n return r ? t.reverse() : t;\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval, step) {\n var d = domain();\n return (interval = tickInterval(interval, d[0], d[d.length - 1], step))\n ? domain(nice(d, interval))\n : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));\n };\n\n return scale;\n}\n\nexport default function() {\n return initRange.apply(calendar(timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","import {calendar} from \"./time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond} from \"d3-time\";\nimport {initRange} from \"./init\";\n\nexport default function() {\n return initRange.apply(calendar(utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcMillisecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","import {identity} from \"./continuous\";\nimport {initInterpolator} from \"./init\";\nimport {linearish} from \"./linear\";\nimport {loggish} from \"./log\";\nimport {symlogish} from \"./symlog\";\nimport {powish} from \"./pow\";\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 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 ? (t0 = transform(x0 = +_[0]), t1 = transform(x1 = +_[1]), 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 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} from \"d3-array\";\nimport {identity} from \"./continuous\";\nimport {initInterpolator} from \"./init\";\n\nexport default function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (!isNaN(x = +x)) return interpolator((bisect(domain, x) - 1) / (domain.length - 1));\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (var i = 0, n = _.length, d; i < n; ++i) if (d = _[i], d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n","import {identity} from \"./continuous\";\nimport {initInterpolator} from \"./init\";\nimport {linearish} from \"./linear\";\nimport {loggish} from \"./log\";\nimport {copy} from \"./sequential\";\nimport {symlogish} from \"./symlog\";\nimport {powish} from \"./pow\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 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) * (x < t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? (t0 = transform(x0 = +_[0]), t1 = transform(x1 = +_[1]), t2 = transform(x2 = +_[2]), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.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);\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","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 var slice = Array.prototype.slice;\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import {slice} from \"./array.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\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var kz = keys.apply(this, arguments),\n i,\n m = data.length,\n n = kz.length,\n sz = new Array(n),\n oz;\n\n for (i = 0; i < n; ++i) {\n for (var ki = kz[i], si = sz[i] = new Array(m), j = 0, sij; j < m; ++j) {\n si[j] = sij = [0, +value(data[j], ki, j, data)];\n sij.data = data[j];\n }\n si.key = ki;\n }\n\n for (i = 0, oz = order(sz); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(slice.call(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { 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\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; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Render a group of error bar\n*/\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Layer from '../container/Layer';\nimport { getPresentationAttributes } from '../util/ReactUtils';\n\nvar ErrorBar =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(ErrorBar, _Component);\n\n function ErrorBar() {\n _classCallCheck(this, ErrorBar);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ErrorBar).apply(this, arguments));\n }\n\n _createClass(ErrorBar, [{\n key: \"renderErrorBars\",\n value: function renderErrorBars() {\n var _this$props = this.props,\n offset = _this$props.offset,\n layout = _this$props.layout,\n width = _this$props.width,\n dataKey = _this$props.dataKey,\n data = _this$props.data,\n dataPointFormatter = _this$props.dataPointFormatter,\n xAxis = _this$props.xAxis,\n yAxis = _this$props.yAxis,\n others = _objectWithoutProperties(_this$props, [\"offset\", \"layout\", \"width\", \"dataKey\", \"data\", \"dataPointFormatter\", \"xAxis\", \"yAxis\"]);\n\n var props = getPresentationAttributes(others);\n return 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\n if (!errorVal) {\n return null;\n }\n\n var xMid, yMid, xMin, yMin, xMax, yMax, scale, coordsTop, coordsMid, coordsBot, lowBound, highBound;\n\n if (Array.isArray(errorVal)) {\n var _errorVal = _slicedToArray(errorVal, 2);\n\n lowBound = _errorVal[0];\n highBound = _errorVal[1];\n } else {\n lowBound = highBound = errorVal;\n }\n\n if (layout === 'vertical') {\n scale = xAxis.scale;\n xMid = value;\n yMid = y + offset;\n xMin = scale(xMid - lowBound);\n yMin = yMid + width;\n xMax = scale(xMid + highBound);\n yMax = yMid - width;\n coordsTop = {\n x1: xMax,\n y1: yMin,\n x2: xMax,\n y2: yMax\n };\n coordsMid = {\n x1: xMin,\n y1: yMid,\n x2: xMax,\n y2: yMid\n };\n coordsBot = {\n x1: xMin,\n y1: yMin,\n x2: xMin,\n y2: yMax\n };\n } else if (layout === 'horizontal') {\n scale = yAxis.scale;\n xMid = x + offset;\n yMid = value;\n xMin = xMid - width;\n xMax = xMid + width;\n yMin = scale(yMid - lowBound);\n yMax = scale(yMid + highBound);\n coordsTop = {\n x1: xMin,\n y1: yMax,\n x2: xMax,\n y2: yMax\n };\n coordsMid = {\n x1: xMid,\n y1: yMin,\n x2: xMid,\n y2: yMax\n };\n coordsBot = {\n x1: xMin,\n y1: yMin,\n x2: xMax,\n y2: yMin\n };\n }\n\n return (// eslint-disable-next-line react/no-array-index-key\n React.createElement(Layer, _extends({\n className: \"recharts-errorBar\",\n key: \"bar-\".concat(i)\n }, props), React.createElement(\"line\", coordsTop), React.createElement(\"line\", coordsMid), React.createElement(\"line\", coordsBot))\n );\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n return React.createElement(Layer, {\n className: \"recharts-errorBars\"\n }, this.renderErrorBars());\n }\n }]);\n\n return ErrorBar;\n}(Component);\n\nErrorBar.propTypes = {\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]).isRequired,\n data: PropTypes.array,\n xAxis: PropTypes.object,\n yAxis: PropTypes.object,\n layout: PropTypes.string,\n dataPointFormatter: PropTypes.func,\n stroke: PropTypes.string,\n strokeWidth: PropTypes.number,\n width: PropTypes.number,\n offset: PropTypes.number\n};\nErrorBar.defaultProps = {\n stroke: 'black',\n strokeWidth: 1.5,\n width: 5,\n offset: 0,\n layout: 'horizontal'\n};\nexport default ErrorBar;","import _isEqual from \"lodash/isEqual\";\nimport _sortBy from \"lodash/sortBy\";\nimport _isNaN from \"lodash/isNaN\";\nimport _isString from \"lodash/isString\";\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\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { getNiceTickValues, getTickValuesFixedDomain } from 'recharts-scale';\nimport * as d3Scales from 'd3-scale';\nimport { stack as shapeStack, stackOrderNone, stackOffsetExpand, stackOffsetNone, stackOffsetSilhouette, stackOffsetWiggle } from 'd3-shape';\nimport { isNumOrStr, uniqueId, isNumber, getPercentValue, mathSign, findEntryInArray } from './DataUtils';\nimport ErrorBar from '../cartesian/ErrorBar';\nimport Legend from '../component/Legend';\nimport { findAllByType, findChildByType, getDisplayName } from './ReactUtils';\nexport var getValueByDataKey = function getValueByDataKey(obj, dataKey, defaultValue) {\n if (_isNil(obj) || _isNil(dataKey)) {\n return defaultValue;\n }\n\n if (isNumOrStr(dataKey)) {\n return _get(obj, dataKey, defaultValue);\n }\n\n if (_isFunction(dataKey)) {\n return dataKey(obj);\n }\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 */\n\nexport var getDomainOfDataByKey = function getDomainOfDataByKey(data, key, type, filterNil) {\n var flattenData = _flatMap(data, function (entry) {\n return getValueByDataKey(entry, key);\n });\n\n if (type === 'number') {\n var domain = flattenData.filter(function (entry) {\n return isNumber(entry) || parseFloat(entry, 10);\n });\n return domain.length ? [_min(domain), _max(domain)] : [Infinity, -Infinity];\n }\n\n var validateData = filterNil ? flattenData.filter(function (entry) {\n return !_isNil(entry);\n }) : flattenData;\n return validateData.map(function (entry) {\n return isNumOrStr(entry) ? entry : '';\n });\n};\nexport var calculateActiveTickIndex = function calculateActiveTickIndex(coordinate, ticks, unsortedTicks, axis) {\n var index = -1;\n var len = ticks.length;\n\n if (len > 1) {\n if (axis && axis.axisType === 'angleAxis' && Math.abs(Math.abs(axis.range[1] - axis.range[0]) - 360) <= 1e-6) {\n var range = axis.range; // ticks are distributed in a circle\n\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\n if (mathSign(cur - before) !== mathSign(after - cur)) {\n var diffInterval = [];\n\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\n var sameInterval = [Math.min(cur, (sameDirectionCoord + cur) / 2), Math.max(cur, (sameDirectionCoord + cur) / 2)];\n\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\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 } else {\n index = 0;\n }\n\n return index;\n};\n/**\n * Get the main color of each graphic item\n * @param {ReactElement} item A graphic item\n * @return {String} Color\n */\n\nexport var getMainColorOfGraphicItem = function getMainColorOfGraphicItem(item) {\n var displayName = item.type.displayName;\n var _item$props = item.props,\n stroke = _item$props.stroke,\n fill = _item$props.fill;\n var result;\n\n switch (displayName) {\n case 'Line':\n result = stroke;\n break;\n\n case 'Area':\n case 'Radar':\n result = stroke && stroke !== 'none' ? stroke : fill;\n break;\n\n default:\n result = fill;\n break;\n }\n\n return result;\n};\nexport var getLegendProps = function getLegendProps(_ref) {\n var children = _ref.children,\n formatedGraphicalItems = _ref.formatedGraphicalItems,\n legendWidth = _ref.legendWidth,\n legendContent = _ref.legendContent;\n var legendItem = findChildByType(children, Legend);\n\n if (!legendItem) {\n return null;\n }\n\n var legendData;\n\n if (legendItem.props && legendItem.props.payload) {\n legendData = legendItem.props && legendItem.props.payload;\n } else if (legendContent === 'children') {\n legendData = (formatedGraphicalItems || []).reduce(function (result, _ref2) {\n var item = _ref2.item,\n props = _ref2.props;\n var data = props.sectors || props.data || [];\n return result.concat(data.map(function (entry) {\n return {\n type: legendItem.props.iconType || item.props.legendType,\n value: entry.name,\n color: entry.fill,\n payload: entry\n };\n }));\n }, []);\n } else {\n legendData = (formatedGraphicalItems || []).map(function (_ref3) {\n var item = _ref3.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\n return _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 */\n\nexport var getBarSizeList = function getBarSizeList(_ref4) {\n var globalSize = _ref4.barSize,\n _ref4$stackGroups = _ref4.stackGroups,\n stackGroups = _ref4$stackGroups === void 0 ? {} : _ref4$stackGroups;\n\n if (!stackGroups) {\n return {};\n }\n\n var result = {};\n var numericAxisIds = Object.keys(stackGroups);\n\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\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\n if (barItems && barItems.length) {\n var selfSize = barItems[0].props.barSize;\n var cateId = barItems[0].props[cateAxisId];\n\n if (!result[cateId]) {\n result[cateId] = [];\n }\n\n result[cateId].push({\n item: barItems[0],\n stackList: barItems.slice(1),\n barSize: _isNil(selfSize) ? globalSize : selfSize\n });\n }\n }\n }\n\n return result;\n};\n/**\n * 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 */\n\nexport var getBarPosition = function getBarPosition(_ref5) {\n var barGap = _ref5.barGap,\n barCategoryGap = _ref5.barCategoryGap,\n bandSize = _ref5.bandSize,\n _ref5$sizeList = _ref5.sizeList,\n sizeList = _ref5$sizeList === void 0 ? [] : _ref5$sizeList,\n maxBarSize = _ref5.maxBarSize;\n var len = sizeList.length;\n if (len < 1) return null;\n var realBarGap = getPercentValue(barGap, bandSize, 0, true);\n var result; // whether or not is barSize setted by user\n\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\n if (sum >= bandSize) {\n sum -= (len - 1) * realBarGap;\n realBarGap = 0;\n }\n\n if (sum >= bandSize && fullBarSize > 0) {\n useFull = true;\n fullBarSize *= 0.9;\n sum = len * fullBarSize;\n }\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\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\n return newRes;\n }, []);\n } else {\n var _offset = getPercentValue(barCategoryGap, bandSize, 0, true);\n\n if (bandSize - 2 * _offset - (len - 1) * realBarGap <= 0) {\n realBarGap = 0;\n }\n\n var originalSize = (bandSize - 2 * _offset - (len - 1) * realBarGap) / len;\n\n if (originalSize > 1) {\n originalSize >>= 0;\n }\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\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\n return newRes;\n }, []);\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 height = props.height,\n margin = props.margin;\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var legendHeight = height - (margin.top || 0) - (margin.bottom || 0);\n var legendProps = getLegendProps({\n children: children,\n items: items,\n legendWidth: legendWidth,\n legendHeight: legendHeight\n });\n var newOffset = offset;\n\n if (legendProps) {\n var box = legendBox || {};\n var align = legendProps.align,\n verticalAlign = legendProps.verticalAlign,\n layout = legendProps.layout;\n\n if ((layout === 'vertical' || layout === 'horizontal' && verticalAlign === 'center') && isNumber(offset[align])) {\n newOffset = _objectSpread({}, offset, _defineProperty({}, align, newOffset[align] + (box.width || 0)));\n }\n\n if ((layout === 'horizontal' || layout === 'vertical' && align === 'center') && isNumber(offset[verticalAlign])) {\n newOffset = _objectSpread({}, offset, _defineProperty({}, verticalAlign, newOffset[verticalAlign] + (box.height || 0)));\n }\n }\n\n return newOffset;\n};\nexport var getDomainOfErrorBars = function getDomainOfErrorBars(data, item, dataKey, axisType) {\n var children = item.props.children;\n var errorBars = findAllByType(children, ErrorBar).filter(function (errorBarChild) {\n var direction = errorBarChild.props.direction;\n return _isNil(direction) || _isNil(axisType) ? true : axisType.indexOf(direction) >= 0;\n });\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\n return null;\n};\nexport var parseErrorBarsOfAxis = function parseErrorBarsOfAxis(data, items, dataKey, axisType) {\n var domains = items.map(function (item) {\n return getDomainOfErrorBars(data, item, dataKey, axisType);\n }).filter(function (entry) {\n return !_isNil(entry);\n });\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\n return null;\n};\n/**\n * Get domain of data by the configuration of item element\n * @param {Array} data The data displayed in the chart\n * @param {Array} items The instances of item\n * @param {String} type The type of axis, number - Number Axis, category - Category Axis\n * @param {Boolean} filterNil Whether or not filter nil values\n * @return {Array} Domain\n */\n\nexport var getDomainOfItemsWithSameAxis = function getDomainOfItemsWithSameAxis(data, items, type, filterNil) {\n var domains = items.map(function (item) {\n var dataKey = item.props.dataKey;\n\n if (type === 'number' && dataKey) {\n return getDomainOfErrorBars(data, item, dataKey) || getDomainOfDataByKey(data, dataKey, type, filterNil);\n }\n\n return getDomainOfDataByKey(data, dataKey, type, filterNil);\n });\n\n if (type === 'number') {\n // Calculate the domain of number axis\n return domains.reduce(function (result, entry) {\n return [Math.min(result[0], entry[0]), Math.max(result[1], entry[1])];\n }, [Infinity, -Infinity]);\n }\n\n var tag = {}; // Get the union set of category axis\n\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\n return result;\n }, []);\n};\nexport var isCategorialAxis = function isCategorialAxis(layout, axisType) {\n return layout === 'horizontal' && axisType === 'xAxis' || layout === 'vertical' && axisType === 'yAxis' || layout === 'centric' && axisType === 'angleAxis' || layout === 'radial' && axisType === 'radiusAxis';\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 */\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\n if (entry.coordinate === max) {\n hasMax = true;\n }\n\n return entry.coordinate;\n });\n\n if (!hasMin) {\n values.push(min);\n }\n\n if (!hasMax) {\n values.push(max);\n }\n\n return values;\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 */\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 offset = (isGrid || isAll) && type === 'category' && scale.bandwidth ? scale.bandwidth() / 2 : 0;\n offset = axis.axisType === 'angleAxis' ? mathSign(range[0] - range[1]) * 2 * offset : offset; // The ticks setted by user should only affect the ticks adjacent to axis line\n\n if (isGrid && (axis.ticks || axis.niceTicks)) {\n return (axis.ticks || axis.niceTicks).map(function (entry) {\n var scaleContent = duplicateDomain ? duplicateDomain.indexOf(entry) : entry;\n return {\n coordinate: scale(scaleContent) + offset,\n value: entry,\n offset: offset\n };\n });\n }\n\n if (axis.isCategorial && axis.categoricalDomain) {\n return axis.categoricalDomain.map(function (entry, index) {\n return {\n coordinate: scale(entry),\n value: entry,\n index: index,\n offset: offset\n };\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 } // When axis has duplicated text, serial numbers are used to generate scale\n\n\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 * 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 */\n\nexport var combineEventHandlers = function combineEventHandlers(defaultHandler, parentHandler, childHandler) {\n var customizedHandler;\n\n if (_isFunction(childHandler)) {\n customizedHandler = childHandler;\n } else if (_isFunction(parentHandler)) {\n customizedHandler = parentHandler;\n }\n\n if (_isFunction(defaultHandler) || customizedHandler) {\n return function (arg1, arg2, arg3, arg4) {\n if (_isFunction(defaultHandler)) {\n defaultHandler(arg1, arg2, arg3, arg4);\n }\n\n if (_isFunction(customizedHandler)) {\n customizedHandler(arg1, arg2, arg3, arg4);\n }\n };\n }\n\n return null;\n};\n/**\n * Parse the scale function of axis\n * @param {Object} axis The option of axis\n * @param {String} chartType The displayName of chart\n * @return {Function} The scale funcion\n */\n\nexport var parseScale = function parseScale(axis, chartType) {\n var scale = axis.scale,\n type = axis.type,\n layout = axis.layout,\n axisType = axis.axisType;\n\n if (scale === 'auto') {\n if (layout === 'radial' && axisType === 'radiusAxis') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n\n if (layout === 'radial' && axisType === 'angleAxis') {\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n\n if (type === 'category' && chartType && (chartType.indexOf('LineChart') >= 0 || chartType.indexOf('AreaChart') >= 0)) {\n return {\n scale: d3Scales.scalePoint(),\n realScaleType: 'point'\n };\n }\n\n if (type === 'category') {\n return {\n scale: d3Scales.scaleBand(),\n realScaleType: 'band'\n };\n }\n\n return {\n scale: d3Scales.scaleLinear(),\n realScaleType: 'linear'\n };\n }\n\n if (_isString(scale)) {\n var name = \"scale\".concat(scale.slice(0, 1).toUpperCase()).concat(scale.slice(1));\n return {\n scale: (d3Scales[name] || d3Scales.scalePoint)(),\n realScaleType: d3Scales[name] ? name : 'point'\n };\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\n if (!domain || domain.length <= 2) {\n return;\n }\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\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\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\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\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\n if (!isNumber(value[0]) || value[0] < min) {\n result[0] = min;\n }\n\n if (!isNumber(value[1]) || value[1] > max) {\n result[1] = max;\n }\n\n if (result[0] > max) {\n result[0] = max;\n }\n\n if (result[1] < min) {\n result[1] = min;\n }\n\n return result;\n};\n/* eslint no-param-reassign: 0 */\n\nexport var offsetSign = function offsetSign(series) {\n var n = series.length;\n\n if (n <= 0) {\n return;\n }\n\n for (var j = 0, m = series[0].length; j < m; ++j) {\n var positive = 0;\n var negative = 0;\n\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 /* eslint-disable prefer-destructuring */\n\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};\nvar STACK_OFFSET_MAP = {\n sign: offsetSign,\n expand: stackOffsetExpand,\n none: stackOffsetNone,\n silhouette: stackOffsetSilhouette,\n wiggle: stackOffsetWiggle\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 } // reversing items to affect render order (for layering)\n\n\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\n if (hide) {\n return result;\n }\n\n var axisId = item.props[numericAxisId];\n var parentGroup = result[axisId] || {\n hasStack: false,\n stackGroups: {}\n };\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\n return _objectSpread({}, result, _defineProperty({}, axisId, parentGroup));\n }, {});\n return Object.keys(stackGroups).reduce(function (result, axisId) {\n var group = stackGroups[axisId];\n\n if (group.hasStack) {\n group.stackGroups = Object.keys(group.stackGroups).reduce(function (res, stackId) {\n var g = group.stackGroups[stackId];\n return _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\n return _objectSpread({}, result, _defineProperty({}, axisId, group));\n }, {});\n};\n/**\n * get domain of ticks\n * @param {Array} ticks Ticks of axis\n * @param {String} type The type of axis\n * @return {Array} domain\n */\n\nexport var calculateDomainOfTicks = function calculateDomainOfTicks(ticks, type) {\n if (type === 'number') {\n return [_min(ticks), _max(ticks)];\n }\n\n return ticks;\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 */\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\n if (scaleType !== 'auto' && scaleType !== 'linear') {\n return null;\n }\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 var tickValues = getNiceTickValues(domain, tickCount, allowDecimals);\n scale.domain(calculateDomainOfTicks(tickValues, type));\n return {\n niceTicks: tickValues\n };\n }\n\n if (tickCount && type === 'number') {\n var _domain = scale.domain();\n\n var _tickValues = getTickValuesFixedDomain(_domain, tickCount, allowDecimals);\n\n return {\n niceTicks: _tickValues\n };\n }\n\n return null;\n};\nexport var getCateCoordinateOfLine = function getCateCoordinateOfLine(_ref6) {\n var axis = _ref6.axis,\n ticks = _ref6.ticks,\n bandSize = _ref6.bandSize,\n entry = _ref6.entry,\n index = _ref6.index,\n dataKey = _ref6.dataKey;\n\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\n if (matchedTick) {\n return matchedTick.coordinate + bandSize / 2;\n }\n }\n\n return ticks[index] ? ticks[index].coordinate + bandSize / 2 : null;\n }\n\n var value = getValueByDataKey(entry, !_isNil(dataKey) ? dataKey : axis.dataKey);\n return !_isNil(value) ? axis.scale(value) : null;\n};\nexport var getCateCoordinateOfBar = function getCateCoordinateOfBar(_ref7) {\n var axis = _ref7.axis,\n ticks = _ref7.ticks,\n offset = _ref7.offset,\n bandSize = _ref7.bandSize,\n entry = _ref7.entry,\n index = _ref7.index;\n\n if (axis.type === 'category') {\n return ticks[index] ? ticks[index].coordinate + offset : null;\n }\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(_ref8) {\n var numericAxis = _ref8.numericAxis;\n var domain = numericAxis.scale.domain();\n\n if (numericAxis.type === 'number') {\n var min = Math.min(domain[0], domain[1]);\n var max = Math.max(domain[0], domain[1]);\n\n if (min <= 0 && max >= 0) {\n return 0;\n }\n\n if (max < 0) {\n return max;\n }\n\n return min;\n }\n\n return domain[0];\n};\nexport var getStackedDataOfItem = function getStackedDataOfItem(item, stackGroups) {\n var stackId = item.props.stackId;\n\n if (isNumOrStr(stackId)) {\n var group = stackGroups[stackId];\n\n if (group && group.items.length) {\n var itemIndex = -1;\n\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\n return itemIndex >= 0 ? group.stackedData[itemIndex] : null;\n }\n }\n\n return null;\n};\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};\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 (!_isArray(specifiedDomain)) {\n return dataDomain;\n }\n\n var domain = [];\n /* eslint-disable prefer-destructuring */\n\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\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\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\n return domain;\n};\n/**\n * Calculate the size between two category\n * @param {Object} axis The options of axis\n * @param {Array} ticks The ticks of axis\n * @return {Number} Size\n */\n\nexport var getBandSizeOfAxis = function getBandSizeOfAxis(axis, ticks) {\n if (axis && axis.scale && axis.scale.bandwidth) {\n return axis.scale.bandwidth();\n }\n\n if (axis && ticks && ticks.length >= 2) {\n var orderedTicks = _sortBy(ticks, function (o) {\n return o.coordinate;\n });\n\n var bandSize = Infinity;\n\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\n return bandSize === Infinity ? 0 : bandSize;\n }\n\n return 0;\n};\n/**\n * parse the domain of a category axis when a domain is specified\n * @param {Array} specifiedDomain The domain specified by users\n * @param {Array} calculatedDomain The domain calculated by dateKey\n * @param {ReactElement} axisChild The axis element\n * @returns {Array} domains\n */\n\nexport var parseDomainOfCategoryAxis = function parseDomainOfCategoryAxis(specifiedDomain, calculatedDomain, axisChild) {\n if (!specifiedDomain || !specifiedDomain.length) {\n return calculatedDomain;\n }\n\n if (_isEqual(specifiedDomain, _get(axisChild, 'type.defaultProps.domain'))) {\n return calculatedDomain;\n }\n\n return specifiedDomain;\n};","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 _isNil from \"lodash/isNil\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { 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\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 * 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 */\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\n if (_isNil(axis.range)) {\n if (axisType === 'angleAxis') {\n range = [startAngle, endAngle];\n } else if (axisType === 'radiusAxis') {\n range = [innerRadius, outerRadius];\n }\n\n if (reversed) {\n range = [range[1], range[0]];\n }\n } else {\n range = axis.range;\n var _range = range;\n\n var _range2 = _slicedToArray(_range, 2);\n\n startAngle = _range2[0];\n endAngle = _range2[1];\n }\n\n var _parseScale = parseScale(axis, chartName),\n realScaleType = _parseScale.realScaleType,\n scale = _parseScale.scale;\n\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread({}, axis, {\n realScaleType: realScaleType\n }));\n\n var finalAxis = _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\n return _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\n if (radius <= 0) {\n return {\n radius: radius\n };\n }\n\n var cos = (x - cx) / radius;\n var angleInRadian = Math.acos(cos);\n\n if (y > cy) {\n angleInRadian = 2 * Math.PI - angleInRadian;\n }\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};\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};\n\nexport var inRangeOfSector = function inRangeOfSector(_ref5, sector) {\n var x = _ref5.x,\n y = _ref5.y;\n\n var _getAngleOfPoint = getAngleOfPoint({\n x: x,\n y: y\n }, sector),\n radius = _getAngleOfPoint.radius,\n angle = _getAngleOfPoint.angle;\n\n var innerRadius = sector.innerRadius,\n outerRadius = sector.outerRadius;\n\n if (radius < innerRadius || radius > outerRadius) {\n return false;\n }\n\n if (radius === 0) {\n return true;\n }\n\n var _formatAngleOfSector = formatAngleOfSector(sector),\n startAngle = _formatAngleOfSector.startAngle,\n endAngle = _formatAngleOfSector.endAngle;\n\n var formatAngle = angle;\n var inRange;\n\n if (startAngle <= endAngle) {\n while (formatAngle > endAngle) {\n formatAngle -= 360;\n }\n\n while (formatAngle < startAngle) {\n formatAngle += 360;\n }\n\n inRange = formatAngle >= startAngle && formatAngle <= endAngle;\n } else {\n while (formatAngle > startAngle) {\n formatAngle -= 360;\n }\n\n while (formatAngle < endAngle) {\n formatAngle += 360;\n }\n\n inRange = formatAngle >= endAngle && formatAngle <= startAngle;\n }\n\n if (inRange) {\n return _objectSpread({}, sector, {\n radius: radius,\n angle: reverseFormatAngleOfSetor(formatAngle, sector)\n });\n }\n\n return null;\n};","import _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport React, { cloneElement, isValidElement } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Text from './Text';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes, findAllByType, filterEventAttributes } from '../util/ReactUtils';\nimport { isNumOrStr, isNumber, isPercent, getPercentValue, uniqueId, mathSign } from '../util/DataUtils';\nimport { polarToCartesian } from '../util/PolarUtils';\nvar cartesianViewBoxShape = PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number\n});\nvar polarViewBoxShape = PropTypes.shape({\n cx: PropTypes.number,\n cy: PropTypes.number,\n innerRadius: PropTypes.number,\n outerRadius: PropTypes.number,\n startAngle: PropTypes.number,\n endAngle: PropTypes.number\n});\n\nvar propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n viewBox: PropTypes.oneOfType([cartesianViewBoxShape, polarViewBoxShape]),\n formatter: PropTypes.func,\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n offset: PropTypes.number,\n position: PropTypes.oneOf(['top', 'left', 'right', 'bottom', 'inside', 'outside', 'insideLeft', 'insideRight', 'insideTop', 'insideBottom', 'insideTopLeft', 'insideBottomLeft', 'insideTopRight', 'insideBottomRight', 'insideStart', 'insideEnd', 'end', 'center', 'centerTop', 'centerBottom']),\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n className: PropTypes.string,\n content: PropTypes.oneOfType([PropTypes.element, PropTypes.func])\n});\n\nvar defaultProps = {\n offset: 5\n};\n\nvar getLabel = function getLabel(props) {\n var value = props.value,\n formatter = props.formatter;\n var label = _isNil(props.children) ? value : props.children;\n\n if (_isFunction(formatter)) {\n return formatter(label);\n }\n\n return label;\n};\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};\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 cx = viewBox.cx,\n cy = viewBox.cy,\n innerRadius = viewBox.innerRadius,\n outerRadius = viewBox.outerRadius,\n startAngle = viewBox.startAngle,\n endAngle = viewBox.endAngle,\n clockWise = viewBox.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\n if (position === 'insideStart') {\n labelAngle = startAngle + sign * offset;\n direction = clockWise;\n } else if (position === 'insideEnd') {\n labelAngle = endAngle - sign * offset;\n direction = !clockWise;\n } else if (position === 'end') {\n labelAngle = endAngle + sign * offset;\n direction = clockWise;\n }\n\n direction = deltaAngle <= 0 ? direction : !direction;\n 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 React.createElement(\"text\", _extends({}, attrs, {\n dominantBaseline: \"central\",\n className: classNames('recharts-radial-bar-label', className)\n }), React.createElement(\"defs\", null, React.createElement(\"path\", {\n id: id,\n d: path\n })), React.createElement(\"textPath\", {\n xlinkHref: \"#\".concat(id)\n }, label));\n};\n\nvar getAttrsOfPolarLabel = function getAttrsOfPolarLabel(props) {\n var viewBox = props.viewBox,\n offset = props.offset,\n position = props.position;\n var cx = viewBox.cx,\n cy = viewBox.cy,\n innerRadius = viewBox.innerRadius,\n outerRadius = viewBox.outerRadius,\n startAngle = viewBox.startAngle,\n endAngle = viewBox.endAngle;\n var midAngle = (startAngle + endAngle) / 2;\n\n if (position === 'outside') {\n var _polarToCartesian = polarToCartesian(cx, cy, outerRadius + offset, midAngle),\n _x = _polarToCartesian.x,\n _y = _polarToCartesian.y;\n\n return {\n x: _x,\n y: _y,\n textAnchor: _x >= cx ? 'start' : 'end',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'center') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'centerTop') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n\n if (position === 'centerBottom') {\n return {\n x: cx,\n y: cy,\n textAnchor: 'middle',\n verticalAnchor: 'end'\n };\n }\n\n var r = (innerRadius + outerRadius) / 2;\n\n var _polarToCartesian2 = polarToCartesian(cx, cy, r, midAngle),\n x = _polarToCartesian2.x,\n y = _polarToCartesian2.y;\n\n return {\n x: x,\n y: y,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n};\n\nvar getAttrsOfCartesianLabel = function getAttrsOfCartesianLabel(props) {\n var viewBox = props.viewBox,\n offset = props.offset,\n position = props.position;\n var x = viewBox.x,\n y = viewBox.y,\n width = viewBox.width,\n height = viewBox.height;\n var sign = height >= 0 ? 1 : -1;\n\n if (position === 'top') {\n return {\n x: x + width / 2,\n y: y - sign * offset,\n textAnchor: 'middle',\n verticalAnchor: sign > 0 ? 'end' : 'start'\n };\n }\n\n if (position === 'bottom') {\n return {\n x: x + width / 2,\n y: y + height + sign * offset,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n\n if (position === 'left') {\n return {\n x: x - offset,\n y: y + height / 2,\n textAnchor: 'end',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'right') {\n return {\n x: x + width + offset,\n y: y + height / 2,\n textAnchor: 'start',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'insideLeft') {\n return {\n x: x + offset,\n y: y + height / 2,\n textAnchor: 'start',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'insideRight') {\n return {\n x: x + width - offset,\n y: y + height / 2,\n textAnchor: 'end',\n verticalAnchor: 'middle'\n };\n }\n\n if (position === 'insideTop') {\n return {\n x: x + width / 2,\n y: y + sign * offset,\n textAnchor: 'middle',\n verticalAnchor: 'start'\n };\n }\n\n if (position === 'insideBottom') {\n return {\n x: x + width / 2,\n y: y + height - sign * offset,\n textAnchor: 'middle',\n verticalAnchor: 'end'\n };\n }\n\n if (position === 'insideTopLeft') {\n return {\n x: x + offset,\n y: y + sign * offset,\n textAnchor: 'start',\n verticalAnchor: 'start'\n };\n }\n\n if (position === 'insideTopRight') {\n return {\n x: x + width - offset,\n y: y + sign * offset,\n textAnchor: 'end',\n verticalAnchor: 'start'\n };\n }\n\n if (position === 'insideBottomLeft') {\n return {\n x: x + offset,\n y: y + height - sign * offset,\n textAnchor: 'start',\n verticalAnchor: 'end'\n };\n }\n\n if (position === 'insideBottomRight') {\n return {\n x: x + width - offset,\n y: y + height - sign * offset,\n textAnchor: 'end',\n verticalAnchor: 'end'\n };\n }\n\n if (_isObject(position) && (isNumber(position.x) || isPercent(position.x)) && (isNumber(position.y) || isPercent(position.y))) {\n return {\n x: x + getPercentValue(position.x, width),\n y: y + getPercentValue(position.y, height),\n textAnchor: 'end',\n verticalAnchor: 'end'\n };\n }\n\n return {\n x: x + width / 2,\n y: y + height / 2,\n textAnchor: 'middle',\n verticalAnchor: 'middle'\n };\n};\n\nvar isPolar = function isPolar(viewBox) {\n return isNumber(viewBox.cx);\n};\n\nfunction 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\n if (!viewBox || _isNil(value) && _isNil(children) && !isValidElement(content) && !_isFunction(content)) {\n return null;\n }\n\n if (isValidElement(content)) {\n return cloneElement(content, props);\n }\n\n var label;\n\n if (_isFunction(content)) {\n label = content(props);\n\n if (isValidElement(label)) {\n return label;\n }\n } else {\n label = getLabel(props);\n }\n\n var isPolarLabel = isPolar(viewBox);\n var attrs = getPresentationAttributes(props);\n var events = filterEventAttributes(props);\n\n if (isPolarLabel && (position === 'insideStart' || position === 'insideEnd' || position === 'end')) {\n return renderRadialLabel(props, label, attrs);\n }\n\n var positionAttrs = isPolarLabel ? getAttrsOfPolarLabel(props) : getAttrsOfCartesianLabel(props);\n return React.createElement(Text, _extends({\n className: classNames('recharts-label', className)\n }, attrs, positionAttrs, events), label);\n}\n\nLabel.displayName = 'Label';\nLabel.defaultProps = defaultProps;\nLabel.propTypes = propTypes;\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\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\n if (isNumber(top) && isNumber(left)) {\n return {\n x: top,\n y: left,\n width: width,\n height: height\n };\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\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\n if (props.viewBox) {\n return props.viewBox;\n }\n\n return {};\n};\n\nvar parseLabel = function parseLabel(label, viewBox) {\n if (!label) {\n return null;\n }\n\n if (label === true) {\n return React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox\n });\n }\n\n if (isNumOrStr(label)) {\n return React.createElement(Label, {\n key: \"label-implicit\",\n viewBox: viewBox,\n value: label\n });\n }\n\n if (isValidElement(label)) {\n if (label.type === Label) {\n return cloneElement(label, {\n key: 'label-implicit',\n viewBox: viewBox\n });\n }\n\n return React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n\n if (_isFunction(label)) {\n return React.createElement(Label, {\n key: \"label-implicit\",\n content: label,\n viewBox: viewBox\n });\n }\n\n if (_isObject(label)) {\n return React.createElement(Label, _extends({\n viewBox: viewBox\n }, label, {\n key: \"label-implicit\"\n }));\n }\n\n return null;\n};\n\nvar renderCallByParent = function renderCallByParent(parentProps, viewBox) {\n var ckeckPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (!parentProps || !parentProps.children && ckeckPropsLabel && !parentProps.label) {\n return null;\n }\n\n var children = parentProps.children;\n var parentViewBox = parseViewBox(parentProps);\n var explicitChilren = findAllByType(children, Label).map(function (child, index) {\n return cloneElement(child, {\n viewBox: viewBox || parentViewBox,\n key: \"label-\".concat(index)\n });\n });\n\n if (!ckeckPropsLabel) {\n return explicitChilren;\n }\n\n var implicitLabel = parseLabel(parentProps.label, viewBox || parentViewBox);\n return [implicitLabel].concat(_toConsumableArray(explicitChilren));\n};\n\nLabel.parseViewBox = parseViewBox;\nLabel.renderCallByParent = renderCallByParent;\nexport default Label;","import _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\nimport _last from \"lodash/last\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _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; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport React, { cloneElement } from 'react';\nimport PropTypes from 'prop-types';\nimport Label from './Label';\nimport Layer from '../container/Layer';\nimport { getPresentationAttributes, findAllByType } from '../util/ReactUtils';\nimport { getValueByDataKey } from '../util/ChartUtils';\nvar propTypes = {\n id: PropTypes.string,\n data: PropTypes.arrayOf(PropTypes.object),\n valueAccessor: PropTypes.func,\n clockWise: PropTypes.bool,\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func])\n};\nvar defaultProps = {\n valueAccessor: function valueAccessor(entry) {\n return _isArray(entry.value) ? _last(entry.value) : entry.value;\n }\n};\n\nfunction LabelList(props) {\n var data = props.data,\n valueAccessor = props.valueAccessor,\n dataKey = props.dataKey,\n clockWise = props.clockWise,\n id = props.id,\n others = _objectWithoutProperties(props, [\"data\", \"valueAccessor\", \"dataKey\", \"clockWise\", \"id\"]);\n\n if (!data || !data.length) {\n return null;\n }\n\n return 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 React.createElement(Label, _extends({}, getPresentationAttributes(entry), others, idProps, {\n index: index,\n value: value,\n viewBox: Label.parseViewBox(_isNil(clockWise) ? entry : _objectSpread({}, entry, {\n clockWise: clockWise\n })),\n key: \"label-\".concat(index) // eslint-disable-line react/no-array-index-key\n\n }));\n }));\n}\n\nLabelList.propTypes = propTypes;\nLabelList.displayName = 'LabelList';\n\nvar parseLabelList = function parseLabelList(label, data) {\n if (!label) {\n return null;\n }\n\n if (label === true) {\n return React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data\n });\n }\n\n if (React.isValidElement(label) || _isFunction(label)) {\n return React.createElement(LabelList, {\n key: \"labelList-implicit\",\n data: data,\n content: label\n });\n }\n\n if (_isObject(label)) {\n return React.createElement(LabelList, _extends({\n data: data\n }, label, {\n key: \"labelList-implicit\"\n }));\n }\n\n return null;\n};\n\nvar renderCallByParent = function renderCallByParent(parentProps, data) {\n var ckeckPropsLabel = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n\n if (!parentProps || !parentProps.children && ckeckPropsLabel && !parentProps.label) {\n return null;\n }\n\n var children = parentProps.children;\n var explicitChilren = findAllByType(children, LabelList).map(function (child, index) {\n return cloneElement(child, {\n data: data,\n key: \"labelList-\".concat(index)\n });\n });\n\n if (!ckeckPropsLabel) {\n return explicitChilren;\n }\n\n var implicitLabelList = parseLabelList(parentProps.label, data);\n return [implicitLabelList].concat(_toConsumableArray(explicitChilren));\n};\n\nLabelList.renderCallByParent = renderCallByParent;\nLabelList.defaultProps = defaultProps;\nexport default LabelList;","import _isEqual from \"lodash/isEqual\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isNil from \"lodash/isNil\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Line\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport Animate from 'react-smooth';\nimport classNames from 'classnames';\nimport Curve from '../shape/Curve';\nimport Dot from '../shape/Dot';\nimport Layer from '../container/Layer';\nimport LabelList from '../component/LabelList';\nimport ErrorBar from './ErrorBar';\nimport { uniqueId, interpolateNumber } from '../util/DataUtils';\nimport { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, LEGEND_TYPES, TOOLTIP_TYPES, filterEventAttributes, getPresentationAttributes, isSsr, findAllByType } from '../util/ReactUtils';\nimport { getCateCoordinateOfLine, getValueByDataKey } from '../util/ChartUtils';\n\nvar Line =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(Line, _PureComponent);\n\n function Line() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Line);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Line)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n isAnimationFinished: true,\n totalLength: 0\n };\n _this.id = uniqueId('recharts-line-');\n\n _this.cachePrevData = function (points) {\n _this.setState({\n prevPoints: points\n });\n };\n\n _this.pathRef = function (node) {\n _this.mainCurve = node;\n };\n\n _this.handleAnimationEnd = function () {\n _this.setState({\n isAnimationFinished: true\n });\n\n _this.props.onAnimationEnd();\n };\n\n _this.handleAnimationStart = function () {\n _this.setState({\n isAnimationFinished: false\n });\n\n _this.props.onAnimationStart();\n };\n\n return _this;\n }\n\n _createClass(Line, [{\n key: \"componentDidMount\",\n\n /* eslint-disable react/no-did-mount-set-state */\n value: function componentDidMount() {\n if (!this.props.isAnimationActive) {\n return;\n }\n\n var totalLength = this.getTotalLength();\n this.setState({\n totalLength: totalLength\n });\n } // eslint-disable-next-line camelcase\n\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this$props = this.props,\n animationId = _this$props.animationId,\n points = _this$props.points;\n\n if (nextProps.animationId !== animationId) {\n this.cachePrevData(points);\n }\n }\n }, {\n key: \"getTotalLength\",\n value: function getTotalLength() {\n var curveDom = this.mainCurve;\n\n try {\n return curveDom && curveDom.getTotalLength && curveDom.getTotalLength() || 0;\n } catch (err) {\n return 0;\n }\n }\n }, {\n key: \"getStrokeDasharray\",\n value: function getStrokeDasharray(length, totalLength, lines) {\n var lineLength = lines.reduce(function (pre, next) {\n return pre + next;\n });\n var count = parseInt(length / lineLength, 10);\n var remainLength = length % lineLength;\n var restLength = totalLength - length;\n var remainLines = [];\n\n for (var i = 0, sum = 0;; sum += lines[i], ++i) {\n if (sum + lines[i] > remainLength) {\n remainLines = [].concat(_toConsumableArray(lines.slice(0, i)), [remainLength - sum]);\n break;\n }\n }\n\n var emptyLines = remainLines.length % 2 === 0 ? [0, restLength] : [restLength];\n return [].concat(_toConsumableArray(this.constructor.repeat(lines, count)), _toConsumableArray(remainLines), emptyLines).map(function (line) {\n return \"\".concat(line, \"px\");\n }).join(', ');\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar() {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n\n var _this$props2 = this.props,\n points = _this$props2.points,\n xAxis = _this$props2.xAxis,\n yAxis = _this$props2.yAxis,\n layout = _this$props2.layout,\n children = _this$props2.children;\n var errorBarItems = findAllByType(children, ErrorBar);\n\n if (!errorBarItems) {\n return null;\n }\n\n function dataPointFormatter(dataPoint, dataKey) {\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: dataPoint.value,\n errorVal: getValueByDataKey(dataPoint.payload, dataKey)\n };\n }\n\n return errorBarItems.map(function (item, i) {\n return React.cloneElement(item, {\n key: i,\n // eslint-disable-line react/no-array-index-key\n data: points,\n xAxis: xAxis,\n yAxis: yAxis,\n layout: layout,\n dataPointFormatter: dataPointFormatter\n });\n });\n }\n }, {\n key: \"renderDots\",\n value: function renderDots(needClip, clipPathId) {\n var _this2 = this;\n\n var isAnimationActive = this.props.isAnimationActive;\n\n if (isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n\n var _this$props3 = this.props,\n dot = _this$props3.dot,\n points = _this$props3.points,\n dataKey = _this$props3.dataKey;\n var lineProps = getPresentationAttributes(this.props);\n var customDotProps = getPresentationAttributes(dot);\n var dotEvents = filterEventAttributes(dot);\n var dots = points.map(function (entry, i) {\n var dotProps = _objectSpread({\n key: \"dot-\".concat(i),\n r: 3\n }, lineProps, {}, customDotProps, {}, dotEvents, {\n value: entry.value,\n dataKey: dataKey,\n cx: entry.x,\n cy: entry.y,\n index: i,\n payload: entry.payload\n });\n\n return _this2.constructor.renderDotItem(dot, dotProps);\n });\n var dotsProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n };\n return React.createElement(Layer, _extends({\n className: \"recharts-line-dots\",\n key: \"dots\"\n }, dotsProps), dots);\n }\n }, {\n key: \"renderCurveStatically\",\n value: function renderCurveStatically(points, needClip, clipPathId, props) {\n var _this$props4 = this.props,\n type = _this$props4.type,\n layout = _this$props4.layout,\n connectNulls = _this$props4.connectNulls;\n\n var curveProps = _objectSpread({}, getPresentationAttributes(this.props), {}, filterEventAttributes(this.props), {\n fill: 'none',\n className: 'recharts-line-curve',\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null,\n points: points\n }, props, {\n type: type,\n layout: layout,\n connectNulls: connectNulls\n });\n\n return React.createElement(Curve, _extends({}, curveProps, {\n pathRef: this.pathRef\n }));\n }\n }, {\n key: \"renderCurveWithAnimation\",\n value: function renderCurveWithAnimation(needClip, clipPathId) {\n var _this3 = this;\n\n var _this$props5 = this.props,\n points = _this$props5.points,\n strokeDasharray = _this$props5.strokeDasharray,\n isAnimationActive = _this$props5.isAnimationActive,\n animationBegin = _this$props5.animationBegin,\n animationDuration = _this$props5.animationDuration,\n animationEasing = _this$props5.animationEasing,\n animationId = _this$props5.animationId,\n width = _this$props5.width,\n height = _this$props5.height;\n var _this$state = this.state,\n prevPoints = _this$state.prevPoints,\n totalLength = _this$state.totalLength;\n return React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"line-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n\n if (prevPoints) {\n var prevPointsDiffFactor = prevPoints.length / points.length;\n var stepData = points.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n\n if (prevPoints[prevPointIndex]) {\n var prev = prevPoints[prevPointIndex];\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n return _objectSpread({}, entry, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n } // magic number of faking previous x and y location\n\n\n if (_this3.animateNewValues) {\n var _interpolatorX = interpolateNumber(width * 2, entry.x);\n\n var _interpolatorY = interpolateNumber(height / 2, entry.y);\n\n return _objectSpread({}, entry, {\n x: _interpolatorX(t),\n y: _interpolatorY(t)\n });\n }\n\n return _objectSpread({}, entry, {\n x: entry.x,\n y: entry.y\n });\n });\n return _this3.renderCurveStatically(stepData, needClip, clipPathId);\n }\n\n var interpolator = interpolateNumber(0, totalLength);\n var curLength = interpolator(t);\n var currentStrokeDasharray;\n\n if (strokeDasharray) {\n var lines = strokeDasharray.split(/[,\\s]+/gim).map(function (num) {\n return parseFloat(num);\n });\n currentStrokeDasharray = _this3.getStrokeDasharray(curLength, totalLength, lines);\n } else {\n currentStrokeDasharray = \"\".concat(curLength, \"px \").concat(totalLength - curLength, \"px\");\n }\n\n return _this3.renderCurveStatically(points, needClip, clipPathId, {\n strokeDasharray: currentStrokeDasharray\n });\n });\n }\n }, {\n key: \"renderCurve\",\n value: function renderCurve(needClip, clipPathId) {\n var _this$props6 = this.props,\n points = _this$props6.points,\n isAnimationActive = _this$props6.isAnimationActive;\n var _this$state2 = this.state,\n prevPoints = _this$state2.prevPoints,\n totalLength = _this$state2.totalLength;\n\n if (isAnimationActive && points && points.length && (!prevPoints && totalLength > 0 || !_isEqual(prevPoints, points))) {\n return this.renderCurveWithAnimation(needClip, clipPathId);\n }\n\n return this.renderCurveStatically(points, needClip, clipPathId);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props7 = this.props,\n hide = _this$props7.hide,\n dot = _this$props7.dot,\n points = _this$props7.points,\n className = _this$props7.className,\n xAxis = _this$props7.xAxis,\n yAxis = _this$props7.yAxis,\n top = _this$props7.top,\n left = _this$props7.left,\n width = _this$props7.width,\n height = _this$props7.height,\n isAnimationActive = _this$props7.isAnimationActive,\n id = _this$props7.id;\n\n if (hide || !points || !points.length) {\n return null;\n }\n\n var isAnimationFinished = this.state.isAnimationFinished;\n var hasSinglePoint = points.length === 1;\n var layerClass = classNames('recharts-line', className);\n var needClip = xAxis && xAxis.allowDataOverflow || yAxis && yAxis.allowDataOverflow;\n var clipPathId = _isNil(id) ? this.id : id;\n return React.createElement(Layer, {\n className: layerClass\n }, needClip ? React.createElement(\"defs\", null, React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, React.createElement(\"rect\", {\n x: left,\n y: top,\n width: width,\n height: height\n }))) : null, !hasSinglePoint && this.renderCurve(needClip, clipPathId), this.renderErrorBar(), (hasSinglePoint || dot) && this.renderDots(needClip, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, points));\n }\n }], [{\n key: \"repeat\",\n value: function repeat(lines, count) {\n var linesUnit = lines.length % 2 !== 0 ? [].concat(_toConsumableArray(lines), [0]) : lines;\n var result = [];\n\n for (var i = 0; i < count; ++i) {\n result = [].concat(_toConsumableArray(result), _toConsumableArray(linesUnit));\n }\n\n return result;\n }\n }, {\n key: \"renderDotItem\",\n value: function renderDotItem(option, props) {\n var dotItem;\n\n if (React.isValidElement(option)) {\n dotItem = React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n dotItem = option(props);\n } else {\n var className = classNames('recharts-line-dot', option ? option.className : '');\n dotItem = React.createElement(Dot, _extends({}, props, {\n className: className\n }));\n }\n\n return dotItem;\n }\n }]);\n\n return Line;\n}(PureComponent);\n\nLine.displayName = 'Line';\nLine.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {}, EVENT_ATTRIBUTES, {\n className: PropTypes.string,\n type: PropTypes.oneOfType([PropTypes.oneOf(['basis', 'basisClosed', 'basisOpen', 'linear', 'linearClosed', 'natural', 'monotoneX', 'monotoneY', 'monotone', 'step', 'stepBefore', 'stepAfter']), PropTypes.func]),\n unit: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n name: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n yAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n xAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n yAxis: PropTypes.object,\n xAxis: PropTypes.object,\n legendType: PropTypes.oneOf(LEGEND_TYPES),\n tooltipType: PropTypes.oneOf(TOOLTIP_TYPES),\n layout: PropTypes.oneOf(['horizontal', 'vertical']),\n connectNulls: PropTypes.bool,\n hide: PropTypes.bool,\n // whether have dot in line\n activeDot: PropTypes.oneOfType([PropTypes.object, PropTypes.element, PropTypes.func, PropTypes.bool]),\n dot: PropTypes.oneOfType([PropTypes.object, PropTypes.element, PropTypes.func, PropTypes.bool]),\n top: PropTypes.number,\n left: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n points: PropTypes.arrayOf(PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n value: PropTypes.value\n })),\n onAnimationStart: PropTypes.func,\n onAnimationEnd: PropTypes.func,\n isAnimationActive: PropTypes.bool,\n animateNewValues: PropTypes.bool,\n animationBegin: PropTypes.number,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']),\n animationId: PropTypes.number,\n id: PropTypes.string\n});\nLine.defaultProps = {\n xAxisId: 0,\n yAxisId: 0,\n connectNulls: false,\n activeDot: true,\n dot: true,\n legendType: 'line',\n stroke: '#3182bd',\n strokeWidth: 1,\n fill: '#fff',\n points: [],\n isAnimationActive: !isSsr(),\n animateNewValues: true,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease',\n hide: false,\n onAnimationStart: function onAnimationStart() {},\n onAnimationEnd: function onAnimationEnd() {}\n};\n\nLine.getComposedData = function (_ref2) {\n var props = _ref2.props,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n dataKey = _ref2.dataKey,\n bandSize = _ref2.bandSize,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var layout = props.layout;\n var points = displayedData.map(function (entry, index) {\n var value = getValueByDataKey(entry, dataKey);\n\n if (layout === 'horizontal') {\n return {\n x: getCateCoordinateOfLine({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n y: _isNil(value) ? null : yAxis.scale(value),\n value: value,\n payload: entry\n };\n }\n\n return {\n x: _isNil(value) ? null : xAxis.scale(value),\n y: getCateCoordinateOfLine({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n value: value,\n payload: entry\n };\n });\n return _objectSpread({\n points: points,\n layout: layout\n }, offset);\n};\n\nexport default Line;","import _isEqual from \"lodash/isEqual\";\nimport _isNaN from \"lodash/isNaN\";\nimport _max from \"lodash/max\";\nimport _isFunction from \"lodash/isFunction\";\nimport _get from \"lodash/get\";\nimport _isNil from \"lodash/isNil\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Area\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport Curve from '../shape/Curve';\nimport Dot from '../shape/Dot';\nimport Layer from '../container/Layer';\nimport LabelList from '../component/LabelList';\nimport { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, LEGEND_TYPES, TOOLTIP_TYPES, getPresentationAttributes, isSsr, filterEventAttributes } from '../util/ReactUtils';\nimport { isNumber, uniqueId, interpolateNumber } from '../util/DataUtils';\nimport { getCateCoordinateOfLine, getValueByDataKey } from '../util/ChartUtils';\n\nvar Area =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(Area, _PureComponent);\n\n function Area() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Area);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Area)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n isAnimationFinished: true\n };\n _this.id = uniqueId('recharts-area-');\n\n _this.cachePrevData = function (points, baseLine) {\n _this.setState({\n prevPoints: points,\n prevBaseLine: baseLine\n });\n };\n\n _this.handleAnimationEnd = function () {\n var onAnimationEnd = _this.props.onAnimationEnd;\n\n _this.setState({\n isAnimationFinished: true\n });\n\n if (_isFunction(onAnimationEnd)) {\n onAnimationEnd();\n }\n };\n\n _this.handleAnimationStart = function () {\n var onAnimationStart = _this.props.onAnimationStart;\n\n _this.setState({\n isAnimationFinished: false\n });\n\n if (_isFunction(onAnimationStart)) {\n onAnimationStart();\n }\n };\n\n return _this;\n }\n\n _createClass(Area, [{\n key: \"componentWillReceiveProps\",\n // eslint-disable-next-line camelcase\n value: function componentWillReceiveProps(nextProps) {\n var _this$props = this.props,\n animationId = _this$props.animationId,\n points = _this$props.points,\n baseLine = _this$props.baseLine;\n\n if (nextProps.animationId !== animationId) {\n this.cachePrevData(points, baseLine);\n }\n }\n }, {\n key: \"renderDots\",\n value: function renderDots(needClip, clipPathId) {\n var _this2 = this;\n\n var isAnimationActive = this.props.isAnimationActive;\n var isAnimationFinished = this.state.isAnimationFinished;\n\n if (isAnimationActive && !isAnimationFinished) {\n return null;\n }\n\n var _this$props2 = this.props,\n dot = _this$props2.dot,\n points = _this$props2.points,\n dataKey = _this$props2.dataKey;\n var areaProps = getPresentationAttributes(this.props);\n var customDotProps = getPresentationAttributes(dot);\n var dotEvents = filterEventAttributes(dot);\n var dots = points.map(function (entry, i) {\n var dotProps = _objectSpread({\n key: \"dot-\".concat(i),\n r: 3\n }, areaProps, {}, customDotProps, {}, dotEvents, {\n dataKey: dataKey,\n cx: entry.x,\n cy: entry.y,\n index: i,\n value: entry.value,\n payload: entry.payload\n });\n\n return _this2.constructor.renderDotItem(dot, dotProps);\n });\n var dotsProps = {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n };\n return React.createElement(Layer, _extends({\n className: \"recharts-area-dots\"\n }, dotsProps), dots);\n }\n }, {\n key: \"renderHorizontalRect\",\n value: function renderHorizontalRect(alpha) {\n var _this$props3 = this.props,\n baseLine = _this$props3.baseLine,\n points = _this$props3.points,\n strokeWidth = _this$props3.strokeWidth;\n var startX = points[0].x;\n var endX = points[points.length - 1].x;\n var width = alpha * Math.abs(startX - endX);\n\n var maxY = _max(points.map(function (entry) {\n return entry.y || 0;\n }));\n\n if (isNumber(baseLine)) {\n maxY = Math.max(baseLine, maxY);\n } else if (baseLine && _isArray(baseLine) && baseLine.length) {\n maxY = Math.max(_max(baseLine.map(function (entry) {\n return entry.y || 0;\n })), maxY);\n }\n\n if (isNumber(maxY)) {\n return React.createElement(\"rect\", {\n x: startX < endX ? startX : startX - width,\n y: 0,\n width: width,\n height: parseInt(maxY + (strokeWidth || 1), 10)\n });\n }\n\n return null;\n }\n }, {\n key: \"renderVerticalRect\",\n value: function renderVerticalRect(alpha) {\n var _this$props4 = this.props,\n baseLine = _this$props4.baseLine,\n points = _this$props4.points,\n strokeWidth = _this$props4.strokeWidth;\n var startY = points[0].y;\n var endY = points[points.length - 1].y;\n var height = alpha * Math.abs(startY - endY);\n\n var maxX = _max(points.map(function (entry) {\n return entry.x || 0;\n }));\n\n if (isNumber(baseLine)) {\n maxX = Math.max(baseLine, maxX);\n } else if (baseLine && _isArray(baseLine) && baseLine.length) {\n maxX = Math.max(_max(baseLine.map(function (entry) {\n return entry.x || 0;\n })), maxX);\n }\n\n if (isNumber(maxX)) {\n return React.createElement(\"rect\", {\n x: 0,\n y: startY < endY ? startY : startY - height,\n width: maxX + (strokeWidth || 1),\n height: parseInt(height, 10)\n });\n }\n\n return null;\n }\n }, {\n key: \"renderClipRect\",\n value: function renderClipRect(alpha) {\n var layout = this.props.layout;\n\n if (layout === 'vertical') {\n return this.renderVerticalRect(alpha);\n }\n\n return this.renderHorizontalRect(alpha);\n }\n }, {\n key: \"renderAreaStatically\",\n value: function renderAreaStatically(points, baseLine, needClip, clipPathId) {\n var _this$props5 = this.props,\n layout = _this$props5.layout,\n type = _this$props5.type,\n stroke = _this$props5.stroke,\n connectNulls = _this$props5.connectNulls,\n isRange = _this$props5.isRange;\n return React.createElement(Layer, {\n clipPath: needClip ? \"url(#clipPath-\".concat(clipPathId, \")\") : null\n }, React.createElement(Curve, _extends({}, this.props, {\n points: points,\n baseLine: baseLine,\n stroke: \"none\",\n className: \"recharts-area-area\"\n })), stroke !== 'none' && React.createElement(Curve, _extends({}, getPresentationAttributes(this.props), {\n className: \"recharts-area-curve\",\n layout: layout,\n type: type,\n connectNulls: connectNulls,\n fill: \"none\",\n points: points\n })), stroke !== 'none' && isRange && React.createElement(Curve, _extends({}, getPresentationAttributes(this.props), {\n className: \"recharts-area-curve\",\n layout: layout,\n type: type,\n connectNulls: connectNulls,\n fill: \"none\",\n points: baseLine\n })));\n }\n }, {\n key: \"renderAreaWithAnimation\",\n value: function renderAreaWithAnimation(needClip, clipPathId) {\n var _this3 = this;\n\n var _this$props6 = this.props,\n points = _this$props6.points,\n baseLine = _this$props6.baseLine,\n isAnimationActive = _this$props6.isAnimationActive,\n animationBegin = _this$props6.animationBegin,\n animationDuration = _this$props6.animationDuration,\n animationEasing = _this$props6.animationEasing,\n animationId = _this$props6.animationId;\n var _this$state = this.state,\n prevPoints = _this$state.prevPoints,\n prevBaseLine = _this$state.prevBaseLine; // const clipPathId = _.isNil(id) ? this.id : id;\n\n return React.createElement(Animate, {\n begin: animationBegin,\n duration: animationDuration,\n isActive: isAnimationActive,\n easing: animationEasing,\n from: {\n t: 0\n },\n to: {\n t: 1\n },\n key: \"area-\".concat(animationId),\n onAnimationEnd: this.handleAnimationEnd,\n onAnimationStart: this.handleAnimationStart\n }, function (_ref) {\n var t = _ref.t;\n\n if (prevPoints) {\n var prevPointsDiffFactor = prevPoints.length / points.length; // update animtaion\n\n var stepPoints = points.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n\n if (prevPoints[prevPointIndex]) {\n var prev = prevPoints[prevPointIndex];\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n return _objectSpread({}, entry, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n }\n\n return entry;\n });\n var stepBaseLine;\n\n if (isNumber(baseLine)) {\n var interpolator = interpolateNumber(prevBaseLine, baseLine);\n stepBaseLine = interpolator(t);\n } else if (_isNil(baseLine) || _isNaN(baseLine)) {\n var _interpolator = interpolateNumber(prevBaseLine, 0);\n\n stepBaseLine = _interpolator(t);\n } else {\n stepBaseLine = baseLine.map(function (entry, index) {\n var prevPointIndex = Math.floor(index * prevPointsDiffFactor);\n\n if (prevBaseLine[prevPointIndex]) {\n var prev = prevBaseLine[prevPointIndex];\n var interpolatorX = interpolateNumber(prev.x, entry.x);\n var interpolatorY = interpolateNumber(prev.y, entry.y);\n return _objectSpread({}, entry, {\n x: interpolatorX(t),\n y: interpolatorY(t)\n });\n }\n\n return entry;\n });\n }\n\n return _this3.renderAreaStatically(stepPoints, stepBaseLine, needClip, clipPathId);\n }\n\n return React.createElement(Layer, null, React.createElement(\"defs\", null, React.createElement(\"clipPath\", {\n id: \"animationClipPath-\".concat(clipPathId)\n }, _this3.renderClipRect(t))), React.createElement(Layer, {\n clipPath: \"url(#animationClipPath-\".concat(clipPathId, \")\")\n }, _this3.renderAreaStatically(points, baseLine, needClip, clipPathId)));\n });\n }\n }, {\n key: \"renderArea\",\n value: function renderArea(needClip, clipPathId) {\n var _this$props7 = this.props,\n points = _this$props7.points,\n baseLine = _this$props7.baseLine,\n isAnimationActive = _this$props7.isAnimationActive;\n var _this$state2 = this.state,\n prevPoints = _this$state2.prevPoints,\n prevBaseLine = _this$state2.prevBaseLine,\n totalLength = _this$state2.totalLength;\n\n if (isAnimationActive && points && points.length && (!prevPoints && totalLength > 0 || !_isEqual(prevPoints, points) || !_isEqual(prevBaseLine, baseLine))) {\n return this.renderAreaWithAnimation(needClip, clipPathId);\n }\n\n return this.renderAreaStatically(points, baseLine, needClip, clipPathId);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props8 = this.props,\n hide = _this$props8.hide,\n dot = _this$props8.dot,\n points = _this$props8.points,\n className = _this$props8.className,\n top = _this$props8.top,\n left = _this$props8.left,\n xAxis = _this$props8.xAxis,\n yAxis = _this$props8.yAxis,\n width = _this$props8.width,\n height = _this$props8.height,\n isAnimationActive = _this$props8.isAnimationActive,\n id = _this$props8.id;\n\n if (hide || !points || !points.length) {\n return null;\n }\n\n var isAnimationFinished = this.state.isAnimationFinished;\n var hasSinglePoint = points.length === 1;\n var layerClass = classNames('recharts-area', className);\n var needClip = xAxis && xAxis.allowDataOverflow || yAxis && yAxis.allowDataOverflow;\n var clipPathId = _isNil(id) ? this.id : id;\n return React.createElement(Layer, {\n className: layerClass\n }, needClip ? React.createElement(\"defs\", null, React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, React.createElement(\"rect\", {\n x: left,\n y: top,\n width: width,\n height: parseInt(height, 10)\n }))) : null, !hasSinglePoint ? this.renderArea(needClip, clipPathId) : null, (dot || hasSinglePoint) && this.renderDots(needClip, clipPathId), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, points));\n }\n }]);\n\n return Area;\n}(PureComponent);\n\nArea.displayName = 'Area';\nArea.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {}, EVENT_ATTRIBUTES, {\n className: PropTypes.string,\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]).isRequired,\n type: PropTypes.oneOfType([PropTypes.oneOf(['basis', 'basisClosed', 'basisOpen', 'linear', 'linearClosed', 'natural', 'monotoneX', 'monotoneY', 'monotone', 'step', 'stepBefore', 'stepAfter']), PropTypes.func]),\n unit: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n name: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n yAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n xAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n yAxis: PropTypes.object,\n xAxis: PropTypes.object,\n stackId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n legendType: PropTypes.oneOf(LEGEND_TYPES),\n tooltipType: PropTypes.oneOf(TOOLTIP_TYPES),\n connectNulls: PropTypes.bool,\n activeDot: PropTypes.oneOfType([PropTypes.object, PropTypes.element, PropTypes.func, PropTypes.bool]),\n // dot configuration\n dot: PropTypes.oneOfType([PropTypes.func, PropTypes.element, PropTypes.object, PropTypes.bool]),\n label: PropTypes.oneOfType([PropTypes.func, PropTypes.element, PropTypes.object, PropTypes.bool]),\n hide: PropTypes.bool,\n // have curve configuration\n layout: PropTypes.oneOf(['horizontal', 'vertical']),\n baseLine: PropTypes.oneOfType([PropTypes.number, PropTypes.array]),\n isRange: PropTypes.bool,\n points: PropTypes.arrayOf(PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.array])\n })),\n onAnimationStart: PropTypes.func,\n onAnimationEnd: PropTypes.func,\n animationId: PropTypes.number,\n isAnimationActive: PropTypes.bool,\n animationBegin: PropTypes.number,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']),\n id: PropTypes.string\n});\nArea.defaultProps = {\n stroke: '#3182bd',\n fill: '#3182bd',\n fillOpacity: 0.6,\n xAxisId: 0,\n yAxisId: 0,\n legendType: 'line',\n connectNulls: false,\n // points of area\n points: [],\n dot: false,\n activeDot: true,\n hide: false,\n isAnimationActive: !isSsr(),\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};\n\nArea.getBaseValue = function (props, xAxis, yAxis) {\n var layout = props.layout,\n baseValue = props.baseValue;\n\n if (isNumber(baseValue)) {\n return baseValue;\n }\n\n var numericAxis = layout === 'horizontal' ? yAxis : xAxis;\n var domain = numericAxis.scale.domain();\n\n if (numericAxis.type === 'number') {\n var max = Math.max(domain[0], domain[1]);\n var min = Math.min(domain[0], domain[1]);\n\n if (baseValue === 'dataMin') {\n return min;\n }\n\n if (baseValue === 'dataMax') {\n return max;\n }\n\n return max < 0 ? max : Math.max(Math.min(domain[0], domain[1]), 0);\n }\n\n if (baseValue === 'dataMin') {\n return domain[0];\n }\n\n if (baseValue === 'dataMax') {\n return domain[1];\n }\n\n return domain[0];\n};\n\nArea.getComposedData = function (_ref2) {\n var props = _ref2.props,\n xAxis = _ref2.xAxis,\n yAxis = _ref2.yAxis,\n xAxisTicks = _ref2.xAxisTicks,\n yAxisTicks = _ref2.yAxisTicks,\n bandSize = _ref2.bandSize,\n dataKey = _ref2.dataKey,\n stackedData = _ref2.stackedData,\n dataStartIndex = _ref2.dataStartIndex,\n displayedData = _ref2.displayedData,\n offset = _ref2.offset;\n var layout = props.layout;\n var hasStack = stackedData && stackedData.length;\n var baseValue = Area.getBaseValue(props, xAxis, yAxis);\n var isRange = false;\n var points = displayedData.map(function (entry, index) {\n var value;\n\n if (hasStack) {\n value = stackedData[dataStartIndex + index];\n } else {\n value = getValueByDataKey(entry, dataKey);\n\n if (!_isArray(value)) {\n value = [baseValue, value];\n } else {\n isRange = true;\n }\n }\n\n if (layout === 'horizontal') {\n return {\n x: getCateCoordinateOfLine({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n y: _isNil(value[1]) ? null : yAxis.scale(value[1]),\n value: value,\n payload: entry\n };\n }\n\n return {\n x: _isNil(value[1]) ? null : xAxis.scale(value[1]),\n y: getCateCoordinateOfLine({\n axis: yAxis,\n ticks: yAxisTicks,\n bandSize: bandSize,\n entry: entry,\n index: index\n }),\n value: value,\n payload: entry\n };\n });\n var baseLine;\n\n if (hasStack || isRange) {\n baseLine = points.map(function (entry) {\n if (layout === 'horizontal') {\n return {\n x: entry.x,\n y: !_isNil(_get(entry, 'value[0]')) ? yAxis.scale(_get(entry, 'value[0]')) : null\n };\n }\n\n return {\n x: !_isNil(_get(entry, 'value[0]')) ? xAxis.scale(_get(entry, 'value[0]')) : null,\n y: entry.y\n };\n });\n } else if (layout === 'horizontal') {\n baseLine = yAxis.scale(baseValue);\n } else {\n baseLine = xAxis.scale(baseValue);\n }\n\n return _objectSpread({\n points: points,\n baseLine: baseLine,\n layout: layout,\n isRange: isRange\n }, offset);\n};\n\nArea.renderDotItem = function (option, props) {\n var dotItem;\n\n if (React.isValidElement(option)) {\n dotItem = React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n dotItem = option(props);\n } else {\n dotItem = React.createElement(Dot, _extends({}, props, {\n className: \"recharts-area-dot\"\n }));\n }\n\n return dotItem;\n};\n\nexport default Area;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Rectangle\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Animate from 'react-smooth';\nimport { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, getPresentationAttributes, filterEventAttributes } from '../util/ReactUtils';\n\nvar getRectangePath = function getRectangePath(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\n if (maxRadius > 0 && radius instanceof Array) {\n var newRadius = [];\n\n for (var i = 0, len = 4; i < len; i++) {\n newRadius[i] = radius[i] > maxRadius ? maxRadius : radius[i];\n }\n\n path = \"M\".concat(x, \",\").concat(y + ySign * newRadius[0]);\n\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\n path += \"L \".concat(x + width - xSign * newRadius[1], \",\").concat(y);\n\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\n path += \"L \".concat(x + width, \",\").concat(y + height - ySign * newRadius[2]);\n\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\n path += \"L \".concat(x + xSign * newRadius[3], \",\").concat(y + height);\n\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\n path += 'Z';\n } else if (maxRadius > 0 && radius === +radius && radius > 0) {\n var _newRadius = Math.min(maxRadius, radius);\n\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\n return path;\n};\n\nvar Rectangle =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(Rectangle, _PureComponent);\n\n function Rectangle() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Rectangle);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Rectangle)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n totalLength: -1\n };\n return _this;\n }\n\n _createClass(Rectangle, [{\n key: \"componentDidMount\",\n\n /* eslint-disable react/no-did-mount-set-state */\n value: function componentDidMount() {\n if (this.node && this.node.getTotalLength) {\n try {\n var totalLength = this.node.getTotalLength();\n\n if (totalLength) {\n this.setState({\n totalLength: totalLength\n });\n }\n } catch (err) {// calculate total length error\n }\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n\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\n if (x !== +x || y !== +y || width !== +width || height !== +height || width === 0 || height === 0) {\n return null;\n }\n\n var layerClass = classNames('recharts-rectangle', className);\n\n if (!isUpdateAnimationActive) {\n return React.createElement(\"path\", _extends({}, getPresentationAttributes(this.props), filterEventAttributes(this.props), {\n className: layerClass,\n d: getRectangePath(x, y, width, height, radius)\n }));\n }\n\n return 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 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 }, React.createElement(\"path\", _extends({}, getPresentationAttributes(_this2.props), filterEventAttributes(_this2.props), {\n className: layerClass,\n d: getRectangePath(currX, currY, currWidth, currHeight, radius),\n ref: function ref(node) {\n _this2.node = node;\n }\n })));\n });\n }\n }]);\n\n return Rectangle;\n}(PureComponent);\n\nRectangle.displayName = 'Rectangle';\nRectangle.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {}, EVENT_ATTRIBUTES, {\n className: PropTypes.string,\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n radius: PropTypes.oneOfType([PropTypes.number, PropTypes.array]),\n isAnimationActive: PropTypes.bool,\n isUpdateAnimationActive: PropTypes.bool,\n animationBegin: PropTypes.number,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear'])\n});\nRectangle.defaultProps = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n // The radius of border\n // The radius of four corners when radius is a number\n // The radius of left-top, right-top, right-bottom, left-bottom when radius is an array\n radius: 0,\n isAnimationActive: false,\n isUpdateAnimationActive: false,\n animationBegin: 0,\n animationDuration: 1500,\n animationEasing: 'ease'\n};\nexport default Rectangle;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * @fileOverview Cross\n */\nimport { PRESENTATION_ATTRIBUTES } from '../util/ReactUtils';\n\nfunction Cell() {\n return null;\n}\n\nCell.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES);\nCell.displayName = 'Cell';\nexport default Cell;","import _isNil from \"lodash/isNil\";\nimport _isEqual from \"lodash/isEqual\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isArray from \"lodash/isArray\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\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; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Render a group of bar\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\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 { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, LEGEND_TYPES, TOOLTIP_TYPES, findAllByType, getPresentationAttributes, filterEventsOfChild, isSsr } from '../util/ReactUtils';\nimport { getCateCoordinateOfBar, getValueByDataKey, truncateByDomain, getBaseValueOfBar, findPositionOfBar } from '../util/ChartUtils';\n\nvar Bar =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(Bar, _PureComponent);\n\n function Bar() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, Bar);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(Bar)).call.apply(_getPrototypeOf2, [this].concat(args)));\n _this.state = {\n isAnimationFinished: false\n };\n _this.id = uniqueId('recharts-bar-');\n\n _this.cachePrevData = function (data) {\n _this.setState({\n prevData: data\n });\n };\n\n _this.handleAnimationEnd = function () {\n _this.setState({\n isAnimationFinished: true\n });\n\n _this.props.onAnimationEnd();\n };\n\n _this.handleAnimationStart = function () {\n _this.setState({\n isAnimationFinished: false\n });\n\n _this.props.onAnimationStart();\n };\n\n return _this;\n }\n\n _createClass(Bar, [{\n key: \"componentWillReceiveProps\",\n // eslint-disable-next-line camelcase\n value: function componentWillReceiveProps(nextProps) {\n var _this$props = this.props,\n animationId = _this$props.animationId,\n data = _this$props.data;\n\n if (nextProps.animationId !== animationId) {\n this.cachePrevData(data);\n }\n }\n }, {\n key: \"renderRectanglesStatically\",\n value: function renderRectanglesStatically(data) {\n var _this2 = this;\n\n var shape = this.props.shape;\n var baseProps = getPresentationAttributes(this.props);\n return data && data.map(function (entry, i) {\n var props = _objectSpread({}, baseProps, {}, entry, {\n index: i\n });\n\n return React.createElement(Layer, _extends({\n className: \"recharts-bar-rectangle\"\n }, filterEventsOfChild(_this2.props, entry, i), {\n key: \"rectangle-\".concat(i) // eslint-disable-line react/no-array-index-key\n\n }), _this2.constructor.renderRectangle(shape, props));\n });\n }\n }, {\n key: \"renderRectanglesWithAnimation\",\n value: function renderRectanglesWithAnimation() {\n var _this3 = this;\n\n var _this$props2 = this.props,\n data = _this$props2.data,\n layout = _this$props2.layout,\n isAnimationActive = _this$props2.isAnimationActive,\n animationBegin = _this$props2.animationBegin,\n animationDuration = _this$props2.animationDuration,\n animationEasing = _this$props2.animationEasing,\n animationId = _this$props2.animationId;\n var prevData = this.state.prevData;\n return 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\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({}, entry, {\n x: interpolatorX(t),\n y: interpolatorY(t),\n width: interpolatorWidth(t),\n height: interpolatorHeight(t)\n });\n }\n\n if (layout === 'horizontal') {\n var _interpolatorHeight = interpolateNumber(0, entry.height);\n\n var h = _interpolatorHeight(t);\n\n return _objectSpread({}, entry, {\n y: entry.y + entry.height - h,\n height: h\n });\n }\n\n var interpolator = interpolateNumber(0, entry.width);\n var w = interpolator(t);\n return _objectSpread({}, entry, {\n width: w\n });\n });\n return React.createElement(Layer, null, _this3.renderRectanglesStatically(stepData));\n });\n }\n }, {\n key: \"renderRectangles\",\n value: function renderRectangles() {\n var _this$props3 = this.props,\n data = _this$props3.data,\n isAnimationActive = _this$props3.isAnimationActive;\n var prevData = this.state.prevData;\n\n if (isAnimationActive && data && data.length && (!prevData || !_isEqual(prevData, data))) {\n return this.renderRectanglesWithAnimation();\n }\n\n return this.renderRectanglesStatically(data);\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this4 = this;\n\n var data = this.props.data;\n var backgroundProps = getPresentationAttributes(this.props.background);\n return data.map(function (entry, i) {\n // eslint-disable-next-line no-unused-vars\n var value = entry.value,\n background = entry.background,\n rest = _objectWithoutProperties(entry, [\"value\", \"background\"]);\n\n if (!background) {\n return null;\n }\n\n var props = _objectSpread({}, rest, {\n fill: '#eee'\n }, background, {}, backgroundProps, {}, filterEventsOfChild(_this4.props, entry, i), {\n index: i,\n key: \"background-bar-\".concat(i),\n className: 'recharts-bar-background-rectangle'\n });\n\n return _this4.constructor.renderRectangle(_this4.props.background, props);\n });\n }\n }, {\n key: \"renderErrorBar\",\n value: function renderErrorBar() {\n if (this.props.isAnimationActive && !this.state.isAnimationFinished) {\n return null;\n }\n\n var _this$props4 = this.props,\n data = _this$props4.data,\n xAxis = _this$props4.xAxis,\n yAxis = _this$props4.yAxis,\n layout = _this$props4.layout,\n children = _this$props4.children;\n var errorBarItems = findAllByType(children, ErrorBar);\n\n if (!errorBarItems) {\n return null;\n }\n\n var offset = layout === 'vertical' ? data[0].height / 2 : data[0].width / 2;\n\n function dataPointFormatter(dataPoint, dataKey) {\n return {\n x: dataPoint.x,\n y: dataPoint.y,\n value: dataPoint.value,\n errorVal: getValueByDataKey(dataPoint, dataKey)\n };\n }\n\n return errorBarItems.map(function (item, i) {\n return 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$props5 = this.props,\n hide = _this$props5.hide,\n data = _this$props5.data,\n className = _this$props5.className,\n xAxis = _this$props5.xAxis,\n yAxis = _this$props5.yAxis,\n left = _this$props5.left,\n top = _this$props5.top,\n width = _this$props5.width,\n height = _this$props5.height,\n isAnimationActive = _this$props5.isAnimationActive,\n background = _this$props5.background,\n id = _this$props5.id;\n\n if (hide || !data || !data.length) {\n return null;\n }\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 React.createElement(Layer, {\n className: layerClass\n }, needClip ? React.createElement(\"defs\", null, React.createElement(\"clipPath\", {\n id: \"clipPath-\".concat(clipPathId)\n }, React.createElement(\"rect\", {\n x: left,\n y: top,\n width: width,\n height: height\n }))) : null, 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(), (!isAnimationActive || isAnimationFinished) && LabelList.renderCallByParent(this.props, data));\n }\n }], [{\n key: \"renderRectangle\",\n value: function renderRectangle(option, props) {\n var rectangle;\n\n if (React.isValidElement(option)) {\n rectangle = React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n rectangle = option(props);\n } else {\n rectangle = React.createElement(Rectangle, props);\n }\n\n return rectangle;\n }\n }]);\n\n return Bar;\n}(PureComponent);\n\nBar.displayName = 'Bar';\nBar.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {}, EVENT_ATTRIBUTES, {\n className: PropTypes.string,\n layout: PropTypes.oneOf(['vertical', 'horizontal']),\n xAxisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n yAxisId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n yAxis: PropTypes.object,\n xAxis: PropTypes.object,\n stackId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n barSize: PropTypes.number,\n unit: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n name: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]).isRequired,\n legendType: PropTypes.oneOf(LEGEND_TYPES),\n tooltipType: PropTypes.oneOf(TOOLTIP_TYPES),\n minPointSize: PropTypes.number,\n maxBarSize: PropTypes.number,\n hide: PropTypes.bool,\n shape: PropTypes.oneOfType([PropTypes.func, PropTypes.element]),\n data: PropTypes.arrayOf(PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n radius: PropTypes.oneOfType([PropTypes.number, PropTypes.array]),\n value: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.array])\n })),\n onAnimationStart: PropTypes.func,\n onAnimationEnd: PropTypes.func,\n animationId: PropTypes.number,\n isAnimationActive: PropTypes.bool,\n animationBegin: PropTypes.number,\n animationDuration: PropTypes.number,\n animationEasing: PropTypes.oneOf(['ease', 'ease-in', 'ease-out', 'ease-in-out', 'linear']),\n id: PropTypes.string\n});\nBar.defaultProps = {\n xAxisId: 0,\n yAxisId: 0,\n legendType: 'rect',\n minPointSize: 0,\n hide: false,\n // data of bar\n data: [],\n layout: 'vertical',\n isAnimationActive: !isSsr(),\n animationBegin: 0,\n animationDuration: 400,\n animationEasing: 'ease',\n onAnimationStart: function onAnimationStart() {},\n onAnimationEnd: function onAnimationEnd() {}\n};\n\nBar.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\n if (!pos) {\n return [];\n }\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 props: props,\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\n if (stackedData) {\n value = truncateByDomain(stackedData[dataStartIndex + index], stackedDomain);\n } else {\n value = getValueByDataKey(entry, dataKey);\n\n if (!_isArray(value)) {\n value = [baseValue, value];\n }\n }\n\n if (layout === 'horizontal') {\n x = getCateCoordinateOfBar({\n axis: xAxis,\n ticks: xAxisTicks,\n bandSize: bandSize,\n offset: pos.offset,\n entry: entry,\n index: index\n });\n y = yAxis.scale(value[1]);\n width = pos.size;\n height = yAxis.scale(value[0]) - yAxis.scale(value[1]);\n background = {\n x: x,\n y: yAxis.y,\n width: width,\n height: yAxis.height\n };\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 x = xAxis.scale(value[0]);\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 = xAxis.scale(value[1]) - xAxis.scale(value[0]);\n height = pos.size;\n background = {\n x: xAxis.x,\n y: y,\n width: xAxis.width,\n height: height\n };\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\n width += _delta;\n }\n }\n\n return _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 });\n return _objectSpread({\n data: rects,\n layout: layout\n }, offset);\n};\n\nexport default Bar;","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview X Axis\n */\nimport { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { SCALE_TYPES } from '../util/ReactUtils';\n\nvar XAxis =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(XAxis, _PureComponent);\n\n function XAxis() {\n _classCallCheck(this, XAxis);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(XAxis).apply(this, arguments));\n }\n\n _createClass(XAxis, [{\n key: \"render\",\n value: function render() {\n return null;\n }\n }]);\n\n return XAxis;\n}(PureComponent);\n\nXAxis.displayName = 'XAxis';\nXAxis.propTypes = {\n allowDecimals: PropTypes.bool,\n allowDuplicatedCategory: PropTypes.bool,\n hide: PropTypes.bool,\n // The name of data displayed in the axis\n name: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n // The unit of data displayed in the axis\n unit: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n // The unique id of x-axis\n xAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n domain: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func, PropTypes.oneOf(['auto', 'dataMin', 'dataMax'])])),\n // The key of data displayed in the axis\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),\n // The width of axis which is usually calculated internally\n width: PropTypes.number,\n // The height of axis, which need to be setted by user\n height: PropTypes.number,\n mirror: PropTypes.bool,\n // The orientation of axis\n orientation: PropTypes.oneOf(['top', 'bottom']),\n type: PropTypes.oneOf(['number', 'category']),\n // Ticks can be any type when the axis is the type of category\n // Ticks must be numbers when the axis is the type of number\n ticks: PropTypes.array,\n // The count of ticks\n tickCount: PropTypes.number,\n // The formatter function of tick\n tickFormatter: PropTypes.func,\n padding: PropTypes.shape({\n left: PropTypes.number,\n right: PropTypes.number\n }),\n allowDataOverflow: PropTypes.bool,\n scale: PropTypes.oneOfType([PropTypes.oneOf(SCALE_TYPES), PropTypes.func]),\n tick: PropTypes.oneOfType([PropTypes.bool, PropTypes.func, PropTypes.object, PropTypes.element]),\n axisLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n tickLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n minTickGap: PropTypes.number,\n tickSize: PropTypes.number,\n interval: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf(['preserveStart', 'preserveEnd', 'preserveStartEnd'])]),\n reversed: PropTypes.bool\n};\nXAxis.defaultProps = {\n allowDecimals: true,\n hide: false,\n orientation: 'bottom',\n width: 0,\n height: 30,\n mirror: false,\n xAxisId: 0,\n tickCount: 5,\n type: 'category',\n domain: [0, 'auto'],\n padding: {\n left: 0,\n right: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false,\n allowDuplicatedCategory: true\n};\nexport default XAxis;","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Y Axis\n */\nimport { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\n\nvar YAxis =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(YAxis, _PureComponent);\n\n function YAxis() {\n _classCallCheck(this, YAxis);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(YAxis).apply(this, arguments));\n }\n\n _createClass(YAxis, [{\n key: \"render\",\n value: function render() {\n return null;\n }\n }]);\n\n return YAxis;\n}(PureComponent);\n\nYAxis.displayName = 'YAxis';\nYAxis.propTypes = {\n allowDecimals: PropTypes.bool,\n allowDuplicatedCategory: PropTypes.bool,\n hide: PropTypes.bool,\n // The name of data displayed in the axis\n name: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n // The unit of data displayed in the axis\n unit: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n // The unique id of y-axis\n yAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n domain: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func, PropTypes.oneOf(['auto', 'dataMin', 'dataMax'])])),\n // The key of data displayed in the axis\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),\n // Ticks can be any type when the axis is the type of category\n // Ticks must be numbers when the axis is the type of number\n ticks: PropTypes.array,\n // The count of ticks\n tickCount: PropTypes.number,\n // The formatter function of tick\n tickFormatter: PropTypes.func,\n // The width of axis, which need to be setted by user\n width: PropTypes.number,\n // The height of axis which is usually calculated in Chart\n height: PropTypes.number,\n mirror: PropTypes.bool,\n // The orientation of axis\n orientation: PropTypes.oneOf(['left', 'right']),\n type: PropTypes.oneOf(['number', 'category']),\n padding: PropTypes.shape({\n top: PropTypes.number,\n bottom: PropTypes.number\n }),\n allowDataOverflow: PropTypes.bool,\n scale: PropTypes.oneOfType([PropTypes.oneOf(['auto', 'linear', 'pow', 'sqrt', 'log', 'identity', 'time', 'band', 'point', 'ordinal', 'quantile', 'quantize', 'utc', 'sequential', 'threshold']), PropTypes.func]),\n tick: PropTypes.oneOfType([PropTypes.bool, PropTypes.func, PropTypes.object, PropTypes.element]),\n axisLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n tickLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n minTickGap: PropTypes.number,\n tickSize: PropTypes.number,\n interval: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf(['preserveStart', 'preserveEnd', 'preserveStartEnd'])]),\n reversed: PropTypes.bool\n};\nYAxis.defaultProps = {\n allowDuplicatedCategory: true,\n allowDecimals: true,\n hide: false,\n orientation: 'left',\n width: 60,\n height: 0,\n mirror: false,\n yAxisId: 0,\n tickCount: 5,\n type: 'number',\n domain: [0, 'auto'],\n padding: {\n top: 0,\n bottom: 0\n },\n allowDataOverflow: false,\n scale: 'auto',\n reversed: false\n};\nexport default YAxis;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Cross\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { isNumber } from '../util/DataUtils';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes } from '../util/ReactUtils';\n\nvar Cross =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(Cross, _PureComponent);\n\n function Cross() {\n _classCallCheck(this, Cross);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Cross).apply(this, arguments));\n }\n\n _createClass(Cross, [{\n key: \"render\",\n value: function render() {\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 top = _this$props.top,\n left = _this$props.left,\n className = _this$props.className;\n\n if (!isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || !isNumber(top) || !isNumber(left)) {\n return null;\n }\n\n return React.createElement(\"path\", _extends({}, getPresentationAttributes(this.props), {\n className: classNames('recharts-cross', className),\n d: this.constructor.getPath(x, y, width, height, top, left)\n }));\n }\n }], [{\n key: \"getPath\",\n value: 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 }\n }]);\n\n return Cross;\n}(PureComponent);\n\nCross.displayName = 'Cross';\nCross.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n top: PropTypes.number,\n left: PropTypes.number,\n className: PropTypes.string\n});\nCross.defaultProps = {\n x: 0,\n y: 0,\n top: 0,\n left: 0,\n width: 0,\n height: 0\n};\nexport default Cross;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Sector\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes, filterEventAttributes } from '../util/ReactUtils';\nimport { polarToCartesian, RADIAN } from '../util/PolarUtils';\nimport { getPercentValue, mathSign } from '../util/DataUtils';\n\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};\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); // The coordinate of point which is tangent to the circle\n\n var circleTangency = polarToCartesian(cx, cy, radius, centerAngle); // The coordinate of point which is tangent to the radius line\n\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};\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); // When the angle of sector equals to 360, star point and end point coincide\n\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\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\n return path;\n};\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\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\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\n var outerArcAngle = Math.abs(startAngle - endAngle) - sot - eot;\n\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\n return getSectorPath({\n cx: cx,\n cy: cy,\n innerRadius: innerRadius,\n outerRadius: outerRadius,\n startAngle: startAngle,\n endAngle: endAngle\n });\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\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\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\n var innerArcAngle = Math.abs(startAngle - endAngle) - sit - eit;\n\n if (innerArcAngle < 0) {\n return \"\".concat(path, \"L\").concat(cx, \",\").concat(cy, \"Z\");\n }\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\n return path;\n};\n\nvar Sector =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(Sector, _PureComponent);\n\n function Sector() {\n _classCallCheck(this, Sector);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(Sector).apply(this, arguments));\n }\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\n if (outerRadius < innerRadius || startAngle === endAngle) {\n return null;\n }\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\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\n return React.createElement(\"path\", _extends({}, getPresentationAttributes(this.props), filterEventAttributes(this.props), {\n className: layerClass,\n d: path\n }));\n }\n }]);\n\n return Sector;\n}(PureComponent);\n\nSector.displayName = 'Sector';\nSector.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n className: PropTypes.string,\n cx: PropTypes.number,\n cy: PropTypes.number,\n innerRadius: PropTypes.number,\n outerRadius: PropTypes.number,\n startAngle: PropTypes.number,\n endAngle: PropTypes.number,\n cornerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n forceCornerRadius: PropTypes.bool,\n cornerIsExternal: PropTypes.bool\n});\nSector.defaultProps = {\n cx: 0,\n cy: 0,\n innerRadius: 0,\n outerRadius: 0,\n startAngle: 0,\n endAngle: 0,\n cornerRadius: 0,\n forceCornerRadius: false,\n cornerIsExternal: false\n};\nexport default Sector;","import _isFunction from \"lodash/isFunction\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _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; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Cartesian Axis\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { shallowEqual } from '../util/ShallowEqual';\nimport { getStringSize } from '../util/DOMUtils';\nimport Layer from '../container/Layer';\nimport Text from '../component/Text';\nimport Label from '../component/Label';\nimport { isSsr, PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, getPresentationAttributes, filterEventsOfChild } from '../util/ReactUtils';\nimport { isNumber, mathSign } from '../util/DataUtils';\n\nvar CartesianAxis =\n/*#__PURE__*/\nfunction (_Component) {\n _inherits(CartesianAxis, _Component);\n\n function CartesianAxis() {\n _classCallCheck(this, CartesianAxis);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(CartesianAxis).apply(this, arguments));\n }\n\n _createClass(CartesianAxis, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(_ref, state) {\n var viewBox = _ref.viewBox,\n restProps = _objectWithoutProperties(_ref, [\"viewBox\"]);\n\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, [\"viewBox\"]);\n\n return !shallowEqual(viewBox, viewBoxOld) || !shallowEqual(restProps, restPropsOld) || !shallowEqual(state, this.state);\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 }, {\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\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\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\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\n default:\n x1 = x2 = data.coordinate;\n y2 = y + mirror * height;\n y1 = y2 + sign * finalTickSize;\n ty = y1 + sign * tickMargin;\n tx = tickCoord;\n break;\n }\n\n return {\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\n switch (orientation) {\n case 'left':\n textAnchor = mirror ? 'start' : 'end';\n break;\n\n case 'right':\n textAnchor = mirror ? 'end' : 'start';\n break;\n\n default:\n textAnchor = 'middle';\n break;\n }\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\n switch (orientation) {\n case 'left':\n case 'right':\n verticalAnchor = 'middle';\n break;\n\n case 'top':\n verticalAnchor = mirror ? 'start' : 'end';\n break;\n\n default:\n verticalAnchor = mirror ? 'end' : 'start';\n break;\n }\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 axisLine = _this$props5.axisLine,\n mirror = _this$props5.mirror;\n\n var props = _objectSpread({}, getPresentationAttributes(this.props), {\n fill: 'none'\n }, getPresentationAttributes(axisLine));\n\n if (orientation === 'top' || orientation === 'bottom') {\n var needHeight = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;\n props = _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({}, props, {\n x1: x + needWidth * width,\n y1: y,\n x2: x + needWidth * width,\n y2: y + height\n });\n }\n\n return React.createElement(\"line\", _extends({\n className: \"recharts-cartesian-axis-line\"\n }, props));\n }\n }, {\n key: \"renderTicks\",\n\n /**\n * render the ticks\n * @param {Array} ticks The ticks to actually render (overrides what was passed in props)\n * @return {ReactComponent} renderedTicks\n */\n value: function renderTicks(ticks) {\n var _this = this;\n\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 = CartesianAxis.getTicks(_objectSpread({}, this.props, {\n ticks: ticks\n }));\n var textAnchor = this.getTickTextAnchor();\n var verticalAnchor = this.getTickVerticalAnchor();\n var axisProps = getPresentationAttributes(this.props);\n var customTickProps = getPresentationAttributes(tick);\n\n var tickLineProps = _objectSpread({}, axisProps, {\n fill: 'none'\n }, getPresentationAttributes(tickLine));\n\n var items = finalTicks.map(function (entry, i) {\n var _this$getTickLineCoor = _this.getTickLineCoord(entry),\n lineCoord = _this$getTickLineCoor.line,\n tickCoord = _this$getTickLineCoor.tick;\n\n var tickProps = _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 });\n\n return React.createElement(Layer, _extends({\n className: \"recharts-cartesian-axis-tick\",\n key: \"tick-\".concat(i) // eslint-disable-line react/no-array-index-key\n\n }, filterEventsOfChild(_this.props, entry, i)), tickLine && React.createElement(\"line\", _extends({\n className: \"recharts-cartesian-axis-tick-line\"\n }, tickLineProps, lineCoord)), tick && _this.constructor.renderTickItem(tick, tickProps, \"\".concat(_isFunction(tickFormatter) ? tickFormatter(entry.value) : entry.value).concat(unit || '')));\n });\n return React.createElement(\"g\", {\n className: \"recharts-cartesian-axis-ticks\"\n }, items);\n }\n }, {\n key: \"render\",\n value: function render() {\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\n if (hide) {\n return null;\n }\n\n var _this$props8 = this.props,\n ticks = _this$props8.ticks,\n noTicksProps = _objectWithoutProperties(_this$props8, [\"ticks\"]);\n\n var finalTicks = ticks;\n\n if (_isFunction(ticksGenerator)) {\n finalTicks = ticks && ticks.length > 0 ? ticksGenerator(this.props) : ticksGenerator(noTicksProps);\n }\n\n if (width <= 0 || height <= 0 || !finalTicks || !finalTicks.length) {\n return null;\n }\n\n return React.createElement(Layer, {\n className: classNames('recharts-cartesian-axis', className)\n }, axisLine && this.renderAxisLine(), this.renderTicks(finalTicks), Label.renderCallByParent(this.props));\n }\n }], [{\n key: \"getTicks\",\n value: function getTicks(props) {\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\n if (!ticks || !ticks.length || !tick) {\n return [];\n }\n\n if (isNumber(interval) || isSsr()) {\n return CartesianAxis.getNumberIntervalTicks(ticks, isNumber(interval) ? interval : 0);\n }\n\n if (interval === 'preserveStartEnd') {\n return CartesianAxis.getTicksStart({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit\n }, true);\n }\n\n if (interval === 'preserveStart') {\n return CartesianAxis.getTicksStart({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit\n });\n }\n\n return CartesianAxis.getTicksEnd({\n ticks: ticks,\n tickFormatter: tickFormatter,\n viewBox: viewBox,\n orientation: orientation,\n minTickGap: minTickGap,\n unit: unit\n });\n }\n }, {\n key: \"getNumberIntervalTicks\",\n value: function getNumberIntervalTicks(ticks, interval) {\n return ticks.filter(function (entry, i) {\n return i % (interval + 1) === 0;\n });\n }\n }, {\n key: \"getTicksStart\",\n value: function 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 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(); // we need add the width of 'unit' only when sizeKey === 'width'\n\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit)[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\n if (sign === 1) {\n start = sizeKey === 'width' ? x : y;\n end = sizeKey === 'width' ? x + width : y + height;\n } else {\n start = sizeKey === 'width' ? x + width : y + height;\n end = sizeKey === 'width' ? x : y;\n }\n\n if (preserveEnd) {\n // Try to guarantee the tail to be displayed\n var tail = ticks[len - 1];\n var tailContent = _isFunction(tickFormatter) ? tickFormatter(tail.value) : tail.value;\n var tailSize = getStringSize(tailContent)[sizeKey] + unitSize;\n var tailGap = sign * (tail.coordinate + sign * tailSize / 2 - end);\n result[len - 1] = tail = _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\n if (isTailShow) {\n end = tail.tickCoord - sign * (tailSize / 2 + minTickGap);\n result[len - 1] = _objectSpread({}, tail, {\n isShow: true\n });\n }\n }\n\n var count = preserveEnd ? len - 1 : len;\n\n for (var _i = 0; _i < count; _i++) {\n var entry = result[_i];\n var content = _isFunction(tickFormatter) ? tickFormatter(entry.value) : entry.value;\n var size = getStringSize(content)[sizeKey] + unitSize;\n\n if (_i === 0) {\n var gap = sign * (entry.coordinate - sign * size / 2 - start);\n result[_i] = entry = _objectSpread({}, entry, {\n tickCoord: gap < 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[_i] = entry = _objectSpread({}, entry, {\n tickCoord: entry.coordinate\n });\n }\n\n var isShow = sign * (entry.tickCoord - sign * size / 2 - start) >= 0 && sign * (entry.tickCoord + sign * size / 2 - end) <= 0;\n\n if (isShow) {\n start = entry.tickCoord + sign * (size / 2 + minTickGap);\n result[_i] = _objectSpread({}, entry, {\n isShow: true\n });\n }\n }\n\n return result.filter(function (entry) {\n return entry.isShow;\n });\n }\n }, {\n key: \"getTicksEnd\",\n value: function getTicksEnd(_ref3) {\n var ticks = _ref3.ticks,\n tickFormatter = _ref3.tickFormatter,\n viewBox = _ref3.viewBox,\n orientation = _ref3.orientation,\n minTickGap = _ref3.minTickGap,\n unit = _ref3.unit;\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'; // we need add the width of 'unit' only when sizeKey === 'width'\n\n var unitSize = unit && sizeKey === 'width' ? getStringSize(unit)[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\n if (sign === 1) {\n start = sizeKey === 'width' ? x : y;\n end = sizeKey === 'width' ? x + width : y + height;\n } else {\n start = sizeKey === 'width' ? x + width : y + height;\n end = sizeKey === 'width' ? x : y;\n }\n\n for (var _i2 = len - 1; _i2 >= 0; _i2--) {\n var entry = result[_i2];\n var content = _isFunction(tickFormatter) ? tickFormatter(entry.value) : entry.value;\n var size = getStringSize(content)[sizeKey] + unitSize;\n\n if (_i2 === len - 1) {\n var gap = sign * (entry.coordinate + sign * size / 2 - end);\n result[_i2] = entry = _objectSpread({}, entry, {\n tickCoord: gap > 0 ? entry.coordinate - gap * sign : entry.coordinate\n });\n } else {\n result[_i2] = entry = _objectSpread({}, entry, {\n tickCoord: entry.coordinate\n });\n }\n\n var isShow = sign * (entry.tickCoord - sign * size / 2 - start) >= 0 && sign * (entry.tickCoord + sign * size / 2 - end) <= 0;\n\n if (isShow) {\n end = entry.tickCoord - sign * (size / 2 + minTickGap);\n result[_i2] = _objectSpread({}, entry, {\n isShow: true\n });\n }\n }\n\n return result.filter(function (entry) {\n return entry.isShow;\n });\n }\n }, {\n key: \"renderTickItem\",\n value: function renderTickItem(option, props, value) {\n var tickItem;\n\n if (React.isValidElement(option)) {\n tickItem = React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n tickItem = option(props);\n } else {\n tickItem = React.createElement(Text, _extends({}, props, {\n className: \"recharts-cartesian-axis-tick-value\"\n }), value);\n }\n\n return tickItem;\n }\n }]);\n\n return CartesianAxis;\n}(Component);\n\nCartesianAxis.displayName = 'CartesianAxis';\nCartesianAxis.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {}, EVENT_ATTRIBUTES, {\n className: PropTypes.string,\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n orientation: PropTypes.oneOf(['top', 'bottom', 'left', 'right']),\n // The viewBox of svg\n viewBox: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number\n }),\n tick: PropTypes.oneOfType([PropTypes.bool, PropTypes.func, PropTypes.object, PropTypes.element]),\n axisLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n tickLine: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n mirror: PropTypes.bool,\n tickMargin: PropTypes.number.isRequired,\n minTickGap: PropTypes.number,\n ticks: PropTypes.array,\n tickSize: PropTypes.number,\n stroke: PropTypes.string,\n tickFormatter: PropTypes.func,\n ticksGenerator: PropTypes.func,\n interval: PropTypes.oneOfType([PropTypes.number, PropTypes.oneOf(['preserveStart', 'preserveEnd', 'preserveStartEnd'])])\n});\nCartesianAxis.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};\nexport default CartesianAxis;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar PREFIX_LIST = ['Webkit', 'Moz', 'O', 'ms'];\nexport var generatePrefixStyle = function generatePrefixStyle(name, value) {\n if (!name) {\n return null;\n }\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({}, res, _defineProperty({}, entry + camelName, value));\n }, {});\n result[name] = value;\n return result;\n};","import _range from \"lodash/range\";\nimport _isFunction from \"lodash/isFunction\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Brush\n */\nimport React, { PureComponent, Children } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { scalePoint } from 'd3-scale';\nimport { getValueByDataKey } from '../util/ChartUtils';\nimport Layer from '../container/Layer';\nimport Text from '../component/Text';\nimport { isNumber } from '../util/DataUtils';\nimport { generatePrefixStyle } from '../util/CssPrefixUtils';\n\nvar Brush =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(Brush, _PureComponent);\n\n function Brush(props) {\n var _this;\n\n _classCallCheck(this, Brush);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Brush).call(this, props));\n\n _this.handleDrag = function (e) {\n if (_this.leaveTimer) {\n clearTimeout(_this.leaveTimer);\n _this.leaveTimer = null;\n }\n\n if (_this.state.isTravellerMoving) {\n _this.handleTravellerMove(e);\n } else if (_this.state.isSlideMoving) {\n _this.handleSlideDrag(e);\n }\n };\n\n _this.handleTouchMove = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleDrag(e.changedTouches[0]);\n }\n };\n\n _this.handleDragEnd = function () {\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: false\n });\n };\n\n _this.handleLeaveWrapper = function () {\n if (_this.state.isTravellerMoving || _this.state.isSlideMoving) {\n _this.leaveTimer = setTimeout(_this.handleDragEnd, _this.props.leaveTimeOut);\n }\n };\n\n _this.handleEnterSlideOrTraveller = function () {\n _this.setState({\n isTextActive: true\n });\n };\n\n _this.handleLeaveSlideOrTraveller = function () {\n _this.setState({\n isTextActive: false\n });\n };\n\n _this.handleSlideDragStart = function (e) {\n var event = e.changedTouches && e.changedTouches.length ? e.changedTouches[0] : e;\n\n _this.setState({\n isTravellerMoving: false,\n isSlideMoving: true,\n slideMoveStartX: event.pageX\n });\n };\n\n _this.travellerDragStartHandlers = {\n startX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'startX'),\n endX: _this.handleTravellerDragStart.bind(_assertThisInitialized(_this), 'endX')\n };\n _this.state = props.data && props.data.length ? _this.updateScale(props) : {};\n return _this;\n } // eslint-disable-next-line camelcase\n\n\n _createClass(Brush, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this2 = this;\n\n var _this$props = this.props,\n data = _this$props.data,\n width = _this$props.width,\n x = _this$props.x,\n travellerWidth = _this$props.travellerWidth,\n updateId = _this$props.updateId;\n\n if ((nextProps.data !== data || nextProps.updateId !== updateId) && nextProps.data && nextProps.data.length) {\n this.setState(this.updateScale(nextProps));\n } else if (nextProps.width !== width || nextProps.x !== x || nextProps.travellerWidth !== travellerWidth) {\n this.scale.range([nextProps.x, nextProps.x + nextProps.width - nextProps.travellerWidth]);\n this.scaleValues = this.scale.domain().map(function (entry) {\n return _this2.scale(entry);\n });\n this.setState({\n startX: this.scale(nextProps.startIndex),\n endX: this.scale(nextProps.endIndex)\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.scale = null;\n this.scaleValues = null;\n\n if (this.leaveTimer) {\n clearTimeout(this.leaveTimer);\n this.leaveTimer = null;\n }\n }\n }, {\n key: \"getIndex\",\n value: function getIndex(_ref) {\n var startX = _ref.startX,\n endX = _ref.endX;\n var _this$props2 = this.props,\n gap = _this$props2.gap,\n data = _this$props2.data;\n var lastIndex = data.length - 1;\n var min = Math.min(startX, endX);\n var max = Math.max(startX, endX);\n var minIndex = this.constructor.getIndexInRange(this.scaleValues, min);\n var maxIndex = this.constructor.getIndexInRange(this.scaleValues, max);\n return {\n startIndex: minIndex - minIndex % gap,\n endIndex: maxIndex === lastIndex ? lastIndex : maxIndex - maxIndex % gap\n };\n }\n }, {\n key: \"getTextOfTick\",\n value: function getTextOfTick(index) {\n var _this$props3 = this.props,\n data = _this$props3.data,\n tickFormatter = _this$props3.tickFormatter,\n dataKey = _this$props3.dataKey;\n var text = getValueByDataKey(data[index], dataKey, index);\n return _isFunction(tickFormatter) ? tickFormatter(text) : text;\n }\n }, {\n key: \"handleSlideDrag\",\n value: function handleSlideDrag(e) {\n var _this$state = this.state,\n slideMoveStartX = _this$state.slideMoveStartX,\n startX = _this$state.startX,\n endX = _this$state.endX;\n var _this$props4 = this.props,\n x = _this$props4.x,\n width = _this$props4.width,\n travellerWidth = _this$props4.travellerWidth,\n startIndex = _this$props4.startIndex,\n endIndex = _this$props4.endIndex,\n onChange = _this$props4.onChange;\n var delta = e.pageX - slideMoveStartX;\n\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\n var newIndex = this.getIndex({\n startX: startX + delta,\n endX: endX + delta\n });\n\n if ((newIndex.startIndex !== startIndex || newIndex.endIndex !== endIndex) && onChange) {\n onChange(newIndex);\n }\n\n this.setState({\n startX: startX + delta,\n endX: endX + delta,\n slideMoveStartX: e.pageX\n });\n }\n }, {\n key: \"handleTravellerDragStart\",\n value: function handleTravellerDragStart(id, e) {\n var event = e.changedTouches && e.changedTouches.length ? e.changedTouches[0] : e;\n this.setState({\n isSlideMoving: false,\n isTravellerMoving: true,\n movingTravellerId: id,\n brushMoveStartX: event.pageX\n });\n }\n }, {\n key: \"handleTravellerMove\",\n value: function handleTravellerMove(e) {\n var _this$setState;\n\n var _this$state2 = this.state,\n brushMoveStartX = _this$state2.brushMoveStartX,\n movingTravellerId = _this$state2.movingTravellerId,\n endX = _this$state2.endX,\n startX = _this$state2.startX;\n var prevValue = this.state[movingTravellerId];\n var _this$props5 = this.props,\n x = _this$props5.x,\n width = _this$props5.width,\n travellerWidth = _this$props5.travellerWidth,\n onChange = _this$props5.onChange,\n gap = _this$props5.gap,\n data = _this$props5.data;\n var params = {\n startX: this.state.startX,\n endX: this.state.endX\n };\n var delta = e.pageX - brushMoveStartX;\n\n if (delta > 0) {\n delta = Math.min(delta, x + width - travellerWidth - prevValue);\n } else if (delta < 0) {\n delta = Math.max(delta, x - prevValue);\n }\n\n params[movingTravellerId] = prevValue + delta;\n var newIndex = this.getIndex(params);\n var startIndex = newIndex.startIndex,\n endIndex = newIndex.endIndex;\n\n var isFullGap = function isFullGap() {\n var lastIndex = data.length - 1;\n\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\n return false;\n };\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: \"updateScale\",\n value: function updateScale(props) {\n var _this3 = this;\n\n var data = props.data,\n startIndex = props.startIndex,\n endIndex = props.endIndex,\n x = props.x,\n width = props.width,\n travellerWidth = props.travellerWidth;\n var len = data.length;\n this.scale = scalePoint().domain(_range(0, len)).range([x, x + width - travellerWidth]);\n this.scaleValues = this.scale.domain().map(function (entry) {\n return _this3.scale(entry);\n });\n return {\n isTextActive: false,\n isSlideMoving: false,\n isTravellerMoving: false,\n startX: this.scale(startIndex),\n endX: this.scale(endIndex)\n };\n }\n }, {\n key: \"renderBackground\",\n value: function renderBackground() {\n var _this$props6 = this.props,\n x = _this$props6.x,\n y = _this$props6.y,\n width = _this$props6.width,\n height = _this$props6.height,\n fill = _this$props6.fill,\n stroke = _this$props6.stroke;\n return React.createElement(\"rect\", {\n stroke: stroke,\n fill: fill,\n x: x,\n y: y,\n width: width,\n height: height\n });\n }\n }, {\n key: \"renderPanorama\",\n value: function renderPanorama() {\n var _this$props7 = this.props,\n x = _this$props7.x,\n y = _this$props7.y,\n width = _this$props7.width,\n height = _this$props7.height,\n data = _this$props7.data,\n children = _this$props7.children,\n padding = _this$props7.padding;\n var chartElement = Children.only(children);\n\n if (!chartElement) {\n return null;\n }\n\n return 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: \"renderTraveller\",\n value: function renderTraveller(travellerX, id) {\n var _this$props8 = this.props,\n y = _this$props8.y,\n travellerWidth = _this$props8.travellerWidth,\n height = _this$props8.height,\n stroke = _this$props8.stroke;\n var lineY = Math.floor(y + height / 2) - 1;\n var x = Math.max(travellerX, this.props.x);\n return 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 }, React.createElement(\"rect\", {\n x: x,\n y: y,\n width: travellerWidth,\n height: height,\n fill: stroke,\n stroke: \"none\"\n }), React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY,\n x2: x + travellerWidth - 1,\n y2: lineY,\n fill: \"none\",\n stroke: \"#fff\"\n }), React.createElement(\"line\", {\n x1: x + 1,\n y1: lineY + 2,\n x2: x + travellerWidth - 1,\n y2: lineY + 2,\n fill: \"none\",\n stroke: \"#fff\"\n }));\n }\n }, {\n key: \"renderSlide\",\n value: function renderSlide(startX, endX) {\n var _this$props9 = this.props,\n y = _this$props9.y,\n height = _this$props9.height,\n stroke = _this$props9.stroke;\n return 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: Math.min(startX, endX),\n y: y,\n width: Math.abs(endX - startX),\n height: height\n });\n }\n }, {\n key: \"renderText\",\n value: function renderText() {\n var _this$props10 = this.props,\n startIndex = _this$props10.startIndex,\n endIndex = _this$props10.endIndex,\n y = _this$props10.y,\n height = _this$props10.height,\n travellerWidth = _this$props10.travellerWidth,\n stroke = _this$props10.stroke;\n var _this$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 React.createElement(Layer, {\n className: \"recharts-brush-texts\"\n }, 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)), React.createElement(Text, _extends({\n textAnchor: \"start\",\n verticalAnchor: \"middle\",\n x: Math.max(startX, endX) + travellerWidth + offset,\n y: y + height / 2\n }, attrs), this.getTextOfTick(endIndex)));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props11 = this.props,\n data = _this$props11.data,\n className = _this$props11.className,\n children = _this$props11.children,\n x = _this$props11.x,\n y = _this$props11.y,\n width = _this$props11.width,\n height = _this$props11.height,\n alwaysShowText = _this$props11.alwaysShowText;\n var _this$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\n if (!data || !data.length || !isNumber(x) || !isNumber(y) || !isNumber(width) || !isNumber(height) || width <= 0 || height <= 0) {\n return null;\n }\n\n var layerClass = classNames('recharts-brush', className);\n var isPanoramic = React.Children.count(children) === 1;\n var style = generatePrefixStyle('userSelect', 'none');\n return React.createElement(Layer, {\n className: layerClass,\n onMouseMove: this.handleDrag,\n onMouseLeave: this.handleLeaveWrapper,\n onMouseUp: this.handleDragEnd,\n onTouchEnd: this.handleDragEnd,\n onTouchMove: this.handleTouchMove,\n style: style\n }, this.renderBackground(), isPanoramic && this.renderPanorama(), this.renderSlide(startX, endX), this.renderTraveller(startX, 'startX'), this.renderTraveller(endX, 'endX'), (isTextActive || isSlideMoving || isTravellerMoving || alwaysShowText) && this.renderText());\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\n while (end - start > 1) {\n var middle = Math.floor((start + end) / 2);\n\n if (range[middle] > x) {\n end = middle;\n } else {\n start = middle;\n }\n }\n\n return x >= range[end] ? end : start;\n }\n }]);\n\n return Brush;\n}(PureComponent);\n\nBrush.displayName = 'Brush';\nBrush.propTypes = {\n className: PropTypes.string,\n fill: PropTypes.string,\n stroke: PropTypes.string,\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number.isRequired,\n travellerWidth: PropTypes.number,\n gap: PropTypes.number,\n padding: PropTypes.shape({\n top: PropTypes.number,\n right: PropTypes.number,\n bottom: PropTypes.number,\n left: PropTypes.number\n }),\n dataKey: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),\n data: PropTypes.array,\n startIndex: PropTypes.number,\n endIndex: PropTypes.number,\n tickFormatter: PropTypes.func,\n children: PropTypes.node,\n onChange: PropTypes.func,\n updateId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n leaveTimeOut: PropTypes.number,\n alwaysShowText: PropTypes.bool\n};\nBrush.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};\nexport default Brush;","export var ifOverflowMatches = function ifOverflowMatches(props, value) {\n var alwaysShow = props.alwaysShow;\n var ifOverflow = props.ifOverflow;\n\n if (alwaysShow) {\n ifOverflow = 'extendDomain';\n }\n\n return ifOverflow === value;\n};","import _every from \"lodash/every\";\nimport _mapValues from \"lodash/mapValues\";\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { getTicksOfScale, parseScale, checkDomainOfScale, getBandSizeOfAxis } from './ChartUtils';\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 */\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 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 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 range, x, y, needSpace;\n\n if (axisType === 'xAxis') {\n range = [offset.left + (padding.left || 0), offset.left + offset.width - (padding.right || 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), offset.top + offset.height - (padding.bottom || 0)];\n } else {\n range = axis.range;\n }\n\n if (reversed) {\n range = [range[1], range[0]];\n }\n\n var _parseScale = parseScale(axis, chartName),\n scale = _parseScale.scale,\n realScaleType = _parseScale.realScaleType;\n\n scale.domain(domain).range(range);\n checkDomainOfScale(scale);\n var ticks = getTicksOfScale(scale, _objectSpread({}, axis, {\n realScaleType: realScaleType\n }));\n\n if (axisType === 'xAxis') {\n needSpace = orientation === 'top' && !mirror || orientation === 'bottom' && mirror;\n x = offset.left;\n y = steps[offsetKey] - needSpace * axis.height;\n } else if (axisType === 'yAxis') {\n needSpace = orientation === 'left' && !mirror || orientation === 'right' && mirror;\n x = steps[offsetKey] - needSpace * axis.width;\n y = offset.top;\n }\n\n var finalAxis = _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\n finalAxis.bandSize = getBandSizeOfAxis(finalAxis, ticks);\n\n if (!axis.hide && axisType === 'xAxis') {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.height;\n } else if (!axis.hide) {\n steps[offsetKey] += (needSpace ? -1 : 1) * finalAxis.width;\n }\n\n return _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 * 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 */\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 =\n/*#__PURE__*/\nfunction () {\n _createClass(ScaleHelper, null, [{\n key: \"create\",\n value: function create(obj) {\n return new ScaleHelper(obj);\n }\n }]);\n\n function ScaleHelper(scale) {\n _classCallCheck(this, ScaleHelper);\n\n this.scale = scale;\n }\n\n _createClass(ScaleHelper, [{\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\n if (value === undefined) {\n return undefined;\n }\n\n if (position) {\n switch (position) {\n case 'start':\n {\n return this.scale(value);\n }\n\n case 'middle':\n {\n var offset = this.bandwidth ? this.bandwidth() / 2 : 0;\n return this.scale(value) + offset;\n }\n\n case 'end':\n {\n var _offset = this.bandwidth ? this.bandwidth() : 0;\n\n return this.scale(value) + _offset;\n }\n\n default:\n {\n return this.scale(value);\n }\n }\n }\n\n if (bandAware) {\n var _offset2 = this.bandwidth ? this.bandwidth() / 2 : 0;\n\n return this.scale(value) + _offset2;\n }\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: \"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\n return ScaleHelper;\n}();\nScaleHelper.EPS = 1e-4;\nexport var LabeledScaleHelper =\n/*#__PURE__*/\nfunction () {\n _createClass(LabeledScaleHelper, null, [{\n key: \"create\",\n value: function create(obj) {\n return new this(obj);\n }\n }]);\n\n function LabeledScaleHelper(scales) {\n _classCallCheck(this, LabeledScaleHelper);\n\n this.scales = _mapValues(scales, ScaleHelper.create);\n Object.assign(this, this.scales);\n }\n\n _createClass(LabeledScaleHelper, [{\n key: \"apply\",\n value: function apply(coords) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n bandAware = _ref5.bandAware;\n\n var scales = this.scales;\n return _mapValues(coords, function (value, label) {\n return scales[label].apply(value, {\n bandAware: bandAware\n });\n });\n }\n }, {\n key: \"isInRange\",\n value: function isInRange(coords) {\n var scales = this.scales;\n return _every(coords, function (value, label) {\n return scales[label].isInRange(value);\n });\n }\n }]);\n\n return LabeledScaleHelper;\n}();","import _isFunction from \"lodash/isFunction\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Reference Dot\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Layer from '../container/Layer';\nimport Dot from '../shape/Dot';\nimport { PRESENTATION_ATTRIBUTES, EVENT_ATTRIBUTES, getPresentationAttributes, filterEventAttributes } from '../util/ReactUtils';\nimport Label from '../component/Label';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { LabeledScaleHelper } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\n\nvar ReferenceDot =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(ReferenceDot, _PureComponent);\n\n function ReferenceDot() {\n _classCallCheck(this, ReferenceDot);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ReferenceDot).apply(this, arguments));\n }\n\n _createClass(ReferenceDot, [{\n key: \"getCoordinate\",\n value: function getCoordinate() {\n var _this$props = this.props,\n x = _this$props.x,\n y = _this$props.y,\n xAxis = _this$props.xAxis,\n yAxis = _this$props.yAxis;\n var scales = LabeledScaleHelper.create({\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\n if (ifOverflowMatches(this.props, 'discard') && !scales.isInRange(result)) {\n return null;\n }\n\n return result;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n x = _this$props2.x,\n y = _this$props2.y,\n r = _this$props2.r,\n alwaysShow = _this$props2.alwaysShow,\n clipPathId = _this$props2.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\n if (!isX || !isY) {\n return null;\n }\n\n var coordinate = this.getCoordinate();\n\n if (!coordinate) {\n return null;\n }\n\n var cx = coordinate.x,\n cy = coordinate.y;\n var _this$props3 = this.props,\n shape = _this$props3.shape,\n className = _this$props3.className;\n var clipPath = ifOverflowMatches(this.props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n\n var dotProps = _objectSpread({\n clipPath: clipPath\n }, getPresentationAttributes(this.props), {}, filterEventAttributes(this.props), {\n cx: cx,\n cy: cy\n });\n\n return React.createElement(Layer, {\n className: classNames('recharts-reference-dot', className)\n }, this.constructor.renderDot(shape, dotProps), Label.renderCallByParent(this.props, {\n x: cx - r,\n y: cy - r,\n width: 2 * r,\n height: 2 * r\n }));\n }\n }], [{\n key: \"renderDot\",\n value: function renderDot(option, props) {\n var dot;\n\n if (React.isValidElement(option)) {\n dot = React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n dot = option(props);\n } else {\n dot = React.createElement(Dot, _extends({}, props, {\n cx: props.cx,\n cy: props.cy,\n className: \"recharts-reference-dot-dot\"\n }));\n }\n\n return dot;\n }\n }]);\n\n return ReferenceDot;\n}(PureComponent);\n\nReferenceDot.displayName = 'ReferenceDot';\nReferenceDot.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {}, EVENT_ATTRIBUTES, {\n r: PropTypes.number,\n xAxis: PropTypes.shape({\n scale: PropTypes.func\n }),\n yAxis: PropTypes.shape({\n scale: PropTypes.func\n }),\n isFront: PropTypes.bool,\n alwaysShow: PropTypes.bool,\n ifOverflow: PropTypes.oneOf(['hidden', 'visible', 'discard', 'extendDomain']),\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n className: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n yAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n xAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n shape: PropTypes.oneOfType([PropTypes.func, PropTypes.element]),\n clipPathId: PropTypes.string\n});\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};\nexport default ReferenceDot;","import _some from \"lodash/some\";\nimport _isFunction from \"lodash/isFunction\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { 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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\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, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/**\n * @fileOverview Reference Line\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Layer from '../container/Layer';\nimport { PRESENTATION_ATTRIBUTES, getPresentationAttributes, filterEventAttributes } from '../util/ReactUtils';\nimport Label from '../component/Label';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { LabeledScaleHelper, rectWithCoords } from '../util/CartesianUtils';\nimport { warn } from '../util/LogUtils';\n\nvar renderLine = function renderLine(option, props) {\n var line;\n\n if (React.isValidElement(option)) {\n line = React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n line = option(props);\n } else {\n line = React.createElement(\"line\", _extends({}, props, {\n className: \"recharts-reference-line-line\"\n }));\n }\n\n return line;\n};\n\nvar ReferenceLine =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(ReferenceLine, _PureComponent);\n\n function ReferenceLine() {\n _classCallCheck(this, ReferenceLine);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ReferenceLine).apply(this, arguments));\n }\n\n _createClass(ReferenceLine, [{\n key: \"getEndPoints\",\n value: function getEndPoints(scales, isFixedX, isFixedY, isSegment) {\n var _this$props = this.props,\n _this$props$viewBox = _this$props.viewBox,\n x = _this$props$viewBox.x,\n y = _this$props$viewBox.y,\n width = _this$props$viewBox.width,\n height = _this$props$viewBox.height,\n position = _this$props.position;\n\n if (isFixedY) {\n var _this$props2 = this.props,\n yCoord = _this$props2.y,\n orientation = _this$props2.yAxis.orientation;\n var coord = scales.y.apply(yCoord, {\n position: position\n });\n\n if (ifOverflowMatches(this.props, 'discard') && !scales.y.isInRange(coord)) {\n return null;\n }\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\n if (isFixedX) {\n var _this$props3 = this.props,\n xCoord = _this$props3.x,\n _orientation = _this$props3.xAxis.orientation;\n\n var _coord = scales.x.apply(xCoord, {\n position: position\n });\n\n if (ifOverflowMatches(this.props, 'discard') && !scales.x.isInRange(_coord)) {\n return null;\n }\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\n if (isSegment) {\n var segment = this.props.segment;\n\n var _points2 = segment.map(function (p) {\n return scales.apply(p, {\n position: position\n });\n });\n\n if (ifOverflowMatches(this.props, 'discard') && _some(_points2, function (p) {\n return !scales.isInRange(p);\n })) {\n return null;\n }\n\n return _points2;\n }\n\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props4 = this.props,\n fixedX = _this$props4.x,\n fixedY = _this$props4.y,\n segment = _this$props4.segment,\n xAxis = _this$props4.xAxis,\n yAxis = _this$props4.yAxis,\n shape = _this$props4.shape,\n className = _this$props4.className,\n alwaysShow = _this$props4.alwaysShow,\n clipPathId = _this$props4.clipPathId;\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var scales = LabeledScaleHelper.create({\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 = this.getEndPoints(scales, isX, isY, isSegment);\n\n if (!endPoints) {\n return null;\n }\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\n var clipPath = ifOverflowMatches(this.props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n\n var props = _objectSpread({\n clipPath: clipPath\n }, getPresentationAttributes(this.props), {}, filterEventAttributes(this.props), {\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n });\n\n return React.createElement(Layer, {\n className: classNames('recharts-reference-line', className)\n }, renderLine(shape, props), Label.renderCallByParent(this.props, rectWithCoords({\n x1: x1,\n y1: y1,\n x2: x2,\n y2: y2\n })));\n }\n }]);\n\n return ReferenceLine;\n}(PureComponent);\n\nReferenceLine.displayName = 'ReferenceLine';\nReferenceLine.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n viewBox: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number\n }),\n xAxis: PropTypes.object,\n yAxis: PropTypes.object,\n isFront: PropTypes.bool,\n alwaysShow: PropTypes.bool,\n ifOverflow: PropTypes.oneOf(['hidden', 'visible', 'discard', 'extendDomain']),\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n segment: PropTypes.arrayOf(PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n })),\n position: PropTypes.oneOf(['middle', 'start', 'end']),\n className: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n yAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n xAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n shape: PropTypes.func\n});\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};\nexport default ReferenceLine;","import _isFunction from \"lodash/isFunction\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n/**\n * @fileOverview Reference Line\n */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Layer from '../container/Layer';\nimport Label from '../component/Label';\nimport { LabeledScaleHelper, rectWithPoints } from '../util/CartesianUtils';\nimport { ifOverflowMatches } from '../util/IfOverflowMatches';\nimport { isNumOrStr } from '../util/DataUtils';\nimport { warn } from '../util/LogUtils';\nimport { PRESENTATION_ATTRIBUTES } from '../util/ReactUtils';\nimport Rectangle from '../shape/Rectangle';\n\nvar ReferenceArea =\n/*#__PURE__*/\nfunction (_PureComponent) {\n _inherits(ReferenceArea, _PureComponent);\n\n function ReferenceArea() {\n _classCallCheck(this, ReferenceArea);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ReferenceArea).apply(this, arguments));\n }\n\n _createClass(ReferenceArea, [{\n key: \"getRect\",\n value: function getRect(hasX1, hasX2, hasY1, hasY2) {\n var _this$props = this.props,\n xValue1 = _this$props.x1,\n xValue2 = _this$props.x2,\n yValue1 = _this$props.y1,\n yValue2 = _this$props.y2,\n xAxis = _this$props.xAxis,\n yAxis = _this$props.yAxis;\n var scale = LabeledScaleHelper.create({\n x: xAxis.scale,\n y: yAxis.scale\n });\n var p1 = {\n x: hasX1 ? scale.x.apply(xValue1) : scale.x.rangeMin,\n y: hasY1 ? scale.y.apply(yValue1) : scale.y.rangeMin\n };\n var p2 = {\n x: hasX2 ? scale.x.apply(xValue2) : scale.x.rangeMax,\n y: hasY2 ? scale.y.apply(yValue2) : scale.y.rangeMax\n };\n\n if (ifOverflowMatches(this.props, 'discard') && (!scale.isInRange(p1) || !scale.isInRange(p2))) {\n return null;\n }\n\n return rectWithPoints(p1, p2);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props2 = this.props,\n x1 = _this$props2.x1,\n x2 = _this$props2.x2,\n y1 = _this$props2.y1,\n y2 = _this$props2.y2,\n className = _this$props2.className,\n alwaysShow = _this$props2.alwaysShow,\n clipPathId = _this$props2.clipPathId;\n warn(alwaysShow === undefined, 'The alwaysShow prop is deprecated. Please use ifOverflow=\"extendDomain\" instead.');\n var hasX1 = isNumOrStr(x1);\n var hasX2 = isNumOrStr(x2);\n var hasY1 = isNumOrStr(y1);\n var hasY2 = isNumOrStr(y2);\n var shape = this.props.shape;\n\n if (!hasX1 && !hasX2 && !hasY1 && !hasY2 && !shape) {\n return null;\n }\n\n var rect = this.getRect(hasX1, hasX2, hasY1, hasY2);\n\n if (!rect && !shape) {\n return null;\n }\n\n var clipPath = ifOverflowMatches(this.props, 'hidden') ? \"url(#\".concat(clipPathId, \")\") : undefined;\n return React.createElement(Layer, {\n className: classNames('recharts-reference-area', className)\n }, this.constructor.renderRect(shape, _objectSpread({\n clipPath: clipPath\n }, this.props, {}, rect)), Label.renderCallByParent(this.props, rect));\n }\n }], [{\n key: \"renderRect\",\n value: function renderRect(option, props) {\n var rect;\n\n if (React.isValidElement(option)) {\n rect = React.cloneElement(option, props);\n } else if (_isFunction(option)) {\n rect = option(props);\n } else {\n rect = React.createElement(Rectangle, _extends({}, props, {\n className: \"recharts-reference-area-rect\"\n }));\n }\n\n return rect;\n }\n }]);\n\n return ReferenceArea;\n}(PureComponent);\n\nReferenceArea.displayName = 'ReferenceArea';\nReferenceArea.propTypes = _objectSpread({}, PRESENTATION_ATTRIBUTES, {\n viewBox: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number\n }),\n xAxis: PropTypes.object,\n yAxis: PropTypes.object,\n isFront: PropTypes.bool,\n alwaysShow: PropTypes.bool,\n ifOverflow: PropTypes.oneOf(['hidden', 'visible', 'discard', 'extendDomain']),\n x1: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n x2: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y1: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n y2: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n className: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n yAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n xAxisId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n shape: PropTypes.oneOfType([PropTypes.func, PropTypes.element])\n});\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};\nexport default ReferenceArea;","import 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 = lines.concat(dots);\n var areas = findAllByType(children, ReferenceArea);\n var idKey = \"\".concat(axisType, \"Id\");\n var valueKey = axisType[0];\n var finalDomain = domain;\n\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\n return result;\n }, finalDomain);\n }\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\n return result;\n }, finalDomain);\n }\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\n return result;\n }, finalDomain);\n }\n\n return finalDomain;\n};","import EventEmitter from 'events';\nvar eventCenter = new EventEmitter();\n\nif (eventCenter.setMaxListeners) {\n eventCenter.setMaxListeners(10);\n}\n\nexport { eventCenter };\nexport var SYNC_EVENT = 'recharts.syncMouseEvents';","import _every from \"lodash/every\";\nimport _find from \"lodash/find\";\nimport _sortBy from \"lodash/sortBy\";\nimport _isFunction from \"lodash/isFunction\";\nimport _range from \"lodash/range\";\nimport _throttle from \"lodash/throttle\";\nimport _isNil from \"lodash/isNil\";\n\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\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; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\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 } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport React, { Component, cloneElement, isValidElement, createElement } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport Surface from '../container/Surface';\nimport Layer from '../container/Layer';\nimport Tooltip from '../component/Tooltip';\nimport Legend from '../component/Legend';\nimport Curve from '../shape/Curve';\nimport Cross from '../shape/Cross';\nimport Sector from '../shape/Sector';\nimport Dot from '../shape/Dot';\nimport Rectangle from '../shape/Rectangle';\nimport { findAllByType, findChildByType, getDisplayName, parseChildIndex, getPresentationAttributes, validateWidthHeight, isChildrenEqual, renderByOrder, getReactEventByType, filterEventAttributes } 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, getValueByDataKey, isCategorialAxis, getDomainOfItemsWithSameAxis, getDomainOfStackGroups, getDomainOfDataByKey, parseSpecifiedDomain, parseDomainOfCategoryAxis } 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';\nvar ORIENT_MAP = {\n xAxis: ['bottom', 'top'],\n yAxis: ['left', 'right']\n};\nvar originCoordinate = {\n x: 0,\n y: 0\n};\n\nvar generateCategoricalChart = function generateCategoricalChart(_ref) {\n var chartName = _ref.chartName,\n GraphicalChild = _ref.GraphicalChild,\n _ref$eventType = _ref.eventType,\n eventType = _ref$eventType === void 0 ? 'axis' : _ref$eventType,\n axisComponents = _ref.axisComponents,\n legendContent = _ref.legendContent,\n formatAxisMap = _ref.formatAxisMap,\n defaultProps = _ref.defaultProps,\n propTypes = _ref.propTypes;\n\n var CategoricalChartWrapper =\n /*#__PURE__*/\n function (_Component) {\n _inherits(CategoricalChartWrapper, _Component);\n\n /**\n * Returns default, reset state for the categorical chart.\n * @param {Object} props Props object to use when creating the default state\n * @return {Object} Whole new state\n */\n function CategoricalChartWrapper(_props) {\n var _this;\n\n _classCallCheck(this, CategoricalChartWrapper);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(CategoricalChartWrapper).call(this, _props));\n\n _this.handleLegendBBoxUpdate = function (box) {\n if (box && _this.legendInstance) {\n var _this$state = _this.state,\n dataStartIndex = _this$state.dataStartIndex,\n dataEndIndex = _this$state.dataEndIndex,\n updateId = _this$state.updateId;\n\n _this.setState(_this.updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n }));\n }\n };\n\n _this.handleReceiveSyncEvent = function (cId, chartId, data) {\n var _this$props = _this.props,\n syncId = _this$props.syncId,\n layout = _this$props.layout;\n var updateId = _this.state.updateId;\n\n if (syncId === cId && chartId !== _this.uniqueChartId) {\n var dataStartIndex = data.dataStartIndex,\n dataEndIndex = data.dataEndIndex;\n\n if (!_isNil(data.dataStartIndex) || !_isNil(data.dataEndIndex)) {\n _this.setState(_objectSpread({\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, _this.updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId\n })));\n } else if (!_isNil(data.activeTooltipIndex)) {\n var chartX = data.chartX,\n chartY = data.chartY,\n activeTooltipIndex = data.activeTooltipIndex;\n var _this$state2 = _this.state,\n offset = _this$state2.offset,\n tooltipTicks = _this$state2.tooltipTicks;\n\n if (!offset) {\n return;\n }\n\n var viewBox = _objectSpread({}, offset, {\n x: offset.left,\n y: offset.top\n }); // When a categotical chart is combined with another chart, the value of chartX\n // and chartY may beyond the boundaries.\n\n\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\n var activePayload = _this.getTooltipContent(activeTooltipIndex);\n\n var activeCoordinate = tooltipTicks[activeTooltipIndex] ? {\n x: layout === 'horizontal' ? tooltipTicks[activeTooltipIndex].coordinate : validateChartX,\n y: layout === 'horizontal' ? validateChartY : tooltipTicks[activeTooltipIndex].coordinate\n } : originCoordinate;\n\n _this.setState(_objectSpread({}, data, {\n activeLabel: activeLabel,\n activeCoordinate: activeCoordinate,\n activePayload: activePayload\n }));\n } else {\n _this.setState(data);\n }\n }\n };\n\n _this.handleBrushChange = function (_ref2) {\n var startIndex = _ref2.startIndex,\n endIndex = _ref2.endIndex;\n\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\n _this.setState(function () {\n return _objectSpread({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n }, _this.updateStateOfAxisMapsOffsetAndStackGroups({\n props: _this.props,\n dataStartIndex: startIndex,\n dataEndIndex: endIndex,\n updateId: updateId\n }));\n });\n\n _this.triggerSyncEvent({\n dataStartIndex: startIndex,\n dataEndIndex: endIndex\n });\n }\n };\n\n _this.handleMouseEnter = function (e) {\n var onMouseEnter = _this.props.onMouseEnter;\n\n var mouse = _this.getMouseInfo(e);\n\n if (mouse) {\n var nextState = _objectSpread({}, mouse, {\n isTooltipActive: true\n });\n\n _this.setState(nextState);\n\n _this.triggerSyncEvent(nextState);\n\n if (_isFunction(onMouseEnter)) {\n onMouseEnter(nextState, e);\n }\n }\n };\n\n _this.triggeredAfterMouseMove = function (e) {\n var onMouseMove = _this.props.onMouseMove;\n\n var mouse = _this.getMouseInfo(e);\n\n var nextState = mouse ? _objectSpread({}, mouse, {\n isTooltipActive: true\n }) : {\n isTooltipActive: false\n };\n\n _this.setState(nextState);\n\n _this.triggerSyncEvent(nextState);\n\n if (_isFunction(onMouseMove)) {\n onMouseMove(nextState, e);\n }\n };\n\n _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 _this.handleItemMouseLeave = function () {\n _this.setState(function () {\n return {\n isTooltipActive: false\n };\n });\n };\n\n _this.handleMouseMove = function (e) {\n if (e && _isFunction(e.persist)) {\n e.persist();\n }\n\n _this.triggeredAfterMouseMove(e);\n };\n\n _this.handleMouseLeave = function (e) {\n var onMouseLeave = _this.props.onMouseLeave;\n var nextState = {\n isTooltipActive: false\n };\n\n _this.setState(nextState);\n\n _this.triggerSyncEvent(nextState);\n\n if (_isFunction(onMouseLeave)) {\n onMouseLeave(nextState, e);\n }\n };\n\n _this.handleOuterEvent = function (e) {\n var eventName = getReactEventByType(e);\n\n if (eventName && _isFunction(_this.props[eventName])) {\n var mouse = _this.getMouseInfo(e);\n\n var handler = _this.props[eventName];\n handler(mouse, e);\n }\n };\n\n _this.handleClick = function (e) {\n var onClick = _this.props.onClick;\n\n if (_isFunction(onClick)) {\n var mouse = _this.getMouseInfo(e);\n\n onClick(mouse, e);\n }\n };\n\n _this.handleMouseDown = function (e) {\n var onMouseDown = _this.props.onMouseDown;\n\n if (_isFunction(onMouseDown)) {\n var mouse = _this.getMouseInfo(e);\n\n onMouseDown(mouse, e);\n }\n };\n\n _this.handleMouseUp = function (e) {\n var onMouseUp = _this.props.onMouseUp;\n\n if (_isFunction(onMouseUp)) {\n var mouse = _this.getMouseInfo(e);\n\n onMouseUp(mouse, e);\n }\n };\n\n _this.handleTouchMove = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseMove(e.changedTouches[0]);\n }\n };\n\n _this.handleTouchStart = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseDown(e.changedTouches[0]);\n }\n };\n\n _this.handleTouchEnd = function (e) {\n if (e.changedTouches != null && e.changedTouches.length > 0) {\n _this.handleMouseUp(e.changedTouches[0]);\n }\n };\n\n _this.verticalCoordinatesGenerator = function (_ref3) {\n var xAxis = _ref3.xAxis,\n width = _ref3.width,\n height = _ref3.height,\n offset = _ref3.offset;\n return getCoordinatesOfGrid(CartesianAxis.getTicks(_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\n _this.horizontalCoordinatesGenerator = function (_ref4) {\n var yAxis = _ref4.yAxis,\n width = _ref4.width,\n height = _ref4.height,\n offset = _ref4.offset;\n return getCoordinatesOfGrid(CartesianAxis.getTicks(_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\n _this.axesTicksGenerator = function (axis) {\n return getTicksOfAxis(axis, true);\n };\n\n _this.tooltipTicksGenerator = function (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)\n };\n };\n\n _this.renderCursor = function (element) {\n var _this$state3 = _this.state,\n isTooltipActive = _this$state3.isTooltipActive,\n activeCoordinate = _this$state3.activeCoordinate,\n activePayload = _this$state3.activePayload,\n offset = _this$state3.offset;\n\n if (!element || !element.props.cursor || !isTooltipActive || !activeCoordinate) {\n return null;\n }\n\n var layout = _this.props.layout;\n var restProps;\n var cursorComp = Curve;\n\n if (chartName === 'ScatterChart') {\n restProps = activeCoordinate;\n cursorComp = Cross;\n } else if (chartName === 'BarChart') {\n restProps = _this.getCursorRectangle();\n cursorComp = Rectangle;\n } else if (layout === 'radial') {\n 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\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\n var key = element.key || '_recharts-cursor';\n\n var cursorProps = _objectSpread({\n stroke: '#ccc',\n pointerEvents: 'none'\n }, offset, {}, restProps, {}, getPresentationAttributes(element.props.cursor), {\n payload: activePayload,\n key: key,\n className: 'recharts-tooltip-cursor'\n });\n\n return isValidElement(element.props.cursor) ? cloneElement(element.props.cursor, cursorProps) : createElement(cursorComp, cursorProps);\n };\n\n _this.renderPolarAxis = function (element, displayName, index) {\n var axisType = element.type.axisType;\n\n var axisMap = _this.state[\"\".concat(axisType, \"Map\")];\n\n var axisOption = axisMap[element.props[\"\".concat(axisType, \"Id\")]];\n return cloneElement(element, _objectSpread({}, axisOption, {\n className: axisType,\n key: element.key || \"\".concat(displayName, \"-\").concat(index),\n ticks: getTicksOfAxis(axisOption, true)\n }));\n };\n\n _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\n _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 _this.renderGrid = function (element) {\n var _this$state4 = _this.state,\n xAxisMap = _this$state4.xAxisMap,\n yAxisMap = _this$state4.yAxisMap,\n offset = _this$state4.offset;\n var _this$props2 = _this.props,\n width = _this$props2.width,\n height = _this$props2.height;\n var xAxis = getAnyElementOfObject(xAxisMap);\n\n var yAxisWithFiniteDomain = _find(yAxisMap, function (axis) {\n return _every(axis.domain, Number.isFinite);\n });\n\n var yAxis = yAxisWithFiniteDomain || getAnyElementOfObject(yAxisMap);\n var props = element.props || {};\n return cloneElement(element, {\n key: element.key || 'grid',\n x: isNumber(props.x) ? props.x : offset.left,\n y: isNumber(props.y) ? props.y : offset.top,\n width: isNumber(props.width) ? props.width : offset.width,\n height: isNumber(props.height) ? props.height : offset.height,\n xAxis: 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\n _this.renderPolarGrid = function (element) {\n var _this$state5 = _this.state,\n radiusAxisMap = _this$state5.radiusAxisMap,\n angleAxisMap = _this$state5.angleAxisMap;\n var radiusAxis = getAnyElementOfObject(radiusAxisMap);\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n var cx = angleAxis.cx,\n cy = angleAxis.cy,\n innerRadius = angleAxis.innerRadius,\n outerRadius = angleAxis.outerRadius;\n return cloneElement(element, {\n polarAngles: getTicksOfAxis(angleAxis, true).map(function (entry) {\n return entry.coordinate;\n }),\n 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 });\n };\n\n _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; // TODO: update brush when children update\n\n return 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\n _this.renderReferenceElement = function (element, displayName, index) {\n if (!element) {\n return null;\n }\n\n var _assertThisInitialize = _assertThisInitialized(_this),\n clipPathId = _assertThisInitialize.clipPathId;\n\n var _this$state7 = _this.state,\n xAxisMap = _this$state7.xAxisMap,\n yAxisMap = _this$state7.yAxisMap,\n offset = _this$state7.offset;\n var _element$props = element.props,\n xAxisId = _element$props.xAxisId,\n yAxisId = _element$props.yAxisId;\n return 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\n _this.renderGraphicChild = function (element, displayName, index) {\n var item = _this.filterFormatItem(element, displayName, index);\n\n if (!item) {\n return null;\n }\n\n var graphicalItem = cloneElement(element, item.props);\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$props = item.props,\n points = _item$props.points,\n isRange = _item$props.isRange,\n baseLine = _item$props.baseLine;\n var _item$item$props = item.item.props,\n activeDot = _item$item$props.activeDot,\n hide = _item$item$props.hide;\n var hasActive = !hide && isTooltipActive && tooltipItem && activeDot && activeTooltipIndex >= 0;\n\n function findWithPayload(entry) {\n return tooltipAxis.dataKey(entry.payload);\n }\n\n if (hasActive) {\n var activePoint, basePoint;\n\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n var specifiedKey = typeof tooltipAxis.dataKey === 'function' ? findWithPayload : 'payload.'.concat(tooltipAxis.dataKey);\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\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\n if (isRange) {\n return [graphicalItem, null, null];\n }\n\n return [graphicalItem, null];\n };\n\n _this.renderCustomized = function (element) {\n return cloneElement(element, _objectSpread({}, _this.props, {}, _this.state));\n };\n\n var defaultState = _this.constructor.createDefaultState(_props);\n\n var _updateId = 0;\n _this.state = _objectSpread({}, defaultState, {\n updateId: 0\n }, _this.updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread({\n props: _props\n }, defaultState, {\n updateId: _updateId\n })));\n _this.uniqueChartId = _isNil(_props.id) ? uniqueId('recharts') : _props.id;\n _this.clipPathId = \"\".concat(_this.uniqueChartId, \"-clip\");\n\n if (_props.throttleDelay) {\n _this.triggeredAfterMouseMove = _throttle(_this.triggeredAfterMouseMove, _props.throttleDelay);\n }\n\n return _this;\n }\n /* eslint-disable react/no-did-mount-set-state */\n\n\n _createClass(CategoricalChartWrapper, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!_isNil(this.props.syncId)) {\n this.addListener();\n }\n } // eslint-disable-next-line camelcase\n\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(nextProps) {\n var _this2 = this;\n\n var _this$props4 = this.props,\n data = _this$props4.data,\n children = _this$props4.children,\n width = _this$props4.width,\n height = _this$props4.height,\n layout = _this$props4.layout,\n stackOffset = _this$props4.stackOffset,\n margin = _this$props4.margin;\n var updateId = this.state.updateId;\n\n if (nextProps.data !== data || nextProps.width !== width || nextProps.height !== height || nextProps.layout !== layout || nextProps.stackOffset !== stackOffset || !shallowEqual(nextProps.margin, margin)) {\n var defaultState = this.constructor.createDefaultState(nextProps);\n this.setState(_objectSpread({}, defaultState, {\n updateId: updateId + 1\n }, this.updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread({\n props: nextProps\n }, defaultState, {\n updateId: updateId + 1\n }))));\n } else if (!isChildrenEqual(nextProps.children, children)) {\n // update configuration in chilren\n var hasGlobalData = !_isNil(nextProps.data);\n var newUpdateId = hasGlobalData ? updateId : updateId + 1;\n this.setState(function (prevState) {\n return _objectSpread({\n updateId: newUpdateId\n }, _this2.updateStateOfAxisMapsOffsetAndStackGroups(_objectSpread({\n props: nextProps\n }, prevState, {\n updateId: newUpdateId\n })));\n });\n } // add syncId\n\n\n if (_isNil(this.props.syncId) && !_isNil(nextProps.syncId)) {\n this.addListener();\n } // remove syncId\n\n\n if (!_isNil(this.props.syncId) && _isNil(nextProps.syncId)) {\n this.removeListener();\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (!_isNil(this.props.syncId)) {\n this.removeListener();\n }\n\n if (typeof this.triggeredAfterMouseMove.cancel === 'function') {\n this.triggeredAfterMouseMove.cancel();\n }\n }\n /**\n * Get the configuration of all x-axis or y-axis\n * @param {Object} props Latest props\n * @param {String} axisType The type of axis\n * @param {Array} graphicalItems The instances of item\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n\n }, {\n key: \"getAxisMap\",\n value: function getAxisMap(props, _ref5) {\n var _ref5$axisType = _ref5.axisType,\n axisType = _ref5$axisType === void 0 ? 'xAxis' : _ref5$axisType,\n AxisComp = _ref5.AxisComp,\n graphicalItems = _ref5.graphicalItems,\n stackGroups = _ref5.stackGroups,\n dataStartIndex = _ref5.dataStartIndex,\n dataEndIndex = _ref5.dataEndIndex;\n var children = props.children;\n var axisIdKey = \"\".concat(axisType, \"Id\"); // Get all the instance of Axis\n\n var axes = findAllByType(children, AxisComp);\n var axisMap = {};\n\n if (axes && axes.length) {\n axisMap = this.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 = this.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\n return axisMap;\n }\n /**\n * Get the configuration of axis by the options of axis instance\n * @param {Object} props Latest props\n * @param {Array} axes The instance of axes\n * @param {Array} graphicalItems The instances of item\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n\n }, {\n key: \"getAxisMapByAxes\",\n value: function getAxisMapByAxes(props, _ref6) {\n var _this3 = this;\n\n var axes = _ref6.axes,\n graphicalItems = _ref6.graphicalItems,\n axisType = _ref6.axisType,\n axisIdKey = _ref6.axisIdKey,\n stackGroups = _ref6.stackGroups,\n dataStartIndex = _ref6.dataStartIndex,\n dataEndIndex = _ref6.dataEndIndex;\n var layout = props.layout,\n children = props.children,\n stackOffset = props.stackOffset;\n var isCategorial = isCategorialAxis(layout, axisType); // Eliminate duplicated axes\n\n var axisMap = axes.reduce(function (result, child) {\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 var axisId = child.props[axisIdKey];\n\n var displayedData = _this3.constructor.getDisplayedData(props, {\n graphicalItems: graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId;\n }),\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n\n var len = displayedData.length;\n\n if (!result[axisId]) {\n var domain, duplicateDomain, categoricalDomain;\n\n if (dataKey) {\n domain = getDomainOfDataByKey(displayedData, dataKey, type);\n\n if (type === 'category' && isCategorial) {\n var duplicate = hasDuplicate(domain);\n\n if (allowDuplicatedCategory && duplicate) {\n duplicateDomain = domain; // When category axis has duplicated text, serial numbers are used to generate scale\n\n domain = _range(0, len);\n } else if (!allowDuplicatedCategory) {\n // remove duplicated category\n domain = parseDomainOfCategoryAxis(child.props.domain, 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 if (!allowDuplicatedCategory) {\n domain = parseDomainOfCategoryAxis(child.props.domain, 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 var errorBarsDomain = parseErrorBarsOfAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), dataKey, axisType);\n\n if (errorBarsDomain) {\n domain = errorBarsDomain;\n }\n }\n\n if (isCategorial && (type === 'number' || scale !== 'auto')) {\n categoricalDomain = getDomainOfDataByKey(displayedData, dataKey, 'category');\n }\n } else if (isCategorial) {\n domain = _range(0, len);\n } else if (stackGroups && stackGroups[axisId] && stackGroups[axisId].hasStack && 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 && !item.props.hide;\n }), type, true);\n }\n\n if (type === 'number') {\n // To detect wether there is any reference lines whose props alwaysShow is true\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType, ticks);\n\n if (child.props.domain) {\n domain = parseSpecifiedDomain(child.props.domain, domain, allowDataOverflow);\n }\n }\n\n return _objectSpread({}, result, _defineProperty({}, axisId, _objectSpread({}, child.props, {\n axisType: axisType,\n domain: domain,\n categoricalDomain: categoricalDomain,\n duplicateDomain: duplicateDomain,\n originalDomain: child.props.domain,\n isCategorial: isCategorial,\n layout: layout\n })));\n }\n\n return result;\n }, {});\n return axisMap;\n }\n /**\n * Get the configuration of axis by the options of item,\n * this kind of axis does not display in chart\n * @param {Object} props Latest props\n * @param {Array} graphicalItems The instances of item\n * @param {ReactElement} Axis Axis Component\n * @param {String} axisType The type of axis, xAxis - x-axis, yAxis - y-axis\n * @param {String} axisIdKey The unique id of an axis\n * @param {Object} stackGroups The items grouped by axisId and stackId\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @return {Object} Configuration\n */\n\n }, {\n key: \"getAxisMapByItems\",\n value: function getAxisMapByItems(props, _ref7) {\n var graphicalItems = _ref7.graphicalItems,\n Axis = _ref7.Axis,\n axisType = _ref7.axisType,\n axisIdKey = _ref7.axisIdKey,\n stackGroups = _ref7.stackGroups,\n dataStartIndex = _ref7.dataStartIndex,\n dataEndIndex = _ref7.dataEndIndex;\n var layout = props.layout,\n children = props.children;\n var displayedData = this.constructor.getDisplayedData(props, {\n graphicalItems: graphicalItems,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n });\n var len = displayedData.length;\n var isCategorial = isCategorialAxis(layout, axisType);\n var index = -1; // 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\n var axisMap = graphicalItems.reduce(function (result, child) {\n var axisId = child.props[axisIdKey];\n\n if (!result[axisId]) {\n index++;\n var domain;\n\n if (isCategorial) {\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(Axis.defaultProps.domain, getDomainOfItemsWithSameAxis(displayedData, graphicalItems.filter(function (item) {\n return item.props[axisIdKey] === axisId && !item.props.hide;\n }), 'number'), Axis.defaultProps.allowDataOverflow);\n domain = detectReferenceElementsDomain(children, domain, axisId, axisType);\n }\n\n return _objectSpread({}, result, _defineProperty({}, axisId, _objectSpread({\n axisType: axisType\n }, Axis.defaultProps, {\n hide: true,\n orientation: ORIENT_MAP[axisType] && ORIENT_MAP[axisType][index % 2],\n domain: domain,\n originalDomain: Axis.defaultProps.domain,\n isCategorial: isCategorial,\n layout: layout // specify scale when no Axis\n // scale: isCategorial ? 'band' : 'linear',\n\n })));\n }\n\n return result;\n }, {});\n return axisMap;\n }\n }, {\n key: \"getActiveCoordinate\",\n value: function getActiveCoordinate(tooltipTicks, activeIndex, rangeObj) {\n var layout = this.props.layout;\n var entry = tooltipTicks.find(function (tick) {\n return tick && tick.index === activeIndex;\n });\n\n if (entry) {\n if (layout === 'horizontal') {\n return {\n x: entry.coordinate,\n y: rangeObj.y\n };\n }\n\n if (layout === 'vertical') {\n return {\n x: rangeObj.x,\n y: entry.coordinate\n };\n }\n\n if (layout === 'centric') {\n var _angle = entry.coordinate;\n var _radius = rangeObj.radius;\n return _objectSpread({}, rangeObj, {}, polarToCartesian(rangeObj.cx, rangeObj.cy, _radius, _angle), {\n angle: _angle,\n radius: _radius\n });\n }\n\n var radius = entry.coordinate;\n var angle = rangeObj.angle;\n return _objectSpread({}, rangeObj, {}, polarToCartesian(rangeObj.cx, rangeObj.cy, radius, angle), {\n angle: angle,\n radius: radius\n });\n }\n\n return originCoordinate;\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 }, {\n key: \"getMouseInfo\",\n value: function getMouseInfo(event) {\n if (!this.container) {\n return null;\n }\n\n var containerOffset = getOffset(this.container);\n var e = calculateChartCoordinate(event, containerOffset);\n var rangeObj = this.inRange(e.chartX, e.chartY);\n\n if (!rangeObj) {\n return null;\n }\n\n var _this$state9 = this.state,\n xAxisMap = _this$state9.xAxisMap,\n yAxisMap = _this$state9.yAxisMap;\n\n if (eventType !== '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({}, e, {\n xValue: xValue,\n yValue: yValue\n });\n }\n\n var _this$state10 = this.state,\n ticks = _this$state10.orderedTooltipTicks,\n axis = _this$state10.tooltipAxis,\n tooltipTicks = _this$state10.tooltipTicks;\n var pos = this.calculateTooltipPos(rangeObj);\n var activeIndex = calculateActiveTickIndex(pos, ticks, tooltipTicks, axis);\n\n if (activeIndex >= 0 && tooltipTicks) {\n var activeLabel = tooltipTicks[activeIndex] && tooltipTicks[activeIndex].value;\n var activePayload = this.getTooltipContent(activeIndex, activeLabel);\n var activeCoordinate = this.getActiveCoordinate(ticks, activeIndex, rangeObj);\n return _objectSpread({}, e, {\n activeTooltipIndex: activeIndex,\n activeLabel: activeLabel,\n activePayload: activePayload,\n activeCoordinate: activeCoordinate\n });\n }\n\n return null;\n }\n /**\n * Get the content to be displayed in the tooltip\n * @param {Number} activeIndex Active index of data\n * @param {String} activeLabel Active label of data\n * @return {Array} The content of tooltip\n */\n\n }, {\n key: \"getTooltipContent\",\n value: function getTooltipContent(activeIndex, activeLabel) {\n var _this$state11 = this.state,\n graphicalItems = _this$state11.graphicalItems,\n tooltipAxis = _this$state11.tooltipAxis;\n var displayedData = this.constructor.getDisplayedData(this.props, this.state);\n\n if (activeIndex < 0 || !graphicalItems || !graphicalItems.length || activeIndex >= displayedData.length) {\n return null;\n } // get data by activeIndex when the axis don't allow duplicated category\n\n\n return graphicalItems.reduce(function (result, child) {\n var hide = child.props.hide;\n\n if (hide) {\n return result;\n }\n\n var _child$props2 = child.props,\n dataKey = _child$props2.dataKey,\n name = _child$props2.name,\n unit = _child$props2.unit,\n formatter = _child$props2.formatter,\n data = _child$props2.data,\n tooltipType = _child$props2.tooltipType;\n var payload;\n\n if (tooltipAxis.dataKey && !tooltipAxis.allowDuplicatedCategory) {\n // graphic child has data props\n payload = findEntryInArray(data || displayedData, tooltipAxis.dataKey, activeLabel);\n } else {\n payload = data && data[activeIndex] || displayedData[activeIndex];\n }\n\n if (!payload) {\n return result;\n }\n\n return [].concat(_toConsumableArray(result), [_objectSpread({}, getPresentationAttributes(child), {\n dataKey: dataKey,\n unit: unit,\n formatter: formatter,\n name: name || dataKey,\n color: getMainColorOfGraphicItem(child),\n value: getValueByDataKey(payload, dataKey),\n type: tooltipType,\n payload: payload\n })]);\n }, []);\n }\n }, {\n key: \"getFormatItems\",\n value: function getFormatItems(props, currentState) {\n var _this4 = this;\n\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\n var _this$constructor$get = this.constructor.getAxisNameByLayout(layout),\n numericAxisName = _this$constructor$get.numericAxisName,\n cateAxisName = _this$constructor$get.cateAxisName;\n\n var hasBar = this.constructor.hasBar(graphicalItems);\n var sizeList = hasBar && getBarSizeList({\n barSize: barSize,\n stackGroups: stackGroups\n });\n var formatedItems = [];\n graphicalItems.forEach(function (item, index) {\n var displayedData = _this4.constructor.getDisplayedData(props, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }, item);\n\n var _item$props2 = item.props,\n dataKey = _item$props2.dataKey,\n childMaxBarSize = _item$props2.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 _objectSpread4;\n\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({}, result, (_objectSpread4 = {}, _defineProperty(_objectSpread4, entry.axisType, axis), _defineProperty(_objectSpread4, \"\".concat(entry.axisType, \"Ticks\"), getTicksOfAxis(axis)), _objectSpread4));\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 bandSize = getBandSizeOfAxis(cateAxis, cateTicks);\n var maxBarSize = _isNil(childMaxBarSize) ? globalMaxBarSize : childMaxBarSize;\n var barPosition = hasBar && getBarPosition({\n barGap: barGap,\n barCategoryGap: barCategoryGap,\n bandSize: bandSize,\n sizeList: sizeList[cateAxisId],\n maxBarSize: maxBarSize\n });\n var componsedFn = item && item.type && item.type.getComposedData;\n\n if (componsedFn) {\n var _objectSpread5;\n\n formatedItems.push({\n props: _objectSpread({}, componsedFn(_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 onItemMouseLeave: combineEventHandlers(_this4.handleItemMouseLeave, null, item.props.onMouseLeave),\n onItemMouseEnter: combineEventHandlers(_this4.handleItemMouseEnter, null, item.props.onMouseEnter)\n })), (_objectSpread5 = {\n key: item.key || \"item-\".concat(index)\n }, _defineProperty(_objectSpread5, numericAxisName, axisObj[numericAxisName]), _defineProperty(_objectSpread5, cateAxisName, axisObj[cateAxisName]), _defineProperty(_objectSpread5, \"animationId\", updateId), _objectSpread5)),\n childIndex: parseChildIndex(item, props.children),\n item: item\n });\n }\n });\n return formatedItems;\n }\n }, {\n key: \"getCursorRectangle\",\n value: function getCursorRectangle() {\n var layout = this.props.layout;\n var _this$state12 = this.state,\n activeCoordinate = _this$state12.activeCoordinate,\n offset = _this$state12.offset,\n tooltipAxisBandSize = _this$state12.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$state13 = this.state,\n activeCoordinate = _this$state13.activeCoordinate,\n offset = _this$state13.offset;\n var x1, y1, x2, y2;\n\n if (layout === 'horizontal') {\n x1 = activeCoordinate.x;\n x2 = x1;\n y1 = offset.top;\n y2 = offset.top + offset.height;\n } else if (layout === 'vertical') {\n y1 = activeCoordinate.y;\n y2 = y1;\n x1 = offset.left;\n x2 = offset.left + offset.width;\n } else if (!_isNil(activeCoordinate.cx) || !_isNil(activeCoordinate.cy)) {\n if (layout === 'centric') {\n 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\n return [{\n x: x1,\n y: y1\n }, {\n x: x2,\n y: y2\n }];\n }\n }, {\n key: \"calculateTooltipPos\",\n value: function calculateTooltipPos(rangeObj) {\n var layout = this.props.layout;\n\n if (layout === 'horizontal') {\n return rangeObj.x;\n }\n\n if (layout === 'vertical') {\n return rangeObj.y;\n }\n\n if (layout === 'centric') {\n return rangeObj.angle;\n }\n\n return rangeObj.radius;\n }\n }, {\n key: \"inRange\",\n value: function inRange(x, y) {\n var layout = this.props.layout;\n\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\n var _this$state14 = this.state,\n angleAxisMap = _this$state14.angleAxisMap,\n radiusAxisMap = _this$state14.radiusAxisMap;\n\n if (angleAxisMap && radiusAxisMap) {\n var angleAxis = getAnyElementOfObject(angleAxisMap);\n return inRangeOfSector({\n x: x,\n y: y\n }, angleAxis);\n }\n\n return null;\n }\n }, {\n key: \"parseEventsOfWrapper\",\n value: function parseEventsOfWrapper() {\n var children = this.props.children;\n var tooltipItem = findChildByType(children, Tooltip);\n var tooltipEvents = tooltipItem && eventType === 'axis' ? {\n onMouseEnter: this.handleMouseEnter,\n onMouseMove: this.handleMouseMove,\n onMouseLeave: this.handleMouseLeave,\n onTouchMove: this.handleTouchMove,\n onTouchStart: this.handleTouchStart,\n onTouchEnd: this.handleTouchEnd\n } : {};\n var outerEvents = filterEventAttributes(this.props, this.handleOuterEvent);\n return _objectSpread({}, outerEvents, {}, tooltipEvents);\n }\n /**\n * The AxisMaps are expensive to render on large data sets\n * so provide the ability to store them in state and only update them when necessary\n * they are dependent upon the start and end index of\n * the brush so it's important that this method is called _after_\n * the state is updated with any new start/end indices\n *\n * @param {Object} props The props object to be used for updating the axismaps\n * @param {Number} dataStartIndex The start index of the data series when a brush is applied\n * @param {Number} dataEndIndex The end index of the data series when a brush is applied\n * @param {Number} updateId The update id\n * @return {Object} state New state to set\n */\n\n }, {\n key: \"updateStateOfAxisMapsOffsetAndStackGroups\",\n value: function updateStateOfAxisMapsOffsetAndStackGroups(_ref8) {\n var _this5 = this;\n\n var props = _ref8.props,\n dataStartIndex = _ref8.dataStartIndex,\n dataEndIndex = _ref8.dataEndIndex,\n updateId = _ref8.updateId;\n\n if (!validateWidthHeight({\n props: props\n })) {\n return null;\n }\n\n var children = props.children,\n layout = props.layout,\n stackOffset = props.stackOffset,\n data = props.data,\n reverseStackOrder = props.reverseStackOrder;\n\n var _this$constructor$get2 = this.constructor.getAxisNameByLayout(layout),\n numericAxisName = _this$constructor$get2.numericAxisName,\n cateAxisName = _this$constructor$get2.cateAxisName;\n\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({}, result, _defineProperty({}, name, _this5.getAxisMap(props, _objectSpread({}, entry, {\n graphicalItems: graphicalItems,\n stackGroups: entry.axisType === numericAxisName && stackGroups,\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex\n }))));\n }, {});\n var offset = this.calculateOffset(_objectSpread({}, axisObj, {\n props: props,\n graphicalItems: graphicalItems\n }));\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 = this.tooltipTicksGenerator(cateAxisMap);\n var formatedGraphicalItems = this.getFormatItems(props, _objectSpread({}, axisObj, {\n dataStartIndex: dataStartIndex,\n dataEndIndex: dataEndIndex,\n updateId: updateId,\n graphicalItems: graphicalItems,\n stackGroups: stackGroups,\n offset: offset\n }));\n return _objectSpread({\n formatedGraphicalItems: formatedGraphicalItems,\n graphicalItems: graphicalItems,\n offset: offset,\n stackGroups: stackGroups\n }, ticksObj, {}, axisObj);\n }\n /* eslint-disable no-underscore-dangle */\n\n }, {\n key: \"addListener\",\n value: function addListener() {\n eventCenter.on(SYNC_EVENT, this.handleReceiveSyncEvent);\n\n if (eventCenter.setMaxListeners && eventCenter._maxListeners) {\n eventCenter.setMaxListeners(eventCenter._maxListeners + 1);\n }\n }\n }, {\n key: \"removeListener\",\n value: function removeListener() {\n eventCenter.removeListener(SYNC_EVENT, this.handleReceiveSyncEvent);\n\n if (eventCenter.setMaxListeners && eventCenter._maxListeners) {\n eventCenter.setMaxListeners(eventCenter._maxListeners - 1);\n }\n }\n /**\n * Calculate the offset of main part in the svg element\n * @param {Object} props Latest props\n * @param {Array} graphicalItems The instances of item\n * @param {Object} xAxisMap The configuration of x-axis\n * @param {Object} yAxisMap The configuration of y-axis\n * @return {Object} The offset of main part in the svg element\n */\n\n }, {\n key: \"calculateOffset\",\n value: function calculateOffset(_ref9) {\n var props = _ref9.props,\n graphicalItems = _ref9.graphicalItems,\n _ref9$xAxisMap = _ref9.xAxisMap,\n xAxisMap = _ref9$xAxisMap === void 0 ? {} : _ref9$xAxisMap,\n _ref9$yAxisMap = _ref9.yAxisMap,\n yAxisMap = _ref9$yAxisMap === void 0 ? {} : _ref9$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\n if (!entry.mirror && !entry.hide) {\n return _objectSpread({}, result, _defineProperty({}, orientation, result[orientation] + entry.width));\n }\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\n if (!entry.mirror && !entry.hide) {\n return _objectSpread({}, result, _defineProperty({}, orientation, result[orientation] + entry.height));\n }\n\n return result;\n }, {\n top: margin.top || 0,\n bottom: margin.bottom || 0\n });\n\n var offset = _objectSpread({}, offsetV, {}, offsetH);\n\n var brushBottom = offset.bottom;\n\n if (brushItem) {\n offset.bottom += brushItem.props.height || Brush.defaultProps.height;\n }\n\n if (legendItem && this.legendInstance) {\n var legendBox = this.legendInstance.getBBox();\n offset = appendOffsetOfLegend(offset, graphicalItems, props, legendBox);\n }\n\n return _objectSpread({\n brushBottom: brushBottom\n }, offset, {\n width: width - offset.left - offset.right,\n height: height - offset.top - offset.bottom\n });\n }\n }, {\n key: \"triggerSyncEvent\",\n value: function triggerSyncEvent(data) {\n var syncId = this.props.syncId;\n\n if (!_isNil(syncId)) {\n eventCenter.emit(SYNC_EVENT, syncId, this.uniqueChartId, data);\n }\n }\n }, {\n key: \"filterFormatItem\",\n value: function filterFormatItem(item, displayName, childIndex) {\n var formatedGraphicalItems = this.state.formatedGraphicalItems;\n\n for (var i = 0, len = formatedGraphicalItems.length; i < len; i++) {\n var entry = formatedGraphicalItems[i];\n\n if (entry.item === item || entry.props.key === item.key || displayName === getDisplayName(entry.item.type) && childIndex === entry.childIndex) {\n return entry;\n }\n }\n\n return null;\n }\n }, {\n key: \"renderAxis\",\n\n /**\n * Draw axis\n * @param {Object} axisOptions The options of axis\n * @param {Object} element The axis element\n * @param {String} displayName The display name of axis\n * @param {Number} index The index of element\n * @return {ReactElement} The instance of x-axes\n */\n value: function renderAxis(axisOptions, element, displayName, index) {\n var _this$props5 = this.props,\n width = _this$props5.width,\n height = _this$props5.height;\n return 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 * Draw grid\n * @param {ReactElement} element the grid item\n * @return {ReactElement} The instance of grid\n */\n\n }, {\n key: \"renderLegend\",\n\n /**\n * Draw legend\n * @return {ReactElement} The instance of Legend\n */\n value: function renderLegend() {\n var _this6 = this;\n\n var formatedGraphicalItems = this.state.formatedGraphicalItems;\n var _this$props6 = this.props,\n children = _this$props6.children,\n width = _this$props6.width,\n height = _this$props6.height;\n var margin = this.props.margin || {};\n var legendWidth = width - (margin.left || 0) - (margin.right || 0);\n var legendHeight = height - (margin.top || 0) - (margin.bottom || 0);\n var props = getLegendProps({\n children: children,\n formatedGraphicalItems: formatedGraphicalItems,\n legendWidth: legendWidth,\n legendHeight: legendHeight,\n legendContent: legendContent\n });\n\n if (!props) {\n return null;\n }\n\n var item = props.item,\n otherProps = _objectWithoutProperties(props, [\"item\"]);\n\n return cloneElement(item, _objectSpread({}, otherProps, {\n chartWidth: width,\n chartHeight: height,\n margin: margin,\n ref: function ref(legend) {\n _this6.legendInstance = legend;\n },\n onBBoxUpdate: this.handleLegendBBoxUpdate\n }));\n }\n /**\n * Draw Tooltip\n * @return {ReactElement} The instance of Tooltip\n */\n\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip() {\n var children = this.props.children;\n var tooltipItem = findChildByType(children, Tooltip);\n\n if (!tooltipItem) {\n return null;\n }\n\n var _this$state15 = this.state,\n isTooltipActive = _this$state15.isTooltipActive,\n activeCoordinate = _this$state15.activeCoordinate,\n activePayload = _this$state15.activePayload,\n activeLabel = _this$state15.activeLabel,\n offset = _this$state15.offset;\n return cloneElement(tooltipItem, {\n viewBox: _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 }, {\n key: \"renderActivePoints\",\n value: function renderActivePoints(_ref10) {\n var item = _ref10.item,\n activePoint = _ref10.activePoint,\n basePoint = _ref10.basePoint,\n childIndex = _ref10.childIndex,\n isRange = _ref10.isRange;\n var result = [];\n var key = item.props.key;\n var _item$item$props2 = item.item.props,\n activeDot = _item$item$props2.activeDot,\n dataKey = _item$item$props2.dataKey;\n\n var dotProps = _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 }, getPresentationAttributes(activeDot), {}, filterEventAttributes(activeDot));\n\n result.push(this.constructor.renderActiveDot(activeDot, dotProps, childIndex));\n\n if (basePoint) {\n result.push(this.constructor.renderActiveDot(activeDot, _objectSpread({}, dotProps, {\n cx: basePoint.x,\n cy: basePoint.y,\n key: \"\".concat(key, \"-basePoint-\").concat(childIndex)\n }), childIndex));\n } else if (isRange) {\n result.push(null);\n }\n\n return result;\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 React.createElement(\"defs\", null, React.createElement(\"clipPath\", {\n id: clipPathId\n }, React.createElement(\"rect\", {\n x: left,\n y: top,\n height: height,\n width: width\n })));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this7 = this;\n\n if (!validateWidthHeight(this)) {\n return null;\n }\n\n var _this$props7 = this.props,\n children = _this$props7.children,\n className = _this$props7.className,\n width = _this$props7.width,\n height = _this$props7.height,\n style = _this$props7.style,\n compact = _this$props7.compact,\n others = _objectWithoutProperties(_this$props7, [\"children\", \"className\", \"width\", \"height\", \"style\", \"compact\"]);\n\n var attrs = getPresentationAttributes(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 }; // The \"compact\" mode is mainly used as the panorama within Brush\n\n if (compact) {\n return React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height\n }), this.renderClipPath(), renderByOrder(children, map));\n }\n\n var events = this.parseEventsOfWrapper();\n return 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 _this7.container = node;\n }\n }), React.createElement(Surface, _extends({}, attrs, {\n width: width,\n height: height\n }), this.renderClipPath(), renderByOrder(children, map)), this.renderLegend(), this.renderTooltip());\n }\n }], [{\n key: \"getAxisNameByLayout\",\n value: function getAxisNameByLayout(layout) {\n if (layout === 'horizontal') {\n return {\n numericAxisName: 'yAxis',\n cateAxisName: 'xAxis'\n };\n }\n\n if (layout === 'vertical') {\n return {\n numericAxisName: 'xAxis',\n cateAxisName: 'yAxis'\n };\n }\n\n if (layout === 'centric') {\n return {\n numericAxisName: 'radiusAxis',\n cateAxisName: 'angleAxis'\n };\n }\n\n return {\n numericAxisName: 'angleAxis',\n cateAxisName: 'radiusAxis'\n };\n }\n }, {\n key: \"renderActiveDot\",\n value: function renderActiveDot(option, props) {\n var dot;\n\n if (isValidElement(option)) {\n dot = cloneElement(option, props);\n } else if (_isFunction(option)) {\n dot = option(props);\n } else {\n dot = React.createElement(Dot, props);\n }\n\n return React.createElement(Layer, {\n className: \"recharts-active-dot\",\n key: props.key\n }, dot);\n }\n }]);\n\n return CategoricalChartWrapper;\n }(Component);\n\n CategoricalChartWrapper.displayName = chartName;\n CategoricalChartWrapper.propTypes = _objectSpread({\n syncId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n compact: PropTypes.bool,\n width: PropTypes.number,\n height: PropTypes.number,\n data: PropTypes.arrayOf(PropTypes.object),\n layout: PropTypes.oneOf(['horizontal', 'vertical']),\n stackOffset: PropTypes.oneOf(['sign', 'expand', 'none', 'wiggle', 'silhouette']),\n throttleDelay: PropTypes.number,\n margin: PropTypes.shape({\n top: PropTypes.number,\n right: PropTypes.number,\n bottom: PropTypes.number,\n left: PropTypes.number\n }),\n barCategoryGap: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n barGap: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n barSize: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n maxBarSize: PropTypes.number,\n style: PropTypes.object,\n className: PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultShowTooltip: PropTypes.bool,\n onClick: PropTypes.func,\n onMouseLeave: PropTypes.func,\n onMouseEnter: PropTypes.func,\n onMouseMove: PropTypes.func,\n onMouseDown: PropTypes.func,\n onMouseUp: PropTypes.func,\n reverseStackOrder: PropTypes.bool,\n id: PropTypes.string\n }, propTypes);\n CategoricalChartWrapper.defaultProps = _objectSpread({\n layout: 'horizontal',\n stackOffset: 'none',\n barCategoryGap: '10%',\n barGap: 4,\n margin: {\n top: 5,\n right: 5,\n bottom: 5,\n left: 5\n },\n reverseStackOrder: false\n }, defaultProps);\n\n CategoricalChartWrapper.createDefaultState = function (props) {\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 && brushItem.props && brushItem.props.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 };\n\n CategoricalChartWrapper.hasBar = function (graphicalItems) {\n if (!graphicalItems || !graphicalItems.length) {\n return false;\n }\n\n return graphicalItems.some(function (item) {\n var name = getDisplayName(item && item.type);\n return name && name.indexOf('Bar') >= 0;\n });\n };\n\n CategoricalChartWrapper.getDisplayedData = function (props, _ref11, item) {\n var graphicalItems = _ref11.graphicalItems,\n dataStartIndex = _ref11.dataStartIndex,\n dataEndIndex = _ref11.dataEndIndex;\n var itemsData = (graphicalItems || []).reduce(function (result, child) {\n var itemData = child.props.data;\n\n if (itemData && itemData.length) {\n return [].concat(_toConsumableArray(result), _toConsumableArray(itemData));\n }\n\n return result;\n }, []);\n\n if (itemsData && itemsData.length > 0) {\n return itemsData;\n }\n\n if (item && item.props && item.props.data && item.props.data.length > 0) {\n return item.props.data;\n }\n\n var data = props.data;\n\n if (data && data.length && isNumber(dataStartIndex) && isNumber(dataEndIndex)) {\n return data.slice(dataStartIndex, dataEndIndex + 1);\n }\n\n return [];\n };\n\n return CategoricalChartWrapper;\n};\n\nexport default generateCategoricalChart;","/**\n * @fileOverview Line Chart\n */\nimport generateCategoricalChart from './generateCategoricalChart';\nimport Line from '../cartesian/Line';\nimport XAxis from '../cartesian/XAxis';\nimport YAxis from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport default generateCategoricalChart({\n chartName: 'LineChart',\n GraphicalChild: Line,\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});","/**\n * @fileOverview Bar Chart\n */\nimport generateCategoricalChart from './generateCategoricalChart';\nimport Bar from '../cartesian/Bar';\nimport XAxis from '../cartesian/XAxis';\nimport YAxis from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport default generateCategoricalChart({\n chartName: 'BarChart',\n GraphicalChild: Bar,\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});","/**\n * @fileOverview Area Chart\n */\nimport generateCategoricalChart from './generateCategoricalChart';\nimport Area from '../cartesian/Area';\nimport XAxis from '../cartesian/XAxis';\nimport YAxis from '../cartesian/YAxis';\nimport { formatAxisMap } from '../util/CartesianUtils';\nexport default generateCategoricalChart({\n chartName: 'AreaChart',\n GraphicalChild: Area,\n axisComponents: [{\n axisType: 'xAxis',\n AxisComp: XAxis\n }, {\n axisType: 'yAxis',\n AxisComp: YAxis\n }],\n formatAxisMap: formatAxisMap\n});","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","/*! decimal.js-light v2.5.1 https://github.com/MikeMcl/decimal.js-light/LICENCE */\r\n;(function (globalScope) {\r\n 'use strict';\r\n\r\n\r\n /*\r\n * decimal.js-light v2.5.1\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js-light\r\n * Copyright (c) 2020 Michael Mclaughlin \r\n * MIT Expat Licence\r\n */\r\n\r\n\r\n // ----------------------------------- EDITABLE DEFAULTS ------------------------------------ //\r\n\r\n\r\n // The limit on the value of `precision`, and on the value of the first argument to\r\n // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n var MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n Decimal = {\r\n\r\n // These values must be integers within the stated ranges (inclusive).\r\n // Most of these values can be changed during run-time using `Decimal.config`.\r\n\r\n // The maximum number of significant digits of the result of a calculation or base conversion.\r\n // E.g. `Decimal.config({ precision: 20 });`\r\n precision: 20, // 1 to MAX_DIGITS\r\n\r\n // The rounding mode used by default by `toInteger`, `toDecimalPlaces`, `toExponential`,\r\n // `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n //\r\n // ROUND_UP 0 Away from zero.\r\n // ROUND_DOWN 1 Towards zero.\r\n // ROUND_CEIL 2 Towards +Infinity.\r\n // ROUND_FLOOR 3 Towards -Infinity.\r\n // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n //\r\n // E.g.\r\n // `Decimal.rounding = 4;`\r\n // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\r\n rounding: 4, // 0 to 8\r\n\r\n // The exponent value at and beneath which `toString` returns exponential notation.\r\n // JavaScript numbers: -7\r\n toExpNeg: -7, // 0 to -MAX_E\r\n\r\n // The exponent value at and above which `toString` returns exponential notation.\r\n // JavaScript numbers: 21\r\n toExpPos: 21, // 0 to MAX_E\r\n\r\n // The natural logarithm of 10.\r\n // 115 digits\r\n LN10: '2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286'\r\n },\r\n\r\n\r\n // ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\r\n\r\n\r\n external = true,\r\n\r\n decimalError = '[DecimalError] ',\r\n invalidArgument = decimalError + 'Invalid argument: ',\r\n exponentOutOfRange = decimalError + 'Exponent out of range: ',\r\n\r\n mathfloor = Math.floor,\r\n mathpow = Math.pow,\r\n\r\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n ONE,\r\n BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_SAFE_INTEGER = 9007199254740991,\r\n MAX_E = mathfloor(MAX_SAFE_INTEGER / LOG_BASE), // 1286742750677284\r\n\r\n // Decimal.prototype object\r\n P = {};\r\n\r\n\r\n // Decimal prototype methods\r\n\r\n\r\n /*\r\n * absoluteValue abs\r\n * comparedTo cmp\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy idiv\r\n * equals eq\r\n * exponent\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * isInteger isint\r\n * isNegative isneg\r\n * isPositive ispos\r\n * isZero\r\n * lessThan lt\r\n * lessThanOrEqualTo lte\r\n * logarithm log\r\n * minus sub\r\n * modulo mod\r\n * naturalExponential exp\r\n * naturalLogarithm ln\r\n * negated neg\r\n * plus add\r\n * precision sd\r\n * squareRoot sqrt\r\n * times mul\r\n * toDecimalPlaces todp\r\n * toExponential\r\n * toFixed\r\n * toInteger toint\r\n * toNumber\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits tosd\r\n * toString\r\n * valueOf val\r\n */\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new this.constructor(this);\r\n if (x.s) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this Decimal is greater than the value of `y`,\r\n * -1 if the value of this Decimal is less than the value of `y`,\r\n * 0 if they have the same value\r\n *\r\n */\r\n P.comparedTo = P.cmp = function (y) {\r\n var i, j, xdL, ydL,\r\n x = this;\r\n\r\n y = new x.constructor(y);\r\n\r\n // Signs differ?\r\n if (x.s !== y.s) return x.s || -y.s;\r\n\r\n // Compare exponents.\r\n if (x.e !== y.e) return x.e > y.e ^ x.s < 0 ? 1 : -1;\r\n\r\n xdL = x.d.length;\r\n ydL = y.d.length;\r\n\r\n // Compare digit by digit.\r\n for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\r\n if (x.d[i] !== y.d[i]) return x.d[i] > y.d[i] ^ x.s < 0 ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return xdL === ydL ? 0 : xdL > ydL ^ x.s < 0 ? 1 : -1;\r\n };\r\n\r\n\r\n /*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\r\n P.decimalPlaces = P.dp = function () {\r\n var x = this,\r\n w = x.d.length - 1,\r\n dp = (w - x.e) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n w = x.d[w];\r\n if (w) for (; w % 10 == 0; w /= 10) dp--;\r\n\r\n return dp < 0 ? 0 : dp;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.dividedBy = P.div = function (y) {\r\n return divide(this, new this.constructor(y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n * by the value of `y`, truncated to `precision` significant digits.\r\n *\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(divide(x, new Ctor(y), 0, 1), Ctor.precision);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n *\r\n */\r\n P.equals = P.eq = function (y) {\r\n return !this.cmp(y);\r\n };\r\n\r\n\r\n /*\r\n * Return the (base 10) exponent value of this Decimal (this.e is the base 10000000 exponent).\r\n *\r\n */\r\n P.exponent = function () {\r\n return getBase10Exponent(this);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n * false.\r\n *\r\n */\r\n P.greaterThan = P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n * otherwise return false.\r\n *\r\n */\r\n P.greaterThanOrEqualTo = P.gte = function (y) {\r\n return this.cmp(y) >= 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\r\n P.isInteger = P.isint = function () {\r\n return this.e > this.d.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\r\n P.isNegative = P.isneg = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\r\n P.isPositive = P.ispos = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is 0, otherwise return false.\r\n *\r\n */\r\n P.isZero = function () {\r\n return this.s === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThan = P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThanOrEqualTo = P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n };\r\n\r\n\r\n /*\r\n * Return the logarithm of the value of this Decimal to the specified base, truncated to\r\n * `precision` significant digits.\r\n *\r\n * If no base is specified, return log[10](x).\r\n *\r\n * log[base](x) = ln(x) / ln(base)\r\n *\r\n * The maximum error of the result is 1 ulp (unit in the last place).\r\n *\r\n * [base] {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\n P.logarithm = P.log = function (base) {\r\n var r,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision,\r\n wpr = pr + 5;\r\n\r\n // Default base is 10.\r\n if (base === void 0) {\r\n base = new Ctor(10);\r\n } else {\r\n base = new Ctor(base);\r\n\r\n // log[-b](x) = NaN\r\n // log[0](x) = NaN\r\n // log[1](x) = NaN\r\n if (base.s < 1 || base.eq(ONE)) throw Error(decimalError + 'NaN');\r\n }\r\n\r\n // log[b](-x) = NaN\r\n // log[b](0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // log[b](1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n external = false;\r\n r = divide(ln(x, wpr), ln(base, wpr), wpr);\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.minus = P.sub = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? subtract(x, y) : add(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.modulo = P.mod = function (y) {\r\n var q,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n y = new Ctor(y);\r\n\r\n // x % 0 = NaN\r\n if (!y.s) throw Error(decimalError + 'NaN');\r\n\r\n // Return x if x is 0.\r\n if (!x.s) return round(new Ctor(x), pr);\r\n\r\n // Prevent rounding of intermediate calculations.\r\n external = false;\r\n q = divide(x, y, 0, 1).times(y);\r\n external = true;\r\n\r\n return x.minus(q);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n * i.e. the base e raised to the power the value of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.naturalExponential = P.exp = function () {\r\n return exp(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * truncated to `precision` significant digits.\r\n *\r\n */\r\n P.naturalLogarithm = P.ln = function () {\r\n return ln(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n * -1.\r\n *\r\n */\r\n P.negated = P.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s || 0;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.plus = P.add = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? add(x, y) : subtract(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return the number of significant digits of the value of this Decimal.\r\n *\r\n * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n *\r\n */\r\n P.precision = P.sd = function (z) {\r\n var e, sd, w,\r\n x = this;\r\n\r\n if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\r\n\r\n e = getBase10Exponent(x) + 1;\r\n w = x.d.length - 1;\r\n sd = w * LOG_BASE + 1;\r\n w = x.d[w];\r\n\r\n // If non-zero...\r\n if (w) {\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n for (; w % 10 == 0; w /= 10) sd--;\r\n\r\n // Add the number of digits of the first word.\r\n for (w = x.d[0]; w >= 10; w /= 10) sd++;\r\n }\r\n\r\n return z && e > sd ? e : sd;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the square root of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var e, n, pr, r, s, t, wpr,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n // Negative or zero?\r\n if (x.s < 1) {\r\n if (!x.s) return new Ctor(0);\r\n\r\n // sqrt(-x) = NaN\r\n throw Error(decimalError + 'NaN');\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+x);\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = digitsToString(x.d);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(n);\r\n e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n pr = Ctor.precision;\r\n s = wpr = pr + 3;\r\n\r\n // Newton-Raphson iteration.\r\n for (;;) {\r\n t = r;\r\n r = t.plus(divide(x, t, wpr + 2)).times(0.5);\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === (n = digitsToString(r.d)).slice(0, wpr)) {\r\n n = n.slice(wpr - 3, wpr + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\r\n // 4999, i.e. approaching a rounding boundary, continue the iteration.\r\n if (s == wpr && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n round(t, pr + 1, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n } else if (n != '9999') {\r\n break;\r\n }\r\n\r\n wpr += 4;\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal times `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.times = P.mul = function (y) {\r\n var carry, e, i, k, r, rL, t, xdL, ydL,\r\n x = this,\r\n Ctor = x.constructor,\r\n xd = x.d,\r\n yd = (y = new Ctor(y)).d;\r\n\r\n // Return 0 if either is 0.\r\n if (!x.s || !y.s) return new Ctor(0);\r\n\r\n y.s *= x.s;\r\n e = x.e + y.e;\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Ensure xd points to the longer array.\r\n if (xdL < ydL) {\r\n r = xd;\r\n xd = yd;\r\n yd = r;\r\n rL = xdL;\r\n xdL = ydL;\r\n ydL = rL;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n r = [];\r\n rL = xdL + ydL;\r\n for (i = rL; i--;) r.push(0);\r\n\r\n // Multiply!\r\n for (i = ydL; --i >= 0;) {\r\n carry = 0;\r\n for (k = xdL + i; k > i;) {\r\n t = r[k] + yd[i] * xd[k - i - 1] + carry;\r\n r[k--] = t % BASE | 0;\r\n carry = t / BASE | 0;\r\n }\r\n\r\n r[k] = (r[k] + carry) % BASE | 0;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; !r[--rL];) r.pop();\r\n\r\n if (carry) ++e;\r\n else r.shift();\r\n\r\n y.d = r;\r\n y.e = e;\r\n\r\n return external ? round(y, Ctor.precision) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n *\r\n * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toDecimalPlaces = P.todp = function (dp, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n if (dp === void 0) return x;\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n return round(x, dp + getBase10Exponent(x) + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in exponential notation rounded to\r\n * `dp` fixed decimal places using rounding mode `rounding`.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toExponential = function (dp, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = toString(x, true);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), dp + 1, rm);\r\n str = toString(x, true, dp + 1);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n * omitted.\r\n *\r\n * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n * (-0).toFixed(3) is '0.000'.\r\n * (-0.5).toFixed(0) is '-0'.\r\n *\r\n */\r\n P.toFixed = function (dp, rm) {\r\n var str, y,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) return toString(x);\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n y = round(new Ctor(x), dp + getBase10Exponent(x) + 1, rm);\r\n str = toString(y.abs(), false, dp + getBase10Exponent(y) + 1);\r\n\r\n // To determine whether to add the minus sign look at the value before it was rounded,\r\n // i.e. look at `x` rather than `y`.\r\n return x.isneg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n * rounding mode `rounding`.\r\n *\r\n */\r\n P.toInteger = P.toint = function () {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(new Ctor(x), getBase10Exponent(x) + 1, Ctor.rounding);\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this Decimal converted to a number primitive.\r\n *\r\n */\r\n P.toNumber = function () {\r\n return +this;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`,\r\n * truncated to `precision` significant digits.\r\n *\r\n * For non-integer or very large exponents pow(x, y) is calculated using\r\n *\r\n * x^y = exp(y*ln(x))\r\n *\r\n * The maximum error is 1 ulp (unit in last place).\r\n *\r\n * y {number|string|Decimal} The power to which to raise this Decimal.\r\n *\r\n */\r\n P.toPower = P.pow = function (y) {\r\n var e, k, pr, r, sign, yIsInt,\r\n x = this,\r\n Ctor = x.constructor,\r\n guard = 12,\r\n yn = +(y = new Ctor(y));\r\n\r\n // pow(x, 0) = 1\r\n if (!y.s) return new Ctor(ONE);\r\n\r\n x = new Ctor(x);\r\n\r\n // pow(0, y > 0) = 0\r\n // pow(0, y < 0) = Infinity\r\n if (!x.s) {\r\n if (y.s < 1) throw Error(decimalError + 'Infinity');\r\n return x;\r\n }\r\n\r\n // pow(1, y) = 1\r\n if (x.eq(ONE)) return x;\r\n\r\n pr = Ctor.precision;\r\n\r\n // pow(x, 1) = x\r\n if (y.eq(ONE)) return round(x, pr);\r\n\r\n e = y.e;\r\n k = y.d.length - 1;\r\n yIsInt = e >= k;\r\n sign = x.s;\r\n\r\n if (!yIsInt) {\r\n\r\n // pow(x < 0, y non-integer) = NaN\r\n if (sign < 0) throw Error(decimalError + 'NaN');\r\n\r\n // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n } else if ((k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n r = new Ctor(ONE);\r\n\r\n // Max k of 9007199254740991 takes 53 loop iterations.\r\n // Maximum digits array length; leaves [28, 34] guard digits.\r\n e = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n external = false;\r\n\r\n for (;;) {\r\n if (k % 2) {\r\n r = r.times(x);\r\n truncate(r.d, e);\r\n }\r\n\r\n k = mathfloor(k / 2);\r\n if (k === 0) break;\r\n\r\n x = x.times(x);\r\n truncate(x.d, e);\r\n }\r\n\r\n external = true;\r\n\r\n return y.s < 0 ? new Ctor(ONE).div(r) : round(r, pr);\r\n }\r\n\r\n // Result is negative if x is negative and the last digit of integer y is odd.\r\n sign = sign < 0 && y.d[Math.max(e, k)] & 1 ? -1 : 1;\r\n\r\n x.s = 1;\r\n external = false;\r\n r = y.times(ln(x, pr + guard));\r\n external = true;\r\n r = exp(r);\r\n r.s = sign;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n var e, str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n e = getBase10Exponent(x);\r\n str = toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), sd, rm);\r\n e = getBase10Exponent(x);\r\n str = toString(x, sd <= e || e <= Ctor.toExpNeg, sd);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n * omitted.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toSignificantDigits = P.tosd = function (sd, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n }\r\n\r\n return round(new Ctor(x), sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal.\r\n *\r\n * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n *\r\n */\r\n P.toString = P.valueOf = P.val = P.toJSON = function () {\r\n var x = this,\r\n e = getBase10Exponent(x),\r\n Ctor = x.constructor;\r\n\r\n return toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n };\r\n\r\n\r\n // Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\r\n\r\n\r\n /*\r\n * add P.minus, P.plus\r\n * checkInt32 P.todp, P.toExponential, P.toFixed, P.toPrecision, P.tosd\r\n * digitsToString P.log, P.sqrt, P.pow, toString, exp, ln\r\n * divide P.div, P.idiv, P.log, P.mod, P.sqrt, exp, ln\r\n * exp P.exp, P.pow\r\n * getBase10Exponent P.exponent, P.sd, P.toint, P.sqrt, P.todp, P.toFixed, P.toPrecision,\r\n * P.toString, divide, round, toString, exp, ln\r\n * getLn10 P.log, ln\r\n * getZeroString digitsToString, toString\r\n * ln P.log, P.ln, P.pow, exp\r\n * parseDecimal Decimal\r\n * round P.abs, P.idiv, P.log, P.minus, P.mod, P.neg, P.plus, P.toint, P.sqrt,\r\n * P.times, P.todp, P.toExponential, P.toFixed, P.pow, P.toPrecision, P.tosd,\r\n * divide, getLn10, exp, ln\r\n * subtract P.minus, P.plus\r\n * toString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf\r\n * truncate P.pow\r\n *\r\n * Throws: P.log, P.mod, P.sd, P.sqrt, P.pow, checkInt32, divide, round,\r\n * getLn10, exp, ln, parseDecimal, Decimal, config\r\n */\r\n\r\n\r\n function add(x, y) {\r\n var carry, d, e, i, k, len, xd, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // If either is zero...\r\n if (!x.s || !y.s) {\r\n\r\n // Return x if y is zero.\r\n // Return y if y is non-zero.\r\n if (!y.s) y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n k = x.e;\r\n e = y.e;\r\n xd = xd.slice();\r\n i = k - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (i) {\r\n if (i < 0) {\r\n d = xd;\r\n i = -i;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = k;\r\n len = xd.length;\r\n }\r\n\r\n // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\r\n k = Math.ceil(pr / LOG_BASE);\r\n len = k > len ? k + 1 : len + 1;\r\n\r\n if (i > len) {\r\n i = len;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\r\n d.reverse();\r\n for (; i--;) d.push(0);\r\n d.reverse();\r\n }\r\n\r\n len = xd.length;\r\n i = yd.length;\r\n\r\n // If yd is longer than xd, swap xd and yd so xd points to the longer array.\r\n if (len - i < 0) {\r\n i = len;\r\n d = yd;\r\n yd = xd;\r\n xd = d;\r\n }\r\n\r\n // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\r\n for (carry = 0; i;) {\r\n carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\r\n xd[i] %= BASE;\r\n }\r\n\r\n if (carry) {\r\n xd.unshift(carry);\r\n ++e;\r\n }\r\n\r\n // Remove trailing zeros.\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n for (len = xd.length; xd[--len] == 0;) xd.pop();\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function checkInt32(i, min, max) {\r\n if (i !== ~~i || i < min || i > max) {\r\n throw Error(invalidArgument + i);\r\n }\r\n }\r\n\r\n\r\n function digitsToString(d) {\r\n var i, k, ws,\r\n indexOfLastWord = d.length - 1,\r\n str = '',\r\n w = d[0];\r\n\r\n if (indexOfLastWord > 0) {\r\n str += w;\r\n for (i = 1; i < indexOfLastWord; i++) {\r\n ws = d[i] + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n str += ws;\r\n }\r\n\r\n w = d[i];\r\n ws = w + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n } else if (w === 0) {\r\n return '0';\r\n }\r\n\r\n // Remove trailing zeros of last w.\r\n for (; w % 10 === 0;) w /= 10;\r\n\r\n return str + w;\r\n }\r\n\r\n\r\n var divide = (function () {\r\n\r\n // Assumes non-zero x and k, and hence non-zero result.\r\n function multiplyInteger(x, k) {\r\n var temp,\r\n carry = 0,\r\n i = x.length;\r\n\r\n for (x = x.slice(); i--;) {\r\n temp = x[i] * k + carry;\r\n x[i] = temp % BASE | 0;\r\n carry = temp / BASE | 0;\r\n }\r\n\r\n if (carry) x.unshift(carry);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, r;\r\n\r\n if (aL != bL) {\r\n r = aL > bL ? 1 : -1;\r\n } else {\r\n for (i = r = 0; i < aL; i++) {\r\n if (a[i] != b[i]) {\r\n r = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n function subtract(a, b, aL) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * BASE + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1;) a.shift();\r\n }\r\n\r\n return function (x, y, pr, dp) {\r\n var cmp, e, i, k, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0, yL, yz,\r\n Ctor = x.constructor,\r\n sign = x.s == y.s ? 1 : -1,\r\n xd = x.d,\r\n yd = y.d;\r\n\r\n // Either 0?\r\n if (!x.s) return new Ctor(x);\r\n if (!y.s) throw Error(decimalError + 'Division by zero');\r\n\r\n e = x.e - y.e;\r\n yL = yd.length;\r\n xL = xd.length;\r\n q = new Ctor(sign);\r\n qd = q.d = [];\r\n\r\n // Result exponent may be one less than e.\r\n for (i = 0; yd[i] == (xd[i] || 0); ) ++i;\r\n if (yd[i] > (xd[i] || 0)) --e;\r\n\r\n if (pr == null) {\r\n sd = pr = Ctor.precision;\r\n } else if (dp) {\r\n sd = pr + (getBase10Exponent(x) - getBase10Exponent(y)) + 1;\r\n } else {\r\n sd = pr;\r\n }\r\n\r\n if (sd < 0) return new Ctor(0);\r\n\r\n // Convert precision in number of base 10 digits to base 1e7 digits.\r\n sd = sd / LOG_BASE + 2 | 0;\r\n i = 0;\r\n\r\n // divisor < 1e7\r\n if (yL == 1) {\r\n k = 0;\r\n yd = yd[0];\r\n sd++;\r\n\r\n // k is the carry.\r\n for (; (i < xL || k) && sd--; i++) {\r\n t = k * BASE + (xd[i] || 0);\r\n qd[i] = t / yd | 0;\r\n k = t % yd | 0;\r\n }\r\n\r\n // divisor >= 1e7\r\n } else {\r\n\r\n // Normalise xd and yd so highest order digit of yd is >= BASE/2\r\n k = BASE / (yd[0] + 1) | 0;\r\n\r\n if (k > 1) {\r\n yd = multiplyInteger(yd, k);\r\n xd = multiplyInteger(xd, k);\r\n yL = yd.length;\r\n xL = xd.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xd.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL;) rem[remL++] = 0;\r\n\r\n yz = yd.slice();\r\n yz.unshift(0);\r\n yd0 = yd[0];\r\n\r\n if (yd[1] >= BASE / 2) ++yd0;\r\n\r\n do {\r\n k = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, k.\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * BASE + (rem[1] || 0);\r\n\r\n // k will be how many times the divisor goes into the current remainder.\r\n k = rem0 / yd0 | 0;\r\n\r\n // Algorithm:\r\n // 1. product = divisor * trial digit (k)\r\n // 2. if product > remainder: product -= divisor, k--\r\n // 3. remainder -= product\r\n // 4. if product was < remainder at 2:\r\n // 5. compare new remainder and divisor\r\n // 6. If remainder > divisor: remainder -= divisor, k++\r\n\r\n if (k > 1) {\r\n if (k >= BASE) k = BASE - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiplyInteger(yd, k);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n cmp = compare(prod, rem, prodL, remL);\r\n\r\n // product > remainder.\r\n if (cmp == 1) {\r\n k--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yd, prodL);\r\n }\r\n } else {\r\n\r\n // cmp is -1.\r\n // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\r\n // to avoid it. If k is 1 there is a need to compare yd and rem again below.\r\n if (k == 0) cmp = k = 1;\r\n prod = yd.slice();\r\n }\r\n\r\n prodL = prod.length;\r\n if (prodL < remL) prod.unshift(0);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL);\r\n\r\n // If product was < previous remainder.\r\n if (cmp == -1) {\r\n remL = rem.length;\r\n\r\n // Compare divisor and new remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n if (cmp < 1) {\r\n k++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yd, remL);\r\n }\r\n }\r\n\r\n remL = rem.length;\r\n } else if (cmp === 0) {\r\n k++;\r\n rem = [0];\r\n } // if cmp === 1, k will be 0\r\n\r\n // Add the next digit, k, to the result array.\r\n qd[i++] = k;\r\n\r\n // Update the remainder.\r\n if (cmp && rem[0]) {\r\n rem[remL++] = xd[xi] || 0;\r\n } else {\r\n rem = [xd[xi]];\r\n remL = 1;\r\n }\r\n\r\n } while ((xi++ < xL || rem[0] !== void 0) && sd--);\r\n }\r\n\r\n // Leading zero?\r\n if (!qd[0]) qd.shift();\r\n\r\n q.e = e;\r\n\r\n return round(q, dp ? pr + getBase10Exponent(q) + 1 : pr);\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of `x` truncated to `sd`\r\n * significant digits.\r\n *\r\n * Taylor/Maclaurin series.\r\n *\r\n * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n *\r\n * Argument reduction:\r\n * Repeat x = x / 32, k += 5, until |x| < 0.1\r\n * exp(x) = exp(x / 2^k)^(2^k)\r\n *\r\n * Previously, the argument was initially reduced by\r\n * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10)\r\n * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n * found to be slower than just dividing repeatedly by 32 as above.\r\n *\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n */\r\n function exp(x, sd) {\r\n var denominator, guard, pow, sum, t, wpr,\r\n i = 0,\r\n k = 0,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n if (getBase10Exponent(x) > 16) throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n\r\n // exp(0) = 1\r\n if (!x.s) return new Ctor(ONE);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n t = new Ctor(0.03125);\r\n\r\n while (x.abs().gte(0.1)) {\r\n x = x.times(t); // x = x / 2^5\r\n k += 5;\r\n }\r\n\r\n // Estimate the precision increase necessary to ensure the first 4 rounding digits are correct.\r\n guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\r\n wpr += guard;\r\n denominator = pow = sum = new Ctor(ONE);\r\n Ctor.precision = wpr;\r\n\r\n for (;;) {\r\n pow = round(pow.times(x), wpr);\r\n denominator = denominator.times(++i);\r\n t = sum.plus(divide(pow, denominator, wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n while (k--) sum = round(sum.times(sum), wpr);\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n }\r\n }\r\n\r\n\r\n // Calculate the base 10 exponent from the base 1e7 exponent.\r\n function getBase10Exponent(x) {\r\n var e = x.e * LOG_BASE,\r\n w = x.d[0];\r\n\r\n // Add the number of digits of the first word of the digits array.\r\n for (; w >= 10; w /= 10) e++;\r\n return e;\r\n }\r\n\r\n\r\n function getLn10(Ctor, sd, pr) {\r\n\r\n if (sd > Ctor.LN10.sd()) {\r\n\r\n\r\n // Reset global state in case the exception is caught.\r\n external = true;\r\n if (pr) Ctor.precision = pr;\r\n throw Error(decimalError + 'LN10 precision limit exceeded');\r\n }\r\n\r\n return round(new Ctor(Ctor.LN10), sd);\r\n }\r\n\r\n\r\n function getZeroString(k) {\r\n var zs = '';\r\n for (; k--;) zs += '0';\r\n return zs;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of `x` truncated to `sd` significant\r\n * digits.\r\n *\r\n * ln(n) is non-terminating (n != 1)\r\n *\r\n */\r\n function ln(y, sd) {\r\n var c, c0, denominator, e, numerator, sum, t, wpr, x2,\r\n n = 1,\r\n guard = 10,\r\n x = y,\r\n xd = x.d,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // ln(-x) = NaN\r\n // ln(0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // ln(1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n if (x.eq(10)) {\r\n if (sd == null) external = true;\r\n return getLn10(Ctor, wpr);\r\n }\r\n\r\n wpr += guard;\r\n Ctor.precision = wpr;\r\n c = digitsToString(xd);\r\n c0 = c.charAt(0);\r\n e = getBase10Exponent(x);\r\n\r\n if (Math.abs(e) < 1.5e15) {\r\n\r\n // Argument reduction.\r\n // The series converges faster the closer the argument is to 1, so using\r\n // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b\r\n // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\r\n // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\r\n // later be divided by this number, then separate out the power of 10 using\r\n // ln(a*10^b) = ln(a) + b*ln(10).\r\n\r\n // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\r\n //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\r\n // max n is 6 (gives 0.7 - 1.3)\r\n while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\r\n x = x.times(y);\r\n c = digitsToString(x.d);\r\n c0 = c.charAt(0);\r\n n++;\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n\r\n if (c0 > 1) {\r\n x = new Ctor('0.' + c);\r\n e++;\r\n } else {\r\n x = new Ctor(c0 + '.' + c.slice(1));\r\n }\r\n } else {\r\n\r\n // The argument reduction method above may result in overflow if the argument y is a massive\r\n // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\r\n // function using ln(x*10^e) = ln(x) + e*ln(10).\r\n t = getLn10(Ctor, wpr + 2, pr).times(e + '');\r\n x = ln(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(x, pr)) : x;\r\n }\r\n\r\n // x is reduced to a value near 1.\r\n\r\n // Taylor series.\r\n // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\r\n // where x = (y - 1)/(y + 1) (|x| < 1)\r\n sum = numerator = x = divide(x.minus(ONE), x.plus(ONE), wpr);\r\n x2 = round(x.times(x), wpr);\r\n denominator = 3;\r\n\r\n for (;;) {\r\n numerator = round(numerator.times(x2), wpr);\r\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n sum = sum.times(2);\r\n\r\n // Reverse the argument reduction.\r\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n sum = divide(sum, new Ctor(n), wpr);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n denominator += 2;\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\r\n function parseDecimal(x, str) {\r\n var e, i, len;\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48;) ++i;\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(len - 1) === 48;) --len;\r\n str = str.slice(i, len);\r\n\r\n if (str) {\r\n len -= i;\r\n e = e - i - 1;\r\n x.e = mathfloor(e / LOG_BASE);\r\n x.d = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first word of the digits array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE;\r\n\r\n if (i < len) {\r\n if (i) x.d.push(+str.slice(0, i));\r\n for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));\r\n str = str.slice(i);\r\n i = LOG_BASE - str.length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--;) str += '0';\r\n x.d.push(+str);\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) throw Error(exponentOutOfRange + e);\r\n } else {\r\n\r\n // Zero.\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Round `x` to `sd` significant digits, using rounding mode `rm` if present (truncate otherwise).\r\n */\r\n function round(x, sd, rm) {\r\n var i, j, k, n, rd, doRound, w, xdi,\r\n xd = x.d;\r\n\r\n // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // w: the word of xd which contains the rounding digit, a base 1e7 number.\r\n // xdi: the index of w within xd.\r\n // n: the number of digits of w.\r\n // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\r\n // they had leading zeros)\r\n // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\r\n\r\n // Get the length of the first word of the digits array xd.\r\n for (n = 1, k = xd[0]; k >= 10; k /= 10) n++;\r\n i = sd - n;\r\n\r\n // Is the rounding digit in the first word of xd?\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n w = xd[xdi = 0];\r\n } else {\r\n xdi = Math.ceil((i + 1) / LOG_BASE);\r\n k = xd.length;\r\n if (xdi >= k) return x;\r\n w = k = xd[xdi];\r\n\r\n // Get the number of digits of w.\r\n for (n = 1; k >= 10; k /= 10) n++;\r\n\r\n // Get the index of rd within w.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within w, adjusted for leading zeros.\r\n // The number of leading zeros of w is given by LOG_BASE - n.\r\n j = i - LOG_BASE + n;\r\n }\r\n\r\n if (rm !== void 0) {\r\n k = mathpow(10, n - j - 1);\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = w / k % 10 | 0;\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n doRound = sd < 0 || xd[xdi + 1] !== void 0 || w % k;\r\n\r\n // The expression `w % mathpow(10, n - j - 1)` returns all the digits of w to the right of the\r\n // digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression will give\r\n // 714.\r\n\r\n doRound = rm < 4\r\n ? (rd || doRound) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || doRound || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? w / mathpow(10, n - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n }\r\n\r\n if (sd < 1 || !xd[0]) {\r\n if (doRound) {\r\n k = getBase10Exponent(x);\r\n xd.length = 1;\r\n\r\n // Convert sd to decimal places.\r\n sd = sd - k - 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\r\n x.e = mathfloor(-sd / LOG_BASE) || 0;\r\n } else {\r\n xd.length = 1;\r\n\r\n // Zero.\r\n xd[0] = x.e = x.s = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xd.length = xdi;\r\n k = 1;\r\n xdi--;\r\n } else {\r\n xd.length = xdi + 1;\r\n k = mathpow(10, LOG_BASE - i);\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of w.\r\n xd[xdi] = j > 0 ? (w / mathpow(10, n - j) % mathpow(10, j) | 0) * k : 0;\r\n }\r\n\r\n if (doRound) {\r\n for (;;) {\r\n\r\n // Is the digit to be rounded up in the first word of xd?\r\n if (xdi == 0) {\r\n if ((xd[0] += k) == BASE) {\r\n xd[0] = 1;\r\n ++x.e;\r\n }\r\n\r\n break;\r\n } else {\r\n xd[xdi] += k;\r\n if (xd[xdi] != BASE) break;\r\n xd[xdi--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xd.length; xd[--i] === 0;) xd.pop();\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) {\r\n throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function subtract(x, y) {\r\n var d, e, i, j, k, len, xd, xe, xLTy, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // Return y negated if x is zero.\r\n // Return x if y is zero and x is non-zero.\r\n if (!x.s || !y.s) {\r\n if (y.s) y.s = -y.s;\r\n else y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are non-zero numbers with the same sign.\r\n\r\n e = y.e;\r\n xe = x.e;\r\n xd = xd.slice();\r\n k = xe - e;\r\n\r\n // If exponents differ...\r\n if (k) {\r\n xLTy = k < 0;\r\n\r\n if (xLTy) {\r\n d = xd;\r\n k = -k;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = xe;\r\n len = xd.length;\r\n }\r\n\r\n // Numbers with massively different exponents would result in a very high number of zeros\r\n // needing to be prepended, but this can be avoided while still ensuring correct rounding by\r\n // limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\r\n i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\r\n\r\n if (k > i) {\r\n k = i;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents.\r\n d.reverse();\r\n for (i = k; i--;) d.push(0);\r\n d.reverse();\r\n\r\n // Base 1e7 exponents equal.\r\n } else {\r\n\r\n // Check digits to determine which is the bigger number.\r\n\r\n i = xd.length;\r\n len = yd.length;\r\n xLTy = i < len;\r\n if (xLTy) len = i;\r\n\r\n for (i = 0; i < len; i++) {\r\n if (xd[i] != yd[i]) {\r\n xLTy = xd[i] < yd[i];\r\n break;\r\n }\r\n }\r\n\r\n k = 0;\r\n }\r\n\r\n if (xLTy) {\r\n d = xd;\r\n xd = yd;\r\n yd = d;\r\n y.s = -y.s;\r\n }\r\n\r\n len = xd.length;\r\n\r\n // Append zeros to xd if shorter.\r\n // Don't add zeros to yd if shorter as subtraction only needs to start at yd length.\r\n for (i = yd.length - len; i > 0; --i) xd[len++] = 0;\r\n\r\n // Subtract yd from xd.\r\n for (i = yd.length; i > k;) {\r\n if (xd[--i] < yd[i]) {\r\n for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;\r\n --xd[j];\r\n xd[i] += BASE;\r\n }\r\n\r\n xd[i] -= yd[i];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] === 0;) xd.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xd[0] === 0; xd.shift()) --e;\r\n\r\n // Zero?\r\n if (!xd[0]) return new Ctor(0);\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n //return external && xd.length >= pr / LOG_BASE ? round(y, pr) : y;\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function toString(x, isExp, sd) {\r\n var k,\r\n e = getBase10Exponent(x),\r\n str = digitsToString(x.d),\r\n len = str.length;\r\n\r\n if (isExp) {\r\n if (sd && (k = sd - len) > 0) {\r\n str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\r\n } else if (len > 1) {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n\r\n str = str + (e < 0 ? 'e' : 'e+') + e;\r\n } else if (e < 0) {\r\n str = '0.' + getZeroString(-e - 1) + str;\r\n if (sd && (k = sd - len) > 0) str += getZeroString(k);\r\n } else if (e >= len) {\r\n str += getZeroString(e + 1 - len);\r\n if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\r\n } else {\r\n if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\r\n if (sd && (k = sd - len) > 0) {\r\n if (e + 1 === len) str += '.';\r\n str += getZeroString(k);\r\n }\r\n }\r\n\r\n return x.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Does not strip trailing zeros.\r\n function truncate(arr, len) {\r\n if (arr.length > len) {\r\n arr.length = len;\r\n return true;\r\n }\r\n }\r\n\r\n\r\n // Decimal methods\r\n\r\n\r\n /*\r\n * clone\r\n * config/set\r\n */\r\n\r\n\r\n /*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\r\n function clone(obj) {\r\n var i, p, ps;\r\n\r\n /*\r\n * The Decimal constructor and exported function.\r\n * Return a new Decimal instance.\r\n *\r\n * value {number|string|Decimal} A numeric value.\r\n *\r\n */\r\n function Decimal(value) {\r\n var x = this;\r\n\r\n // Decimal called without new.\r\n if (!(x instanceof Decimal)) return new Decimal(value);\r\n\r\n // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\r\n // which points to Object.\r\n x.constructor = Decimal;\r\n\r\n // Duplicate.\r\n if (value instanceof Decimal) {\r\n x.s = value.s;\r\n x.e = value.e;\r\n x.d = (value = value.d) ? value.slice() : value;\r\n return;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n\r\n // Reject Infinity/NaN.\r\n if (value * 0 !== 0) {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n if (value > 0) {\r\n x.s = 1;\r\n } else if (value < 0) {\r\n value = -value;\r\n x.s = -1;\r\n } else {\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n return;\r\n }\r\n\r\n // Fast path for small integers.\r\n if (value === ~~value && value < 1e7) {\r\n x.e = 0;\r\n x.d = [value];\r\n return;\r\n }\r\n\r\n return parseDecimal(x, value.toString());\r\n } else if (typeof value !== 'string') {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n // Minus sign?\r\n if (value.charCodeAt(0) === 45) {\r\n value = value.slice(1);\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n if (isDecimal.test(value)) parseDecimal(x, value);\r\n else throw Error(invalidArgument + value);\r\n }\r\n\r\n Decimal.prototype = P;\r\n\r\n Decimal.ROUND_UP = 0;\r\n Decimal.ROUND_DOWN = 1;\r\n Decimal.ROUND_CEIL = 2;\r\n Decimal.ROUND_FLOOR = 3;\r\n Decimal.ROUND_HALF_UP = 4;\r\n Decimal.ROUND_HALF_DOWN = 5;\r\n Decimal.ROUND_HALF_EVEN = 6;\r\n Decimal.ROUND_HALF_CEIL = 7;\r\n Decimal.ROUND_HALF_FLOOR = 8;\r\n\r\n Decimal.clone = clone;\r\n Decimal.config = Decimal.set = config;\r\n\r\n if (obj === void 0) obj = {};\r\n if (obj) {\r\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'LN10'];\r\n for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\r\n }\r\n\r\n Decimal.config(obj);\r\n\r\n return Decimal;\r\n }\r\n\r\n\r\n /*\r\n * Configure global settings for a Decimal constructor.\r\n *\r\n * `obj` is an object with one or more of the following properties,\r\n *\r\n * precision {number}\r\n * rounding {number}\r\n * toExpNeg {number}\r\n * toExpPos {number}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\r\n function config(obj) {\r\n if (!obj || typeof obj !== 'object') {\r\n throw Error(decimalError + 'Object expected');\r\n }\r\n var i, p, v,\r\n ps = [\r\n 'precision', 1, MAX_DIGITS,\r\n 'rounding', 0, 8,\r\n 'toExpNeg', -1 / 0, 0,\r\n 'toExpPos', 0, 1 / 0\r\n ];\r\n\r\n for (i = 0; i < ps.length; i += 3) {\r\n if ((v = obj[p = ps[i]]) !== void 0) {\r\n if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n if ((v = obj[p = 'LN10']) !== void 0) {\r\n if (v == Math.LN10) this[p] = new this(v);\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n\r\n // Create and configure initial Decimal constructor.\r\n Decimal = clone(Decimal);\r\n\r\n Decimal['default'] = Decimal.Decimal = Decimal;\r\n\r\n // Internal constant.\r\n ONE = new Decimal(1);\r\n\r\n\r\n // Export.\r\n\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () {\r\n return Decimal;\r\n });\r\n\r\n // Node and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n module.exports = Decimal;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalScope) {\r\n globalScope = typeof self != 'undefined' && self && self.self == self\r\n ? self : Function('return this')();\r\n }\r\n\r\n globalScope.Decimal = Decimal;\r\n }\r\n})(this);\r\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayWithHoles from \"@babel/runtime/helpers/esm/arrayWithHoles\";\nimport iterableToArrayLimit from \"@babel/runtime/helpers/esm/iterableToArrayLimit\";\nimport unsupportedIterableToArray from \"@babel/runtime/helpers/esm/unsupportedIterableToArray\";\nimport nonIterableRest from \"@babel/runtime/helpers/esm/nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","import arrayLikeToArray from \"@babel/runtime/helpers/esm/arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n 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}","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challange you to try to remove it!\n\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n\n return undefined;\n}","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var 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","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var 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","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function(object) {\n if (!object) {\n object = root;\n }\n object.requestAnimationFrame = raf\n object.cancelAnimationFrame = caf\n}\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\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 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","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar numberTag = '[object Number]';\n\n/**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\nfunction isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n}\n\nmodule.exports = isNumber;\n","var baseFlatten = require('./_baseFlatten'),\n baseOrderBy = require('./_baseOrderBy'),\n baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 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","var baseIteratee = require('./_baseIteratee'),\n baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n","var createRange = require('./_createRange');\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nmodule.exports = range;\n","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","import _classCallCheck from \"@babel/runtime/helpers/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nvar defaultOptions = {\n bindI18n: 'languageChanged',\n bindI18nStore: '',\n transEmptyNodeValue: '',\n transSupportBasicHtmlNodes: true,\n transWrapTextNodes: '',\n transKeepBasicHtmlNodesFor: ['br', 'strong', 'i', 'p'],\n useSuspense: true\n};\nvar i18nInstance;\nexport var I18nContext = React.createContext();\nexport function setDefaults() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n defaultOptions = _objectSpread(_objectSpread({}, defaultOptions), options);\n}\nexport function getDefaults() {\n return defaultOptions;\n}\nexport var ReportNamespaces = function () {\n function ReportNamespaces() {\n _classCallCheck(this, ReportNamespaces);\n\n this.usedNamespaces = {};\n }\n\n _createClass(ReportNamespaces, [{\n key: \"addUsedNamespaces\",\n value: function addUsedNamespaces(namespaces) {\n var _this = this;\n\n namespaces.forEach(function (ns) {\n if (!_this.usedNamespaces[ns]) _this.usedNamespaces[ns] = true;\n });\n }\n }, {\n key: \"getUsedNamespaces\",\n value: function getUsedNamespaces() {\n return Object.keys(this.usedNamespaces);\n }\n }]);\n\n return ReportNamespaces;\n}();\nexport function setI18n(instance) {\n i18nInstance = instance;\n}\nexport function getI18n() {\n return i18nInstance;\n}\nexport var initReactI18next = {\n type: '3rdParty',\n init: function init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};\nexport function composeInitialProps(ForComponent) {\n return function (ctx) {\n return new Promise(function (resolve) {\n var i18nInitialProps = getInitialProps();\n\n if (ForComponent.getInitialProps) {\n ForComponent.getInitialProps(ctx).then(function (componentsInitialProps) {\n resolve(_objectSpread(_objectSpread({}, componentsInitialProps), i18nInitialProps));\n });\n } else {\n resolve(i18nInitialProps);\n }\n });\n };\n}\nexport function getInitialProps() {\n var i18n = getI18n();\n var namespaces = i18n.reportNamespaces ? i18n.reportNamespaces.getUsedNamespaces() : [];\n var ret = {};\n var initialI18nStore = {};\n i18n.languages.forEach(function (l) {\n initialI18nStore[l] = {};\n namespaces.forEach(function (ns) {\n initialI18nStore[l][ns] = i18n.getResourceBundle(l, ns) || {};\n });\n });\n ret.initialI18nStore = initialI18nStore;\n ret.initialLanguage = i18n.language;\n return ret;\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","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\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 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 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 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 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 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 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 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","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","\"use strict\";\n\nvar _CSSTransition = _interopRequireDefault(require(\"./CSSTransition\"));\n\nvar _ReplaceTransition = _interopRequireDefault(require(\"./ReplaceTransition\"));\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = {\n Transition: _Transition.default,\n TransitionGroup: _TransitionGroup.default,\n ReplaceTransition: _ReplaceTransition.default,\n CSSTransition: _CSSTransition.default\n};","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","/**\n * Module dependencies\n */\nvar balanced = require(\"balanced-match\")\nvar reduceFunctionCall = require(\"reduce-function-call\")\nvar mexp = require(\"math-expression-evaluator\")\n\n/**\n * Constantes\n */\nvar MAX_STACK = 100 // should be enough for a single calc()...\nvar NESTED_CALC_RE = /(\\+|\\-|\\*|\\\\|[^a-z]|)(\\s*)(\\()/g\n\n/**\n * Global variables\n */\nvar stack\n\n/**\n * Expose reduceCSSCalc plugin\n *\n * @type {Function}\n */\nmodule.exports = reduceCSSCalc\n\n/**\n * Reduce CSS calc() in a string, whenever it's possible\n *\n * @param {String} value css input\n */\nfunction reduceCSSCalc(value, decimalPrecision) {\n stack = 0\n decimalPrecision = Math.pow(10, decimalPrecision === undefined ? 5 : decimalPrecision)\n\n // Allow calc() on multiple lines\n value = value.replace(/\\n+/g, \" \")\n\n /**\n * Evaluates an expression\n *\n * @param {String} expression\n * @returns {String}\n */\n function evaluateExpression (expression, functionIdentifier, call) {\n if (stack++ > MAX_STACK) {\n stack = 0\n throw new Error(\"Call stack overflow for \" + call)\n }\n\n if (expression === \"\") {\n throw new Error(functionIdentifier + \"(): '\" + call + \"' must contain a non-whitespace string\")\n }\n\n expression = evaluateNestedExpression(expression, call)\n\n var units = getUnitsInExpression(expression)\n\n // If the expression contains multiple units or CSS variables,\n // then let the expression be (i.e. browser calc())\n if (units.length > 1 || expression.indexOf(\"var(\") > -1) {\n return functionIdentifier + \"(\" + expression + \")\"\n }\n\n var unit = units[0] || \"\"\n\n if (unit === \"%\") {\n // Convert percentages to numbers, to handle expressions like: 50% * 50% (will become: 25%):\n // console.log(expression)\n expression = expression.replace(/\\b[0-9\\.]+%/g, function(percent) {\n return parseFloat(percent.slice(0, -1)) * 0.01\n })\n }\n\n // Remove units in expression:\n var toEvaluate = expression.replace(new RegExp(unit, \"gi\"), \"\")\n var result\n\n try {\n result = mexp.eval(toEvaluate)\n }\n catch (e) {\n return functionIdentifier + \"(\" + expression + \")\"\n }\n\n // Transform back to a percentage result:\n if (unit === \"%\") {\n result *= 100\n }\n\n // adjust rounding shit\n // (0.1 * 0.2 === 0.020000000000000004)\n if (functionIdentifier.length || unit === \"%\") {\n result = Math.round(result * decimalPrecision) / decimalPrecision\n }\n\n // Add unit\n result += unit\n\n return result\n }\n\n /**\n * Evaluates nested expressions\n *\n * @param {String} expression\n * @returns {String}\n */\n function evaluateNestedExpression(expression, call) {\n // Remove the calc part from nested expressions to ensure\n // better browser compatibility\n expression = expression.replace(/((?:\\-[a-z]+\\-)?calc)/g, \"\")\n var evaluatedPart = \"\"\n var nonEvaluatedPart = expression\n var matches\n while ((matches = NESTED_CALC_RE.exec(nonEvaluatedPart))) {\n if (matches[0].index > 0) {\n evaluatedPart += nonEvaluatedPart.substring(0, matches[0].index)\n }\n\n var balancedExpr = balanced(\"(\", \")\", nonEvaluatedPart.substring([0].index))\n if (balancedExpr.body === \"\") {\n throw new Error(\"'\" + expression + \"' must contain a non-whitespace string\")\n }\n\n var evaluated = evaluateExpression(balancedExpr.body, \"\", call)\n\n evaluatedPart += balancedExpr.pre + evaluated\n nonEvaluatedPart = balancedExpr.post\n }\n\n return evaluatedPart + nonEvaluatedPart\n }\n\n return reduceFunctionCall(value, /((?:\\-[a-z]+\\-)?calc)\\(/, evaluateExpression)\n}\n\n/**\n * Checks what units are used in an expression\n *\n * @param {String} expression\n * @returns {Array}\n */\n\nfunction getUnitsInExpression(expression) {\n var uniqueUnits = []\n var uniqueLowerCaseUnits = []\n var unitRegEx = /[\\.0-9]([%a-z]+)/gi\n var matches = unitRegEx.exec(expression)\n\n while (matches) {\n if (!matches || !matches[1]) {\n continue\n }\n\n if (uniqueLowerCaseUnits.indexOf(matches[1].toLowerCase()) === -1) {\n uniqueUnits.push(matches[1])\n uniqueLowerCaseUnits.push(matches[1].toLowerCase())\n }\n\n matches = unitRegEx.exec(expression)\n }\n\n return uniqueUnits\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","// 20.2.2.28 Math.sign(x)\nmodule.exports = Math.sign || function sign(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n","// 20.2.2.14 Math.expm1(x)\nvar $expm1 = Math.expm1;\nmodule.exports = (!$expm1\n // Old FF bug\n || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || $expm1(-2e-17) != -2e-17\n) ? function expm1(x) {\n return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;\n} : $expm1;\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","var $export = require('./_export');\nvar defined = require('./_defined');\nvar fails = require('./_fails');\nvar spaces = require('./_string-ws');\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\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 getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var 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 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 * 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","/**\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 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","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\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","/**\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 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 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 isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var 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","module.exports = require(\"regenerator-runtime\");\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n 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}","import _typeof from '@babel/runtime/helpers/esm/typeof';\nimport _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inherits from '@babel/runtime/helpers/esm/inherits';\nimport _possibleConstructorReturn from '@babel/runtime/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '@babel/runtime/helpers/esm/getPrototypeOf';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _slicedToArray from '@babel/runtime/helpers/esm/slicedToArray';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar consoleLogger = {\n type: 'logger',\n log: function log(args) {\n this.output('log', args);\n },\n warn: function warn(args) {\n this.output('warn', args);\n },\n error: function error(args) {\n this.output('error', args);\n },\n output: function output(type, args) {\n if (console && console[type]) console[type].apply(console, args);\n }\n};\n\nvar Logger = function () {\n function Logger(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Logger);\n\n this.init(concreteLogger, options);\n }\n\n _createClass(Logger, [{\n key: \"init\",\n value: function init(concreteLogger) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.prefix = options.prefix || 'i18next:';\n this.logger = concreteLogger || consoleLogger;\n this.options = options;\n this.debug = options.debug;\n }\n }, {\n key: \"setDebug\",\n value: function setDebug(bool) {\n this.debug = bool;\n }\n }, {\n key: \"log\",\n value: function log() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return this.forward(args, 'log', '', true);\n }\n }, {\n key: \"warn\",\n value: function warn() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return this.forward(args, 'warn', '', true);\n }\n }, {\n key: \"error\",\n value: function error() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return this.forward(args, 'error', '');\n }\n }, {\n key: \"deprecate\",\n value: function deprecate() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return this.forward(args, 'warn', 'WARNING DEPRECATED: ', true);\n }\n }, {\n key: \"forward\",\n value: function forward(args, lvl, prefix, debugOnly) {\n if (debugOnly && !this.debug) return null;\n if (typeof args[0] === 'string') args[0] = \"\".concat(prefix).concat(this.prefix, \" \").concat(args[0]);\n return this.logger[lvl](args);\n }\n }, {\n key: \"create\",\n value: function create(moduleName) {\n return new Logger(this.logger, _objectSpread(_objectSpread({}, {\n prefix: \"\".concat(this.prefix, \":\").concat(moduleName, \":\")\n }), this.options));\n }\n }]);\n\n return Logger;\n}();\n\nvar baseLogger = new Logger();\n\nvar EventEmitter = function () {\n function EventEmitter() {\n _classCallCheck(this, EventEmitter);\n\n this.observers = {};\n }\n\n _createClass(EventEmitter, [{\n key: \"on\",\n value: function on(events, listener) {\n var _this = this;\n\n events.split(' ').forEach(function (event) {\n _this.observers[event] = _this.observers[event] || [];\n\n _this.observers[event].push(listener);\n });\n return this;\n }\n }, {\n key: \"off\",\n value: function off(event, listener) {\n if (!this.observers[event]) return;\n\n if (!listener) {\n delete this.observers[event];\n return;\n }\n\n this.observers[event] = this.observers[event].filter(function (l) {\n return l !== listener;\n });\n }\n }, {\n key: \"emit\",\n value: function emit(event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (this.observers[event]) {\n var cloned = [].concat(this.observers[event]);\n cloned.forEach(function (observer) {\n observer.apply(void 0, args);\n });\n }\n\n if (this.observers['*']) {\n var _cloned = [].concat(this.observers['*']);\n\n _cloned.forEach(function (observer) {\n observer.apply(observer, [event].concat(args));\n });\n }\n }\n }]);\n\n return EventEmitter;\n}();\n\nfunction defer() {\n var res;\n var rej;\n var promise = new Promise(function (resolve, reject) {\n res = resolve;\n rej = reject;\n });\n promise.resolve = res;\n promise.reject = rej;\n return promise;\n}\nfunction makeString(object) {\n if (object == null) return '';\n return '' + object;\n}\nfunction copy(a, s, t) {\n a.forEach(function (m) {\n if (s[m]) t[m] = s[m];\n });\n}\n\nfunction getLastOfPath(object, path, Empty) {\n function cleanKey(key) {\n return key && key.indexOf('###') > -1 ? key.replace(/###/g, '.') : key;\n }\n\n function canNotTraverseDeeper() {\n return !object || typeof object === 'string';\n }\n\n var stack = typeof path !== 'string' ? [].concat(path) : path.split('.');\n\n while (stack.length > 1) {\n if (canNotTraverseDeeper()) return {};\n var key = cleanKey(stack.shift());\n if (!object[key] && Empty) object[key] = new Empty();\n\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n object = object[key];\n } else {\n object = {};\n }\n }\n\n if (canNotTraverseDeeper()) return {};\n return {\n obj: object,\n k: cleanKey(stack.shift())\n };\n}\n\nfunction setPath(object, path, newValue) {\n var _getLastOfPath = getLastOfPath(object, path, Object),\n obj = _getLastOfPath.obj,\n k = _getLastOfPath.k;\n\n obj[k] = newValue;\n}\nfunction pushPath(object, path, newValue, concat) {\n var _getLastOfPath2 = getLastOfPath(object, path, Object),\n obj = _getLastOfPath2.obj,\n k = _getLastOfPath2.k;\n\n obj[k] = obj[k] || [];\n if (concat) obj[k] = obj[k].concat(newValue);\n if (!concat) obj[k].push(newValue);\n}\nfunction getPath(object, path) {\n var _getLastOfPath3 = getLastOfPath(object, path),\n obj = _getLastOfPath3.obj,\n k = _getLastOfPath3.k;\n\n if (!obj) return undefined;\n return obj[k];\n}\nfunction getPathWithDefaults(data, defaultData, key) {\n var value = getPath(data, key);\n\n if (value !== undefined) {\n return value;\n }\n\n return getPath(defaultData, key);\n}\nfunction deepExtend(target, source, overwrite) {\n for (var prop in source) {\n if (prop !== '__proto__' && prop !== 'constructor') {\n if (prop in target) {\n if (typeof target[prop] === 'string' || target[prop] instanceof String || typeof source[prop] === 'string' || source[prop] instanceof String) {\n if (overwrite) target[prop] = source[prop];\n } else {\n deepExtend(target[prop], source[prop], overwrite);\n }\n } else {\n target[prop] = source[prop];\n }\n }\n }\n\n return target;\n}\nfunction regexEscape(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n}\nvar _entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '/': '/'\n};\nfunction escape(data) {\n if (typeof data === 'string') {\n return data.replace(/[&<>\"'\\/]/g, function (s) {\n return _entityMap[s];\n });\n }\n\n return data;\n}\nvar isIE10 = typeof window !== 'undefined' && window.navigator && window.navigator.userAgent && window.navigator.userAgent.indexOf('MSIE') > -1;\nvar chars = [' ', ',', '?', '!', ';'];\nfunction looksLikeObjectPath(key, nsSeparator, keySeparator) {\n nsSeparator = nsSeparator || '';\n keySeparator = keySeparator || '';\n var possibleChars = chars.filter(function (c) {\n return nsSeparator.indexOf(c) < 0 && keySeparator.indexOf(c) < 0;\n });\n if (possibleChars.length === 0) return true;\n var r = new RegExp(\"(\".concat(possibleChars.map(function (c) {\n return c === '?' ? '\\\\?' : c;\n }).join('|'), \")\"));\n var matched = !r.test(key);\n\n if (!matched) {\n var ki = key.indexOf(keySeparator);\n\n if (ki > 0 && !r.test(key.substring(0, ki))) {\n matched = true;\n }\n }\n\n return matched;\n}\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\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); }; }\n\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; } }\n\nfunction deepFind(obj, path) {\n var keySeparator = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';\n if (!obj) return undefined;\n if (obj[path]) return obj[path];\n var paths = path.split(keySeparator);\n var current = obj;\n\n for (var i = 0; i < paths.length; ++i) {\n if (!current) return undefined;\n\n if (typeof current[paths[i]] === 'string' && i + 1 < paths.length) {\n return undefined;\n }\n\n if (current[paths[i]] === undefined) {\n var j = 2;\n var p = paths.slice(i, i + j).join(keySeparator);\n var mix = current[p];\n\n while (mix === undefined && paths.length > i + j) {\n j++;\n p = paths.slice(i, i + j).join(keySeparator);\n mix = current[p];\n }\n\n if (mix === undefined) return undefined;\n if (typeof mix === 'string') return mix;\n if (p && typeof mix[p] === 'string') return mix[p];\n var joinedPath = paths.slice(i + j).join(keySeparator);\n if (joinedPath) return deepFind(mix, joinedPath, keySeparator);\n return undefined;\n }\n\n current = current[paths[i]];\n }\n\n return current;\n}\n\nvar ResourceStore = function (_EventEmitter) {\n _inherits(ResourceStore, _EventEmitter);\n\n var _super = _createSuper(ResourceStore);\n\n function ResourceStore(data) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n ns: ['translation'],\n defaultNS: 'translation'\n };\n\n _classCallCheck(this, ResourceStore);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.data = data || {};\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n if (_this.options.ignoreJSONStructure === undefined) {\n _this.options.ignoreJSONStructure = true;\n }\n\n return _this;\n }\n\n _createClass(ResourceStore, [{\n key: \"addNamespaces\",\n value: function addNamespaces(ns) {\n if (this.options.ns.indexOf(ns) < 0) {\n this.options.ns.push(ns);\n }\n }\n }, {\n key: \"removeNamespaces\",\n value: function removeNamespaces(ns) {\n var index = this.options.ns.indexOf(ns);\n\n if (index > -1) {\n this.options.ns.splice(index, 1);\n }\n }\n }, {\n key: \"getResource\",\n value: function getResource(lng, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var ignoreJSONStructure = options.ignoreJSONStructure !== undefined ? options.ignoreJSONStructure : this.options.ignoreJSONStructure;\n var path = [lng, ns];\n if (key && typeof key !== 'string') path = path.concat(key);\n if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n }\n\n var result = getPath(this.data, path);\n if (result || !ignoreJSONStructure || typeof key !== 'string') return result;\n return deepFind(this.data && this.data[lng] && this.data[lng][ns], key, keySeparator);\n }\n }, {\n key: \"addResource\",\n value: function addResource(lng, ns, key, value) {\n var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n silent: false\n };\n var keySeparator = this.options.keySeparator;\n if (keySeparator === undefined) keySeparator = '.';\n var path = [lng, ns];\n if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n value = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n setPath(this.data, path, value);\n if (!options.silent) this.emit('added', lng, ns, key, value);\n }\n }, {\n key: \"addResources\",\n value: function addResources(lng, ns, resources) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {\n silent: false\n };\n\n for (var m in resources) {\n if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {\n silent: true\n });\n }\n\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"addResourceBundle\",\n value: function addResourceBundle(lng, ns, resources, deep, overwrite) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {\n silent: false\n };\n var path = [lng, ns];\n\n if (lng.indexOf('.') > -1) {\n path = lng.split('.');\n deep = resources;\n resources = ns;\n ns = path[1];\n }\n\n this.addNamespaces(ns);\n var pack = getPath(this.data, path) || {};\n\n if (deep) {\n deepExtend(pack, resources, overwrite);\n } else {\n pack = _objectSpread$1(_objectSpread$1({}, pack), resources);\n }\n\n setPath(this.data, path, pack);\n if (!options.silent) this.emit('added', lng, ns, resources);\n }\n }, {\n key: \"removeResourceBundle\",\n value: function removeResourceBundle(lng, ns) {\n if (this.hasResourceBundle(lng, ns)) {\n delete this.data[lng][ns];\n }\n\n this.removeNamespaces(ns);\n this.emit('removed', lng, ns);\n }\n }, {\n key: \"hasResourceBundle\",\n value: function hasResourceBundle(lng, ns) {\n return this.getResource(lng, ns) !== undefined;\n }\n }, {\n key: \"getResourceBundle\",\n value: function getResourceBundle(lng, ns) {\n if (!ns) ns = this.options.defaultNS;\n if (this.options.compatibilityAPI === 'v1') return _objectSpread$1(_objectSpread$1({}, {}), this.getResource(lng, ns));\n return this.getResource(lng, ns);\n }\n }, {\n key: \"getDataByLanguage\",\n value: function getDataByLanguage(lng) {\n return this.data[lng];\n }\n }, {\n key: \"hasLanguageSomeTranslations\",\n value: function hasLanguageSomeTranslations(lng) {\n var data = this.getDataByLanguage(lng);\n var n = data && Object.keys(data) || [];\n return !!n.find(function (v) {\n return data[v] && Object.keys(data[v]).length > 0;\n });\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return this.data;\n }\n }]);\n\n return ResourceStore;\n}(EventEmitter);\n\nvar postProcessor = {\n processors: {},\n addPostProcessor: function addPostProcessor(module) {\n this.processors[module.name] = module;\n },\n handle: function handle(processors, value, key, options, translator) {\n var _this = this;\n\n processors.forEach(function (processor) {\n if (_this.processors[processor]) value = _this.processors[processor].process(value, key, options, translator);\n });\n return value;\n }\n};\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$1(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$1(); 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); }; }\n\nfunction _isNativeReflectConstruct$1() { 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; } }\nvar checkedLoadedFor = {};\n\nvar Translator = function (_EventEmitter) {\n _inherits(Translator, _EventEmitter);\n\n var _super = _createSuper$1(Translator);\n\n function Translator(services) {\n var _this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Translator);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n copy(['resourceStore', 'languageUtils', 'pluralResolver', 'interpolator', 'backendConnector', 'i18nFormat', 'utils'], services, _assertThisInitialized(_this));\n _this.options = options;\n\n if (_this.options.keySeparator === undefined) {\n _this.options.keySeparator = '.';\n }\n\n _this.logger = baseLogger.create('translator');\n return _this;\n }\n\n _createClass(Translator, [{\n key: \"changeLanguage\",\n value: function changeLanguage(lng) {\n if (lng) this.language = lng;\n }\n }, {\n key: \"exists\",\n value: function exists(key) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n\n if (key === undefined || key === null) {\n return false;\n }\n\n var resolved = this.resolve(key, options);\n return resolved && resolved.res !== undefined;\n }\n }, {\n key: \"extractFromKey\",\n value: function extractFromKey(key, options) {\n var nsSeparator = options.nsSeparator !== undefined ? options.nsSeparator : this.options.nsSeparator;\n if (nsSeparator === undefined) nsSeparator = ':';\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n var namespaces = options.ns || this.options.defaultNS;\n var wouldCheckForNsInKey = nsSeparator && key.indexOf(nsSeparator) > -1;\n var seemsNaturalLanguage = !this.options.userDefinedKeySeparator && !options.keySeparator && !this.options.userDefinedNsSeparator && !options.nsSeparator && !looksLikeObjectPath(key, nsSeparator, keySeparator);\n\n if (wouldCheckForNsInKey && !seemsNaturalLanguage) {\n var m = key.match(this.interpolator.nestingRegexp);\n\n if (m && m.length > 0) {\n return {\n key: key,\n namespaces: namespaces\n };\n }\n\n var parts = key.split(nsSeparator);\n if (nsSeparator !== keySeparator || nsSeparator === keySeparator && this.options.ns.indexOf(parts[0]) > -1) namespaces = parts.shift();\n key = parts.join(keySeparator);\n }\n\n if (typeof namespaces === 'string') namespaces = [namespaces];\n return {\n key: key,\n namespaces: namespaces\n };\n }\n }, {\n key: \"translate\",\n value: function translate(keys, options, lastKey) {\n var _this2 = this;\n\n if (_typeof(options) !== 'object' && this.options.overloadTranslationOptionHandler) {\n options = this.options.overloadTranslationOptionHandler(arguments);\n }\n\n if (!options) options = {};\n if (keys === undefined || keys === null) return '';\n if (!Array.isArray(keys)) keys = [String(keys)];\n var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;\n\n var _this$extractFromKey = this.extractFromKey(keys[keys.length - 1], options),\n key = _this$extractFromKey.key,\n namespaces = _this$extractFromKey.namespaces;\n\n var namespace = namespaces[namespaces.length - 1];\n var lng = options.lng || this.language;\n var appendNamespaceToCIMode = options.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;\n\n if (lng && lng.toLowerCase() === 'cimode') {\n if (appendNamespaceToCIMode) {\n var nsSeparator = options.nsSeparator || this.options.nsSeparator;\n return namespace + nsSeparator + key;\n }\n\n return key;\n }\n\n var resolved = this.resolve(keys, options);\n var res = resolved && resolved.res;\n var resUsedKey = resolved && resolved.usedKey || key;\n var resExactUsedKey = resolved && resolved.exactUsedKey || key;\n var resType = Object.prototype.toString.apply(res);\n var noObject = ['[object Number]', '[object Function]', '[object RegExp]'];\n var joinArrays = options.joinArrays !== undefined ? options.joinArrays : this.options.joinArrays;\n var handleAsObjectInI18nFormat = !this.i18nFormat || this.i18nFormat.handleAsObject;\n var handleAsObject = typeof res !== 'string' && typeof res !== 'boolean' && typeof res !== 'number';\n\n if (handleAsObjectInI18nFormat && res && handleAsObject && noObject.indexOf(resType) < 0 && !(typeof joinArrays === 'string' && resType === '[object Array]')) {\n if (!options.returnObjects && !this.options.returnObjects) {\n if (!this.options.returnedObjectHandler) {\n this.logger.warn('accessing an object - but returnObjects options is not enabled!');\n }\n\n return this.options.returnedObjectHandler ? this.options.returnedObjectHandler(resUsedKey, res, _objectSpread$2(_objectSpread$2({}, options), {}, {\n ns: namespaces\n })) : \"key '\".concat(key, \" (\").concat(this.language, \")' returned an object instead of string.\");\n }\n\n if (keySeparator) {\n var resTypeIsArray = resType === '[object Array]';\n var copy = resTypeIsArray ? [] : {};\n var newKeyToUse = resTypeIsArray ? resExactUsedKey : resUsedKey;\n\n for (var m in res) {\n if (Object.prototype.hasOwnProperty.call(res, m)) {\n var deepKey = \"\".concat(newKeyToUse).concat(keySeparator).concat(m);\n copy[m] = this.translate(deepKey, _objectSpread$2(_objectSpread$2({}, options), {\n joinArrays: false,\n ns: namespaces\n }));\n if (copy[m] === deepKey) copy[m] = res[m];\n }\n }\n\n res = copy;\n }\n } else if (handleAsObjectInI18nFormat && typeof joinArrays === 'string' && resType === '[object Array]') {\n res = res.join(joinArrays);\n if (res) res = this.extendTranslation(res, keys, options, lastKey);\n } else {\n var usedDefault = false;\n var usedKey = false;\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var hasDefaultValue = Translator.hasDefaultValue(options);\n var defaultValueSuffix = needsPluralHandling ? this.pluralResolver.getSuffix(lng, options.count, options) : '';\n var defaultValue = options[\"defaultValue\".concat(defaultValueSuffix)] || options.defaultValue;\n\n if (!this.isValidLookup(res) && hasDefaultValue) {\n usedDefault = true;\n res = defaultValue;\n }\n\n if (!this.isValidLookup(res)) {\n usedKey = true;\n res = key;\n }\n\n var missingKeyNoValueFallbackToKey = options.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey;\n var resForMissing = missingKeyNoValueFallbackToKey && usedKey ? undefined : res;\n var updateMissing = hasDefaultValue && defaultValue !== res && this.options.updateMissing;\n\n if (usedKey || usedDefault || updateMissing) {\n this.logger.log(updateMissing ? 'updateKey' : 'missingKey', lng, namespace, key, updateMissing ? defaultValue : res);\n\n if (keySeparator) {\n var fk = this.resolve(key, _objectSpread$2(_objectSpread$2({}, options), {}, {\n keySeparator: false\n }));\n if (fk && fk.res) this.logger.warn('Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.');\n }\n\n var lngs = [];\n var fallbackLngs = this.languageUtils.getFallbackCodes(this.options.fallbackLng, options.lng || this.language);\n\n if (this.options.saveMissingTo === 'fallback' && fallbackLngs && fallbackLngs[0]) {\n for (var i = 0; i < fallbackLngs.length; i++) {\n lngs.push(fallbackLngs[i]);\n }\n } else if (this.options.saveMissingTo === 'all') {\n lngs = this.languageUtils.toResolveHierarchy(options.lng || this.language);\n } else {\n lngs.push(options.lng || this.language);\n }\n\n var send = function send(l, k, fallbackValue) {\n if (_this2.options.missingKeyHandler) {\n _this2.options.missingKeyHandler(l, namespace, k, updateMissing ? fallbackValue : resForMissing, updateMissing, options);\n } else if (_this2.backendConnector && _this2.backendConnector.saveMissing) {\n _this2.backendConnector.saveMissing(l, namespace, k, updateMissing ? fallbackValue : resForMissing, updateMissing, options);\n }\n\n _this2.emit('missingKey', l, namespace, k, res);\n };\n\n if (this.options.saveMissing) {\n if (this.options.saveMissingPlurals && needsPluralHandling) {\n lngs.forEach(function (language) {\n _this2.pluralResolver.getSuffixes(language).forEach(function (suffix) {\n send([language], key + suffix, options[\"defaultValue\".concat(suffix)] || defaultValue);\n });\n });\n } else {\n send(lngs, key, defaultValue);\n }\n }\n }\n\n res = this.extendTranslation(res, keys, options, resolved, lastKey);\n if (usedKey && res === key && this.options.appendNamespaceToMissingKey) res = \"\".concat(namespace, \":\").concat(key);\n if ((usedKey || usedDefault) && this.options.parseMissingKeyHandler) res = this.options.parseMissingKeyHandler(res);\n }\n\n return res;\n }\n }, {\n key: \"extendTranslation\",\n value: function extendTranslation(res, key, options, resolved, lastKey) {\n var _this3 = this;\n\n if (this.i18nFormat && this.i18nFormat.parse) {\n res = this.i18nFormat.parse(res, options, resolved.usedLng, resolved.usedNS, resolved.usedKey, {\n resolved: resolved\n });\n } else if (!options.skipInterpolation) {\n if (options.interpolation) this.interpolator.init(_objectSpread$2(_objectSpread$2({}, options), {\n interpolation: _objectSpread$2(_objectSpread$2({}, this.options.interpolation), options.interpolation)\n }));\n var skipOnVariables = options.interpolation && options.interpolation.skipOnVariables || this.options.interpolation.skipOnVariables;\n var nestBef;\n\n if (skipOnVariables) {\n var nb = res.match(this.interpolator.nestingRegexp);\n nestBef = nb && nb.length;\n }\n\n var data = options.replace && typeof options.replace !== 'string' ? options.replace : options;\n if (this.options.interpolation.defaultVariables) data = _objectSpread$2(_objectSpread$2({}, this.options.interpolation.defaultVariables), data);\n res = this.interpolator.interpolate(res, data, options.lng || this.language, options);\n\n if (skipOnVariables) {\n var na = res.match(this.interpolator.nestingRegexp);\n var nestAft = na && na.length;\n if (nestBef < nestAft) options.nest = false;\n }\n\n if (options.nest !== false) res = this.interpolator.nest(res, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (lastKey && lastKey[0] === args[0] && !options.context) {\n _this3.logger.warn(\"It seems you are nesting recursively key: \".concat(args[0], \" in key: \").concat(key[0]));\n\n return null;\n }\n\n return _this3.translate.apply(_this3, args.concat([key]));\n }, options);\n if (options.interpolation) this.interpolator.reset();\n }\n\n var postProcess = options.postProcess || this.options.postProcess;\n var postProcessorNames = typeof postProcess === 'string' ? [postProcess] : postProcess;\n\n if (res !== undefined && res !== null && postProcessorNames && postProcessorNames.length && options.applyPostProcessor !== false) {\n res = postProcessor.handle(postProcessorNames, res, key, this.options && this.options.postProcessPassResolved ? _objectSpread$2({\n i18nResolved: resolved\n }, options) : options, this);\n }\n\n return res;\n }\n }, {\n key: \"resolve\",\n value: function resolve(keys) {\n var _this4 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var found;\n var usedKey;\n var exactUsedKey;\n var usedLng;\n var usedNS;\n if (typeof keys === 'string') keys = [keys];\n keys.forEach(function (k) {\n if (_this4.isValidLookup(found)) return;\n\n var extracted = _this4.extractFromKey(k, options);\n\n var key = extracted.key;\n usedKey = key;\n var namespaces = extracted.namespaces;\n if (_this4.options.fallbackNS) namespaces = namespaces.concat(_this4.options.fallbackNS);\n var needsPluralHandling = options.count !== undefined && typeof options.count !== 'string';\n var needsContextHandling = options.context !== undefined && (typeof options.context === 'string' || typeof options.context === 'number') && options.context !== '';\n var codes = options.lngs ? options.lngs : _this4.languageUtils.toResolveHierarchy(options.lng || _this4.language, options.fallbackLng);\n namespaces.forEach(function (ns) {\n if (_this4.isValidLookup(found)) return;\n usedNS = ns;\n\n if (!checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] && _this4.utils && _this4.utils.hasLoadedNamespace && !_this4.utils.hasLoadedNamespace(usedNS)) {\n checkedLoadedFor[\"\".concat(codes[0], \"-\").concat(ns)] = true;\n\n _this4.logger.warn(\"key \\\"\".concat(usedKey, \"\\\" for languages \\\"\").concat(codes.join(', '), \"\\\" won't get resolved as namespace \\\"\").concat(usedNS, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n }\n\n codes.forEach(function (code) {\n if (_this4.isValidLookup(found)) return;\n usedLng = code;\n var finalKey = key;\n var finalKeys = [finalKey];\n\n if (_this4.i18nFormat && _this4.i18nFormat.addLookupKeys) {\n _this4.i18nFormat.addLookupKeys(finalKeys, key, code, ns, options);\n } else {\n var pluralSuffix;\n if (needsPluralHandling) pluralSuffix = _this4.pluralResolver.getSuffix(code, options.count, options);\n if (needsPluralHandling && needsContextHandling) finalKeys.push(finalKey + pluralSuffix);\n if (needsContextHandling) finalKeys.push(finalKey += \"\".concat(_this4.options.contextSeparator).concat(options.context));\n if (needsPluralHandling) finalKeys.push(finalKey += pluralSuffix);\n }\n\n var possibleKey;\n\n while (possibleKey = finalKeys.pop()) {\n if (!_this4.isValidLookup(found)) {\n exactUsedKey = possibleKey;\n found = _this4.getResource(code, ns, possibleKey, options);\n }\n }\n });\n });\n });\n return {\n res: found,\n usedKey: usedKey,\n exactUsedKey: exactUsedKey,\n usedLng: usedLng,\n usedNS: usedNS\n };\n }\n }, {\n key: \"isValidLookup\",\n value: function isValidLookup(res) {\n return res !== undefined && !(!this.options.returnNull && res === null) && !(!this.options.returnEmptyString && res === '');\n }\n }, {\n key: \"getResource\",\n value: function getResource(code, ns, key) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n if (this.i18nFormat && this.i18nFormat.getResource) return this.i18nFormat.getResource(code, ns, key, options);\n return this.resourceStore.getResource(code, ns, key, options);\n }\n }], [{\n key: \"hasDefaultValue\",\n value: function hasDefaultValue(options) {\n var prefix = 'defaultValue';\n\n for (var option in options) {\n if (Object.prototype.hasOwnProperty.call(options, option) && prefix === option.substring(0, prefix.length) && undefined !== options[option]) {\n return true;\n }\n }\n\n return false;\n }\n }]);\n\n return Translator;\n}(EventEmitter);\n\nfunction capitalize(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar LanguageUtil = function () {\n function LanguageUtil(options) {\n _classCallCheck(this, LanguageUtil);\n\n this.options = options;\n this.supportedLngs = this.options.supportedLngs || false;\n this.logger = baseLogger.create('languageUtils');\n }\n\n _createClass(LanguageUtil, [{\n key: \"getScriptPartFromCode\",\n value: function getScriptPartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return null;\n var p = code.split('-');\n if (p.length === 2) return null;\n p.pop();\n if (p[p.length - 1].toLowerCase() === 'x') return null;\n return this.formatLanguageCode(p.join('-'));\n }\n }, {\n key: \"getLanguagePartFromCode\",\n value: function getLanguagePartFromCode(code) {\n if (!code || code.indexOf('-') < 0) return code;\n var p = code.split('-');\n return this.formatLanguageCode(p[0]);\n }\n }, {\n key: \"formatLanguageCode\",\n value: function formatLanguageCode(code) {\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n var specialCases = ['hans', 'hant', 'latn', 'cyrl', 'cans', 'mong', 'arab'];\n var p = code.split('-');\n\n if (this.options.lowerCaseLng) {\n p = p.map(function (part) {\n return part.toLowerCase();\n });\n } else if (p.length === 2) {\n p[0] = p[0].toLowerCase();\n p[1] = p[1].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n } else if (p.length === 3) {\n p[0] = p[0].toLowerCase();\n if (p[1].length === 2) p[1] = p[1].toUpperCase();\n if (p[0] !== 'sgn' && p[2].length === 2) p[2] = p[2].toUpperCase();\n if (specialCases.indexOf(p[1].toLowerCase()) > -1) p[1] = capitalize(p[1].toLowerCase());\n if (specialCases.indexOf(p[2].toLowerCase()) > -1) p[2] = capitalize(p[2].toLowerCase());\n }\n\n return p.join('-');\n }\n\n return this.options.cleanCode || this.options.lowerCaseLng ? code.toLowerCase() : code;\n }\n }, {\n key: \"isSupportedCode\",\n value: function isSupportedCode(code) {\n if (this.options.load === 'languageOnly' || this.options.nonExplicitSupportedLngs) {\n code = this.getLanguagePartFromCode(code);\n }\n\n return !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(code) > -1;\n }\n }, {\n key: \"getBestMatchFromCodes\",\n value: function getBestMatchFromCodes(codes) {\n var _this = this;\n\n if (!codes) return null;\n var found;\n codes.forEach(function (code) {\n if (found) return;\n\n var cleanedLng = _this.formatLanguageCode(code);\n\n if (!_this.options.supportedLngs || _this.isSupportedCode(cleanedLng)) found = cleanedLng;\n });\n\n if (!found && this.options.supportedLngs) {\n codes.forEach(function (code) {\n if (found) return;\n\n var lngOnly = _this.getLanguagePartFromCode(code);\n\n if (_this.isSupportedCode(lngOnly)) return found = lngOnly;\n found = _this.options.supportedLngs.find(function (supportedLng) {\n if (supportedLng.indexOf(lngOnly) === 0) return supportedLng;\n });\n });\n }\n\n if (!found) found = this.getFallbackCodes(this.options.fallbackLng)[0];\n return found;\n }\n }, {\n key: \"getFallbackCodes\",\n value: function getFallbackCodes(fallbacks, code) {\n if (!fallbacks) return [];\n if (typeof fallbacks === 'function') fallbacks = fallbacks(code);\n if (typeof fallbacks === 'string') fallbacks = [fallbacks];\n if (Object.prototype.toString.apply(fallbacks) === '[object Array]') return fallbacks;\n if (!code) return fallbacks[\"default\"] || [];\n var found = fallbacks[code];\n if (!found) found = fallbacks[this.getScriptPartFromCode(code)];\n if (!found) found = fallbacks[this.formatLanguageCode(code)];\n if (!found) found = fallbacks[this.getLanguagePartFromCode(code)];\n if (!found) found = fallbacks[\"default\"];\n return found || [];\n }\n }, {\n key: \"toResolveHierarchy\",\n value: function toResolveHierarchy(code, fallbackCode) {\n var _this2 = this;\n\n var fallbackCodes = this.getFallbackCodes(fallbackCode || this.options.fallbackLng || [], code);\n var codes = [];\n\n var addCode = function addCode(c) {\n if (!c) return;\n\n if (_this2.isSupportedCode(c)) {\n codes.push(c);\n } else {\n _this2.logger.warn(\"rejecting language code not found in supportedLngs: \".concat(c));\n }\n };\n\n if (typeof code === 'string' && code.indexOf('-') > -1) {\n if (this.options.load !== 'languageOnly') addCode(this.formatLanguageCode(code));\n if (this.options.load !== 'languageOnly' && this.options.load !== 'currentOnly') addCode(this.getScriptPartFromCode(code));\n if (this.options.load !== 'currentOnly') addCode(this.getLanguagePartFromCode(code));\n } else if (typeof code === 'string') {\n addCode(this.formatLanguageCode(code));\n }\n\n fallbackCodes.forEach(function (fc) {\n if (codes.indexOf(fc) < 0) addCode(_this2.formatLanguageCode(fc));\n });\n return codes;\n }\n }]);\n\n return LanguageUtil;\n}();\n\nvar sets = [{\n lngs: ['ach', 'ak', 'am', 'arn', 'br', 'fil', 'gun', 'ln', 'mfe', 'mg', 'mi', 'oc', 'pt', 'pt-BR', 'tg', 'tl', 'ti', 'tr', 'uz', 'wa'],\n nr: [1, 2],\n fc: 1\n}, {\n lngs: ['af', 'an', 'ast', 'az', 'bg', 'bn', 'ca', 'da', 'de', 'dev', 'el', 'en', 'eo', 'es', 'et', 'eu', 'fi', 'fo', 'fur', 'fy', 'gl', 'gu', 'ha', 'hi', 'hu', 'hy', 'ia', 'it', 'kk', 'kn', 'ku', 'lb', 'mai', 'ml', 'mn', 'mr', 'nah', 'nap', 'nb', 'ne', 'nl', 'nn', 'no', 'nso', 'pa', 'pap', 'pms', 'ps', 'pt-PT', 'rm', 'sco', 'se', 'si', 'so', 'son', 'sq', 'sv', 'sw', 'ta', 'te', 'tk', 'ur', 'yo'],\n nr: [1, 2],\n fc: 2\n}, {\n lngs: ['ay', 'bo', 'cgg', 'fa', 'ht', 'id', 'ja', 'jbo', 'ka', 'km', 'ko', 'ky', 'lo', 'ms', 'sah', 'su', 'th', 'tt', 'ug', 'vi', 'wo', 'zh'],\n nr: [1],\n fc: 3\n}, {\n lngs: ['be', 'bs', 'cnr', 'dz', 'hr', 'ru', 'sr', 'uk'],\n nr: [1, 2, 5],\n fc: 4\n}, {\n lngs: ['ar'],\n nr: [0, 1, 2, 3, 11, 100],\n fc: 5\n}, {\n lngs: ['cs', 'sk'],\n nr: [1, 2, 5],\n fc: 6\n}, {\n lngs: ['csb', 'pl'],\n nr: [1, 2, 5],\n fc: 7\n}, {\n lngs: ['cy'],\n nr: [1, 2, 3, 8],\n fc: 8\n}, {\n lngs: ['fr'],\n nr: [1, 2],\n fc: 9\n}, {\n lngs: ['ga'],\n nr: [1, 2, 3, 7, 11],\n fc: 10\n}, {\n lngs: ['gd'],\n nr: [1, 2, 3, 20],\n fc: 11\n}, {\n lngs: ['is'],\n nr: [1, 2],\n fc: 12\n}, {\n lngs: ['jv'],\n nr: [0, 1],\n fc: 13\n}, {\n lngs: ['kw'],\n nr: [1, 2, 3, 4],\n fc: 14\n}, {\n lngs: ['lt'],\n nr: [1, 2, 10],\n fc: 15\n}, {\n lngs: ['lv'],\n nr: [1, 2, 0],\n fc: 16\n}, {\n lngs: ['mk'],\n nr: [1, 2],\n fc: 17\n}, {\n lngs: ['mnk'],\n nr: [0, 1, 2],\n fc: 18\n}, {\n lngs: ['mt'],\n nr: [1, 2, 11, 20],\n fc: 19\n}, {\n lngs: ['or'],\n nr: [2, 1],\n fc: 2\n}, {\n lngs: ['ro'],\n nr: [1, 2, 20],\n fc: 20\n}, {\n lngs: ['sl'],\n nr: [5, 1, 2, 3],\n fc: 21\n}, {\n lngs: ['he', 'iw'],\n nr: [1, 2, 20, 21],\n fc: 22\n}];\nvar _rulesPluralsTypes = {\n 1: function _(n) {\n return Number(n > 1);\n },\n 2: function _(n) {\n return Number(n != 1);\n },\n 3: function _(n) {\n return 0;\n },\n 4: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 5: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : n == 2 ? 2 : n % 100 >= 3 && n % 100 <= 10 ? 3 : n % 100 >= 11 ? 4 : 5);\n },\n 6: function _(n) {\n return Number(n == 1 ? 0 : n >= 2 && n <= 4 ? 1 : 2);\n },\n 7: function _(n) {\n return Number(n == 1 ? 0 : n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 8: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n != 8 && n != 11 ? 2 : 3);\n },\n 9: function _(n) {\n return Number(n >= 2);\n },\n 10: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n < 7 ? 2 : n < 11 ? 3 : 4);\n },\n 11: function _(n) {\n return Number(n == 1 || n == 11 ? 0 : n == 2 || n == 12 ? 1 : n > 2 && n < 20 ? 2 : 3);\n },\n 12: function _(n) {\n return Number(n % 10 != 1 || n % 100 == 11);\n },\n 13: function _(n) {\n return Number(n !== 0);\n },\n 14: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : n == 3 ? 2 : 3);\n },\n 15: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n % 10 >= 2 && (n % 100 < 10 || n % 100 >= 20) ? 1 : 2);\n },\n 16: function _(n) {\n return Number(n % 10 == 1 && n % 100 != 11 ? 0 : n !== 0 ? 1 : 2);\n },\n 17: function _(n) {\n return Number(n == 1 || n % 10 == 1 && n % 100 != 11 ? 0 : 1);\n },\n 18: function _(n) {\n return Number(n == 0 ? 0 : n == 1 ? 1 : 2);\n },\n 19: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 1 && n % 100 < 11 ? 1 : n % 100 > 10 && n % 100 < 20 ? 2 : 3);\n },\n 20: function _(n) {\n return Number(n == 1 ? 0 : n == 0 || n % 100 > 0 && n % 100 < 20 ? 1 : 2);\n },\n 21: function _(n) {\n return Number(n % 100 == 1 ? 1 : n % 100 == 2 ? 2 : n % 100 == 3 || n % 100 == 4 ? 3 : 0);\n },\n 22: function _(n) {\n return Number(n == 1 ? 0 : n == 2 ? 1 : (n < 0 || n > 10) && n % 10 == 0 ? 2 : 3);\n }\n};\nvar deprecatedJsonVersions = ['v1', 'v2', 'v3'];\nvar suffixesOrder = {\n zero: 0,\n one: 1,\n two: 2,\n few: 3,\n many: 4,\n other: 5\n};\n\nfunction createRules() {\n var rules = {};\n sets.forEach(function (set) {\n set.lngs.forEach(function (l) {\n rules[l] = {\n numbers: set.nr,\n plurals: _rulesPluralsTypes[set.fc]\n };\n });\n });\n return rules;\n}\n\nvar PluralResolver = function () {\n function PluralResolver(languageUtils) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, PluralResolver);\n\n this.languageUtils = languageUtils;\n this.options = options;\n this.logger = baseLogger.create('pluralResolver');\n\n if ((!this.options.compatibilityJSON || this.options.compatibilityJSON === 'v4') && (typeof Intl === 'undefined' || !Intl.PluralRules)) {\n this.options.compatibilityJSON = 'v3';\n this.logger.error('Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.');\n }\n\n this.rules = createRules();\n }\n\n _createClass(PluralResolver, [{\n key: \"addRule\",\n value: function addRule(lng, obj) {\n this.rules[lng] = obj;\n }\n }, {\n key: \"getRule\",\n value: function getRule(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (this.shouldUseIntlApi()) {\n try {\n return new Intl.PluralRules(code, {\n type: options.ordinal ? 'ordinal' : 'cardinal'\n });\n } catch (_unused) {\n return;\n }\n }\n\n return this.rules[code] || this.rules[this.languageUtils.getLanguagePartFromCode(code)];\n }\n }, {\n key: \"needsPlural\",\n value: function needsPlural(code) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (this.shouldUseIntlApi()) {\n return rule && rule.resolvedOptions().pluralCategories.length > 1;\n }\n\n return rule && rule.numbers.length > 1;\n }\n }, {\n key: \"getPluralFormsOfKey\",\n value: function getPluralFormsOfKey(code, key) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return this.getSuffixes(code, options).map(function (suffix) {\n return \"\".concat(key).concat(suffix);\n });\n }\n }, {\n key: \"getSuffixes\",\n value: function getSuffixes(code) {\n var _this = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var rule = this.getRule(code, options);\n\n if (!rule) {\n return [];\n }\n\n if (this.shouldUseIntlApi()) {\n return rule.resolvedOptions().pluralCategories.sort(function (pluralCategory1, pluralCategory2) {\n return suffixesOrder[pluralCategory1] - suffixesOrder[pluralCategory2];\n }).map(function (pluralCategory) {\n return \"\".concat(_this.options.prepend).concat(pluralCategory);\n });\n }\n\n return rule.numbers.map(function (number) {\n return _this.getSuffix(code, number, options);\n });\n }\n }, {\n key: \"getSuffix\",\n value: function getSuffix(code, count) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var rule = this.getRule(code, options);\n\n if (rule) {\n if (this.shouldUseIntlApi()) {\n return \"\".concat(this.options.prepend).concat(rule.select(count));\n }\n\n return this.getSuffixRetroCompatible(rule, count);\n }\n\n this.logger.warn(\"no plural rule found for: \".concat(code));\n return '';\n }\n }, {\n key: \"getSuffixRetroCompatible\",\n value: function getSuffixRetroCompatible(rule, count) {\n var _this2 = this;\n\n var idx = rule.noAbs ? rule.plurals(count) : rule.plurals(Math.abs(count));\n var suffix = rule.numbers[idx];\n\n if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n if (suffix === 2) {\n suffix = 'plural';\n } else if (suffix === 1) {\n suffix = '';\n }\n }\n\n var returnSuffix = function returnSuffix() {\n return _this2.options.prepend && suffix.toString() ? _this2.options.prepend + suffix.toString() : suffix.toString();\n };\n\n if (this.options.compatibilityJSON === 'v1') {\n if (suffix === 1) return '';\n if (typeof suffix === 'number') return \"_plural_\".concat(suffix.toString());\n return returnSuffix();\n } else if (this.options.compatibilityJSON === 'v2') {\n return returnSuffix();\n } else if (this.options.simplifyPluralSuffix && rule.numbers.length === 2 && rule.numbers[0] === 1) {\n return returnSuffix();\n }\n\n return this.options.prepend && idx.toString() ? this.options.prepend + idx.toString() : idx.toString();\n }\n }, {\n key: \"shouldUseIntlApi\",\n value: function shouldUseIntlApi() {\n return !deprecatedJsonVersions.includes(this.options.compatibilityJSON);\n }\n }]);\n\n return PluralResolver;\n}();\n\nfunction ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$3(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar Interpolator = function () {\n function Interpolator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Interpolator);\n\n this.logger = baseLogger.create('interpolator');\n this.options = options;\n\n this.format = options.interpolation && options.interpolation.format || function (value) {\n return value;\n };\n\n this.init(options);\n }\n\n _createClass(Interpolator, [{\n key: \"init\",\n value: function init() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!options.interpolation) options.interpolation = {\n escapeValue: true\n };\n var iOpts = options.interpolation;\n this.escape = iOpts.escape !== undefined ? iOpts.escape : escape;\n this.escapeValue = iOpts.escapeValue !== undefined ? iOpts.escapeValue : true;\n this.useRawValueToEscape = iOpts.useRawValueToEscape !== undefined ? iOpts.useRawValueToEscape : false;\n this.prefix = iOpts.prefix ? regexEscape(iOpts.prefix) : iOpts.prefixEscaped || '{{';\n this.suffix = iOpts.suffix ? regexEscape(iOpts.suffix) : iOpts.suffixEscaped || '}}';\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n this.unescapePrefix = iOpts.unescapeSuffix ? '' : iOpts.unescapePrefix || '-';\n this.unescapeSuffix = this.unescapePrefix ? '' : iOpts.unescapeSuffix || '';\n this.nestingPrefix = iOpts.nestingPrefix ? regexEscape(iOpts.nestingPrefix) : iOpts.nestingPrefixEscaped || regexEscape('$t(');\n this.nestingSuffix = iOpts.nestingSuffix ? regexEscape(iOpts.nestingSuffix) : iOpts.nestingSuffixEscaped || regexEscape(')');\n this.nestingOptionsSeparator = iOpts.nestingOptionsSeparator ? iOpts.nestingOptionsSeparator : iOpts.nestingOptionsSeparator || ',';\n this.maxReplaces = iOpts.maxReplaces ? iOpts.maxReplaces : 1000;\n this.alwaysFormat = iOpts.alwaysFormat !== undefined ? iOpts.alwaysFormat : false;\n this.resetRegExp();\n }\n }, {\n key: \"reset\",\n value: function reset() {\n if (this.options) this.init(this.options);\n }\n }, {\n key: \"resetRegExp\",\n value: function resetRegExp() {\n var regexpStr = \"\".concat(this.prefix, \"(.+?)\").concat(this.suffix);\n this.regexp = new RegExp(regexpStr, 'g');\n var regexpUnescapeStr = \"\".concat(this.prefix).concat(this.unescapePrefix, \"(.+?)\").concat(this.unescapeSuffix).concat(this.suffix);\n this.regexpUnescape = new RegExp(regexpUnescapeStr, 'g');\n var nestingRegexpStr = \"\".concat(this.nestingPrefix, \"(.+?)\").concat(this.nestingSuffix);\n this.nestingRegexp = new RegExp(nestingRegexpStr, 'g');\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(str, data, lng, options) {\n var _this = this;\n\n var match;\n var value;\n var replaces;\n var defaultData = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {};\n\n function regexSafe(val) {\n return val.replace(/\\$/g, '$$$$');\n }\n\n var handleFormat = function handleFormat(key) {\n if (key.indexOf(_this.formatSeparator) < 0) {\n var path = getPathWithDefaults(data, defaultData, key);\n return _this.alwaysFormat ? _this.format(path, undefined, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: key\n })) : path;\n }\n\n var p = key.split(_this.formatSeparator);\n var k = p.shift().trim();\n var f = p.join(_this.formatSeparator).trim();\n return _this.format(getPathWithDefaults(data, defaultData, k), f, lng, _objectSpread$3(_objectSpread$3(_objectSpread$3({}, options), data), {}, {\n interpolationkey: k\n }));\n };\n\n this.resetRegExp();\n var missingInterpolationHandler = options && options.missingInterpolationHandler || this.options.missingInterpolationHandler;\n var skipOnVariables = options && options.interpolation && options.interpolation.skipOnVariables || this.options.interpolation.skipOnVariables;\n var todos = [{\n regex: this.regexpUnescape,\n safeValue: function safeValue(val) {\n return regexSafe(val);\n }\n }, {\n regex: this.regexp,\n safeValue: function safeValue(val) {\n return _this.escapeValue ? regexSafe(_this.escape(val)) : regexSafe(val);\n }\n }];\n todos.forEach(function (todo) {\n replaces = 0;\n\n while (match = todo.regex.exec(str)) {\n value = handleFormat(match[1].trim());\n\n if (value === undefined) {\n if (typeof missingInterpolationHandler === 'function') {\n var temp = missingInterpolationHandler(str, match, options);\n value = typeof temp === 'string' ? temp : '';\n } else if (skipOnVariables) {\n value = match[0];\n continue;\n } else {\n _this.logger.warn(\"missed to pass in variable \".concat(match[1], \" for interpolating \").concat(str));\n\n value = '';\n }\n } else if (typeof value !== 'string' && !_this.useRawValueToEscape) {\n value = makeString(value);\n }\n\n var safeValue = todo.safeValue(value);\n str = str.replace(match[0], safeValue);\n\n if (skipOnVariables) {\n todo.regex.lastIndex += safeValue.length;\n todo.regex.lastIndex -= match[0].length;\n } else {\n todo.regex.lastIndex = 0;\n }\n\n replaces++;\n\n if (replaces >= _this.maxReplaces) {\n break;\n }\n }\n });\n return str;\n }\n }, {\n key: \"nest\",\n value: function nest(str, fc) {\n var _this2 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var match;\n var value;\n\n var clonedOptions = _objectSpread$3({}, options);\n\n clonedOptions.applyPostProcessor = false;\n delete clonedOptions.defaultValue;\n\n function handleHasOptions(key, inheritedOptions) {\n var sep = this.nestingOptionsSeparator;\n if (key.indexOf(sep) < 0) return key;\n var c = key.split(new RegExp(\"\".concat(sep, \"[ ]*{\")));\n var optionsString = \"{\".concat(c[1]);\n key = c[0];\n optionsString = this.interpolate(optionsString, clonedOptions);\n optionsString = optionsString.replace(/'/g, '\"');\n\n try {\n clonedOptions = JSON.parse(optionsString);\n if (inheritedOptions) clonedOptions = _objectSpread$3(_objectSpread$3({}, inheritedOptions), clonedOptions);\n } catch (e) {\n this.logger.warn(\"failed parsing options string in nesting for key \".concat(key), e);\n return \"\".concat(key).concat(sep).concat(optionsString);\n }\n\n delete clonedOptions.defaultValue;\n return key;\n }\n\n while (match = this.nestingRegexp.exec(str)) {\n var formatters = [];\n var doReduce = false;\n\n if (match[0].indexOf(this.formatSeparator) !== -1 && !/{.*}/.test(match[1])) {\n var r = match[1].split(this.formatSeparator).map(function (elem) {\n return elem.trim();\n });\n match[1] = r.shift();\n formatters = r;\n doReduce = true;\n }\n\n value = fc(handleHasOptions.call(this, match[1].trim(), clonedOptions), clonedOptions);\n if (value && match[0] === str && typeof value !== 'string') return value;\n if (typeof value !== 'string') value = makeString(value);\n\n if (!value) {\n this.logger.warn(\"missed to resolve \".concat(match[1], \" for nesting \").concat(str));\n value = '';\n }\n\n if (doReduce) {\n value = formatters.reduce(function (v, f) {\n return _this2.format(v, f, options.lng, _objectSpread$3(_objectSpread$3({}, options), {}, {\n interpolationkey: match[1].trim()\n }));\n }, value.trim());\n }\n\n str = str.replace(match[0], value);\n this.regexp.lastIndex = 0;\n }\n\n return str;\n }\n }]);\n\n return Interpolator;\n}();\n\nfunction ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$4(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction parseFormatStr(formatStr) {\n var formatName = formatStr.toLowerCase().trim();\n var formatOptions = {};\n\n if (formatStr.indexOf('(') > -1) {\n var p = formatStr.split('(');\n formatName = p[0].toLowerCase().trim();\n var optStr = p[1].substring(0, p[1].length - 1);\n\n if (formatName === 'currency' && optStr.indexOf(':') < 0) {\n if (!formatOptions.currency) formatOptions.currency = optStr.trim();\n } else if (formatName === 'relativetime' && optStr.indexOf(':') < 0) {\n if (!formatOptions.range) formatOptions.range = optStr.trim();\n } else {\n var opts = optStr.split(';');\n opts.forEach(function (opt) {\n if (!opt) return;\n\n var _opt$split = opt.split(':'),\n _opt$split2 = _slicedToArray(_opt$split, 2),\n key = _opt$split2[0],\n val = _opt$split2[1];\n\n if (val.trim() === 'false') formatOptions[key.trim()] = false;\n if (val.trim() === 'true') formatOptions[key.trim()] = true;\n if (!isNaN(val.trim())) formatOptions[key.trim()] = parseInt(val.trim(), 10);\n if (!formatOptions[key.trim()]) formatOptions[key.trim()] = val.trim();\n });\n }\n }\n\n return {\n formatName: formatName,\n formatOptions: formatOptions\n };\n}\n\nvar Formatter = function () {\n function Formatter() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, Formatter);\n\n this.logger = baseLogger.create('formatter');\n this.options = options;\n this.formats = {\n number: function number(val, lng, options) {\n return new Intl.NumberFormat(lng, options).format(val);\n },\n currency: function currency(val, lng, options) {\n return new Intl.NumberFormat(lng, _objectSpread$4(_objectSpread$4({}, options), {}, {\n style: 'currency'\n })).format(val);\n },\n datetime: function datetime(val, lng, options) {\n return new Intl.DateTimeFormat(lng, _objectSpread$4({}, options)).format(val);\n },\n relativetime: function relativetime(val, lng, options) {\n return new Intl.RelativeTimeFormat(lng, _objectSpread$4({}, options)).format(val, options.range || 'day');\n },\n list: function list(val, lng, options) {\n return new Intl.ListFormat(lng, _objectSpread$4({}, options)).format(val);\n }\n };\n this.init(options);\n }\n\n _createClass(Formatter, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n interpolation: {}\n };\n var iOpts = options.interpolation;\n this.formatSeparator = iOpts.formatSeparator ? iOpts.formatSeparator : iOpts.formatSeparator || ',';\n }\n }, {\n key: \"add\",\n value: function add(name, fc) {\n this.formats[name] = fc;\n }\n }, {\n key: \"format\",\n value: function format(value, _format, lng, options) {\n var _this = this;\n\n var formats = _format.split(this.formatSeparator);\n\n var result = formats.reduce(function (mem, f) {\n var _parseFormatStr = parseFormatStr(f),\n formatName = _parseFormatStr.formatName,\n formatOptions = _parseFormatStr.formatOptions;\n\n if (_this.formats[formatName]) {\n var formatted = mem;\n\n try {\n var valOptions = options && options.formatParams && options.formatParams[options.interpolationkey] || {};\n var l = valOptions.locale || valOptions.lng || options.locale || options.lng || lng;\n formatted = _this.formats[formatName](mem, l, _objectSpread$4(_objectSpread$4(_objectSpread$4({}, formatOptions), options), valOptions));\n } catch (error) {\n _this.logger.warn(error);\n }\n\n return formatted;\n } else {\n _this.logger.warn(\"there was no format function for \".concat(formatName));\n }\n\n return mem;\n }, value);\n return result;\n }\n }]);\n\n return Formatter;\n}();\n\nfunction ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$5(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$2(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$2(); 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); }; }\n\nfunction _isNativeReflectConstruct$2() { 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; } }\n\nfunction remove(arr, what) {\n var found = arr.indexOf(what);\n\n while (found !== -1) {\n arr.splice(found, 1);\n found = arr.indexOf(what);\n }\n}\n\nvar Connector = function (_EventEmitter) {\n _inherits(Connector, _EventEmitter);\n\n var _super = _createSuper$2(Connector);\n\n function Connector(backend, store, services) {\n var _this;\n\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n _classCallCheck(this, Connector);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.backend = backend;\n _this.store = store;\n _this.services = services;\n _this.languageUtils = services.languageUtils;\n _this.options = options;\n _this.logger = baseLogger.create('backendConnector');\n _this.state = {};\n _this.queue = [];\n\n if (_this.backend && _this.backend.init) {\n _this.backend.init(services, options.backend, options);\n }\n\n return _this;\n }\n\n _createClass(Connector, [{\n key: \"queueLoad\",\n value: function queueLoad(languages, namespaces, options, callback) {\n var _this2 = this;\n\n var toLoad = [];\n var pending = [];\n var toLoadLanguages = [];\n var toLoadNamespaces = [];\n languages.forEach(function (lng) {\n var hasAllNamespaces = true;\n namespaces.forEach(function (ns) {\n var name = \"\".concat(lng, \"|\").concat(ns);\n\n if (!options.reload && _this2.store.hasResourceBundle(lng, ns)) {\n _this2.state[name] = 2;\n } else if (_this2.state[name] < 0) ; else if (_this2.state[name] === 1) {\n if (pending.indexOf(name) < 0) pending.push(name);\n } else {\n _this2.state[name] = 1;\n hasAllNamespaces = false;\n if (pending.indexOf(name) < 0) pending.push(name);\n if (toLoad.indexOf(name) < 0) toLoad.push(name);\n if (toLoadNamespaces.indexOf(ns) < 0) toLoadNamespaces.push(ns);\n }\n });\n if (!hasAllNamespaces) toLoadLanguages.push(lng);\n });\n\n if (toLoad.length || pending.length) {\n this.queue.push({\n pending: pending,\n loaded: {},\n errors: [],\n callback: callback\n });\n }\n\n return {\n toLoad: toLoad,\n pending: pending,\n toLoadLanguages: toLoadLanguages,\n toLoadNamespaces: toLoadNamespaces\n };\n }\n }, {\n key: \"loaded\",\n value: function loaded(name, err, data) {\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n if (err) this.emit('failedLoading', lng, ns, err);\n\n if (data) {\n this.store.addResourceBundle(lng, ns, data);\n }\n\n this.state[name] = err ? -1 : 2;\n var loaded = {};\n this.queue.forEach(function (q) {\n pushPath(q.loaded, [lng], ns);\n remove(q.pending, name);\n if (err) q.errors.push(err);\n\n if (q.pending.length === 0 && !q.done) {\n Object.keys(q.loaded).forEach(function (l) {\n if (!loaded[l]) loaded[l] = [];\n\n if (q.loaded[l].length) {\n q.loaded[l].forEach(function (ns) {\n if (loaded[l].indexOf(ns) < 0) loaded[l].push(ns);\n });\n }\n });\n q.done = true;\n\n if (q.errors.length) {\n q.callback(q.errors);\n } else {\n q.callback();\n }\n }\n });\n this.emit('loaded', loaded);\n this.queue = this.queue.filter(function (q) {\n return !q.done;\n });\n }\n }, {\n key: \"read\",\n value: function read(lng, ns, fcName) {\n var _this3 = this;\n\n var tried = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var wait = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 350;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n if (!lng.length) return callback(null, {});\n return this.backend[fcName](lng, ns, function (err, data) {\n if (err && data && tried < 5) {\n setTimeout(function () {\n _this3.read.call(_this3, lng, ns, fcName, tried + 1, wait * 2, callback);\n }, wait);\n return;\n }\n\n callback(err, data);\n });\n }\n }, {\n key: \"prepareLoading\",\n value: function prepareLoading(languages, namespaces) {\n var _this4 = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var callback = arguments.length > 3 ? arguments[3] : undefined;\n\n if (!this.backend) {\n this.logger.warn('No backend was added via i18next.use. Will not load resources.');\n return callback && callback();\n }\n\n if (typeof languages === 'string') languages = this.languageUtils.toResolveHierarchy(languages);\n if (typeof namespaces === 'string') namespaces = [namespaces];\n var toLoad = this.queueLoad(languages, namespaces, options, callback);\n\n if (!toLoad.toLoad.length) {\n if (!toLoad.pending.length) callback();\n return null;\n }\n\n toLoad.toLoad.forEach(function (name) {\n _this4.loadOne(name);\n });\n }\n }, {\n key: \"load\",\n value: function load(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {}, callback);\n }\n }, {\n key: \"reload\",\n value: function reload(languages, namespaces, callback) {\n this.prepareLoading(languages, namespaces, {\n reload: true\n }, callback);\n }\n }, {\n key: \"loadOne\",\n value: function loadOne(name) {\n var _this5 = this;\n\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var s = name.split('|');\n var lng = s[0];\n var ns = s[1];\n this.read(lng, ns, 'read', undefined, undefined, function (err, data) {\n if (err) _this5.logger.warn(\"\".concat(prefix, \"loading namespace \").concat(ns, \" for language \").concat(lng, \" failed\"), err);\n if (!err && data) _this5.logger.log(\"\".concat(prefix, \"loaded namespace \").concat(ns, \" for language \").concat(lng), data);\n\n _this5.loaded(name, err, data);\n });\n }\n }, {\n key: \"saveMissing\",\n value: function saveMissing(languages, namespace, key, fallbackValue, isUpdate) {\n var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n\n if (this.services.utils && this.services.utils.hasLoadedNamespace && !this.services.utils.hasLoadedNamespace(namespace)) {\n this.logger.warn(\"did not save key \\\"\".concat(key, \"\\\" as the namespace \\\"\").concat(namespace, \"\\\" was not yet loaded\"), 'This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!');\n return;\n }\n\n if (key === undefined || key === null || key === '') return;\n\n if (this.backend && this.backend.create) {\n this.backend.create(languages, namespace, key, fallbackValue, null, _objectSpread$5(_objectSpread$5({}, options), {}, {\n isUpdate: isUpdate\n }));\n }\n\n if (!languages || !languages[0]) return;\n this.store.addResource(languages[0], namespace, key, fallbackValue);\n }\n }]);\n\n return Connector;\n}(EventEmitter);\n\nfunction get() {\n return {\n debug: false,\n initImmediate: true,\n ns: ['translation'],\n defaultNS: ['translation'],\n fallbackLng: ['dev'],\n fallbackNS: false,\n supportedLngs: false,\n nonExplicitSupportedLngs: false,\n load: 'all',\n preload: false,\n simplifyPluralSuffix: true,\n keySeparator: '.',\n nsSeparator: ':',\n pluralSeparator: '_',\n contextSeparator: '_',\n partialBundledLanguages: false,\n saveMissing: false,\n updateMissing: false,\n saveMissingTo: 'fallback',\n saveMissingPlurals: true,\n missingKeyHandler: false,\n missingInterpolationHandler: false,\n postProcess: false,\n postProcessPassResolved: false,\n returnNull: true,\n returnEmptyString: true,\n returnObjects: false,\n joinArrays: false,\n returnedObjectHandler: false,\n parseMissingKeyHandler: false,\n appendNamespaceToMissingKey: false,\n appendNamespaceToCIMode: false,\n overloadTranslationOptionHandler: function handle(args) {\n var ret = {};\n if (_typeof(args[1]) === 'object') ret = args[1];\n if (typeof args[1] === 'string') ret.defaultValue = args[1];\n if (typeof args[2] === 'string') ret.tDescription = args[2];\n\n if (_typeof(args[2]) === 'object' || _typeof(args[3]) === 'object') {\n var options = args[3] || args[2];\n Object.keys(options).forEach(function (key) {\n ret[key] = options[key];\n });\n }\n\n return ret;\n },\n interpolation: {\n escapeValue: true,\n format: function format(value, _format, lng, options) {\n return value;\n },\n prefix: '{{',\n suffix: '}}',\n formatSeparator: ',',\n unescapePrefix: '-',\n nestingPrefix: '$t(',\n nestingSuffix: ')',\n nestingOptionsSeparator: ',',\n maxReplaces: 1000,\n skipOnVariables: true\n }\n };\n}\nfunction transformOptions(options) {\n if (typeof options.ns === 'string') options.ns = [options.ns];\n if (typeof options.fallbackLng === 'string') options.fallbackLng = [options.fallbackLng];\n if (typeof options.fallbackNS === 'string') options.fallbackNS = [options.fallbackNS];\n\n if (options.supportedLngs && options.supportedLngs.indexOf('cimode') < 0) {\n options.supportedLngs = options.supportedLngs.concat(['cimode']);\n }\n\n return options;\n}\n\nfunction ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$6(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _createSuper$3(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct$3(); 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); }; }\n\nfunction _isNativeReflectConstruct$3() { 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; } }\n\nfunction noop() {}\n\nfunction bindMemberFunctions(inst) {\n var mems = Object.getOwnPropertyNames(Object.getPrototypeOf(inst));\n mems.forEach(function (mem) {\n if (typeof inst[mem] === 'function') {\n inst[mem] = inst[mem].bind(inst);\n }\n });\n}\n\nvar I18n = function (_EventEmitter) {\n _inherits(I18n, _EventEmitter);\n\n var _super = _createSuper$3(I18n);\n\n function I18n() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n _classCallCheck(this, I18n);\n\n _this = _super.call(this);\n\n if (isIE10) {\n EventEmitter.call(_assertThisInitialized(_this));\n }\n\n _this.options = transformOptions(options);\n _this.services = {};\n _this.logger = baseLogger;\n _this.modules = {\n external: []\n };\n bindMemberFunctions(_assertThisInitialized(_this));\n\n if (callback && !_this.isInitialized && !options.isClone) {\n if (!_this.options.initImmediate) {\n _this.init(options, callback);\n\n return _possibleConstructorReturn(_this, _assertThisInitialized(_this));\n }\n\n setTimeout(function () {\n _this.init(options, callback);\n }, 0);\n }\n\n return _this;\n }\n\n _createClass(I18n, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (!options.defaultNS && options.ns) {\n if (typeof options.ns === 'string') {\n options.defaultNS = options.ns;\n } else if (options.ns.indexOf('translation') < 0) {\n options.defaultNS = options.ns[0];\n }\n }\n\n var defOpts = get();\n this.options = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, defOpts), this.options), transformOptions(options));\n this.options.interpolation = _objectSpread$6({}, this.options.interpolation);\n\n if (options.keySeparator !== undefined) {\n this.options.userDefinedKeySeparator = options.keySeparator;\n }\n\n if (options.nsSeparator !== undefined) {\n this.options.userDefinedNsSeparator = options.nsSeparator;\n }\n\n function createClassOnDemand(ClassOrObject) {\n if (!ClassOrObject) return null;\n if (typeof ClassOrObject === 'function') return new ClassOrObject();\n return ClassOrObject;\n }\n\n if (!this.options.isClone) {\n if (this.modules.logger) {\n baseLogger.init(createClassOnDemand(this.modules.logger), this.options);\n } else {\n baseLogger.init(null, this.options);\n }\n\n var formatter;\n\n if (this.modules.formatter) {\n formatter = this.modules.formatter;\n } else if (typeof Intl !== 'undefined') {\n formatter = Formatter;\n }\n\n var lu = new LanguageUtil(this.options);\n this.store = new ResourceStore(this.options.resources, this.options);\n var s = this.services;\n s.logger = baseLogger;\n s.resourceStore = this.store;\n s.languageUtils = lu;\n s.pluralResolver = new PluralResolver(lu, {\n prepend: this.options.pluralSeparator,\n compatibilityJSON: this.options.compatibilityJSON,\n simplifyPluralSuffix: this.options.simplifyPluralSuffix\n });\n\n if (formatter && (!this.options.interpolation.format || this.options.interpolation.format === defOpts.interpolation.format)) {\n s.formatter = createClassOnDemand(formatter);\n s.formatter.init(s, this.options);\n this.options.interpolation.format = s.formatter.format.bind(s.formatter);\n }\n\n s.interpolator = new Interpolator(this.options);\n s.utils = {\n hasLoadedNamespace: this.hasLoadedNamespace.bind(this)\n };\n s.backendConnector = new Connector(createClassOnDemand(this.modules.backend), s.resourceStore, s, this.options);\n s.backendConnector.on('*', function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n\n if (this.modules.languageDetector) {\n s.languageDetector = createClassOnDemand(this.modules.languageDetector);\n s.languageDetector.init(s, this.options.detection, this.options);\n }\n\n if (this.modules.i18nFormat) {\n s.i18nFormat = createClassOnDemand(this.modules.i18nFormat);\n if (s.i18nFormat.init) s.i18nFormat.init(this);\n }\n\n this.translator = new Translator(this.services, this.options);\n this.translator.on('*', function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this2.emit.apply(_this2, [event].concat(args));\n });\n this.modules.external.forEach(function (m) {\n if (m.init) m.init(_this2);\n });\n }\n\n this.format = this.options.interpolation.format;\n if (!callback) callback = noop;\n\n if (this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {\n var codes = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n if (codes.length > 0 && codes[0] !== 'dev') this.options.lng = codes[0];\n }\n\n if (!this.services.languageDetector && !this.options.lng) {\n this.logger.warn('init: no languageDetector is used and no lng is defined');\n }\n\n var storeApi = ['getResource', 'hasResourceBundle', 'getResourceBundle', 'getDataByLanguage'];\n storeApi.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store;\n\n return (_this2$store = _this2.store)[fcName].apply(_this2$store, arguments);\n };\n });\n var storeApiChained = ['addResource', 'addResources', 'addResourceBundle', 'removeResourceBundle'];\n storeApiChained.forEach(function (fcName) {\n _this2[fcName] = function () {\n var _this2$store2;\n\n (_this2$store2 = _this2.store)[fcName].apply(_this2$store2, arguments);\n\n return _this2;\n };\n });\n var deferred = defer();\n\n var load = function load() {\n var finish = function finish(err, t) {\n if (_this2.isInitialized && !_this2.initializedStoreOnce) _this2.logger.warn('init: i18next is already initialized. You should call init just once!');\n _this2.isInitialized = true;\n if (!_this2.options.isClone) _this2.logger.log('initialized', _this2.options);\n\n _this2.emit('initialized', _this2.options);\n\n deferred.resolve(t);\n callback(err, t);\n };\n\n if (_this2.languages && _this2.options.compatibilityAPI !== 'v1' && !_this2.isInitialized) return finish(null, _this2.t.bind(_this2));\n\n _this2.changeLanguage(_this2.options.lng, finish);\n };\n\n if (this.options.resources || !this.options.initImmediate) {\n load();\n } else {\n setTimeout(load, 0);\n }\n\n return deferred;\n }\n }, {\n key: \"loadResources\",\n value: function loadResources(language) {\n var _this3 = this;\n\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n var usedCallback = callback;\n var usedLng = typeof language === 'string' ? language : this.language;\n if (typeof language === 'function') usedCallback = language;\n\n if (!this.options.resources || this.options.partialBundledLanguages) {\n if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();\n var toLoad = [];\n\n var append = function append(lng) {\n if (!lng) return;\n\n var lngs = _this3.services.languageUtils.toResolveHierarchy(lng);\n\n lngs.forEach(function (l) {\n if (toLoad.indexOf(l) < 0) toLoad.push(l);\n });\n };\n\n if (!usedLng) {\n var fallbacks = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);\n fallbacks.forEach(function (l) {\n return append(l);\n });\n } else {\n append(usedLng);\n }\n\n if (this.options.preload) {\n this.options.preload.forEach(function (l) {\n return append(l);\n });\n }\n\n this.services.backendConnector.load(toLoad, this.options.ns, usedCallback);\n } else {\n usedCallback(null);\n }\n }\n }, {\n key: \"reloadResources\",\n value: function reloadResources(lngs, ns, callback) {\n var deferred = defer();\n if (!lngs) lngs = this.languages;\n if (!ns) ns = this.options.ns;\n if (!callback) callback = noop;\n this.services.backendConnector.reload(lngs, ns, function (err) {\n deferred.resolve();\n callback(err);\n });\n return deferred;\n }\n }, {\n key: \"use\",\n value: function use(module) {\n if (!module) throw new Error('You are passing an undefined module! Please check the object you are passing to i18next.use()');\n if (!module.type) throw new Error('You are passing a wrong module! Please check the object you are passing to i18next.use()');\n\n if (module.type === 'backend') {\n this.modules.backend = module;\n }\n\n if (module.type === 'logger' || module.log && module.warn && module.error) {\n this.modules.logger = module;\n }\n\n if (module.type === 'languageDetector') {\n this.modules.languageDetector = module;\n }\n\n if (module.type === 'i18nFormat') {\n this.modules.i18nFormat = module;\n }\n\n if (module.type === 'postProcessor') {\n postProcessor.addPostProcessor(module);\n }\n\n if (module.type === 'formatter') {\n this.modules.formatter = module;\n }\n\n if (module.type === '3rdParty') {\n this.modules.external.push(module);\n }\n\n return this;\n }\n }, {\n key: \"changeLanguage\",\n value: function changeLanguage(lng, callback) {\n var _this4 = this;\n\n this.isLanguageChangingTo = lng;\n var deferred = defer();\n this.emit('languageChanging', lng);\n\n var setLngProps = function setLngProps(l) {\n _this4.language = l;\n _this4.languages = _this4.services.languageUtils.toResolveHierarchy(l);\n _this4.resolvedLanguage = undefined;\n if (['cimode', 'dev'].indexOf(l) > -1) return;\n\n for (var li = 0; li < _this4.languages.length; li++) {\n var lngInLngs = _this4.languages[li];\n if (['cimode', 'dev'].indexOf(lngInLngs) > -1) continue;\n\n if (_this4.store.hasLanguageSomeTranslations(lngInLngs)) {\n _this4.resolvedLanguage = lngInLngs;\n break;\n }\n }\n };\n\n var done = function done(err, l) {\n if (l) {\n setLngProps(l);\n\n _this4.translator.changeLanguage(l);\n\n _this4.isLanguageChangingTo = undefined;\n\n _this4.emit('languageChanged', l);\n\n _this4.logger.log('languageChanged', l);\n } else {\n _this4.isLanguageChangingTo = undefined;\n }\n\n deferred.resolve(function () {\n return _this4.t.apply(_this4, arguments);\n });\n if (callback) callback(err, function () {\n return _this4.t.apply(_this4, arguments);\n });\n };\n\n var setLng = function setLng(lngs) {\n if (!lng && !lngs && _this4.services.languageDetector) lngs = [];\n var l = typeof lngs === 'string' ? lngs : _this4.services.languageUtils.getBestMatchFromCodes(lngs);\n\n if (l) {\n if (!_this4.language) {\n setLngProps(l);\n }\n\n if (!_this4.translator.language) _this4.translator.changeLanguage(l);\n if (_this4.services.languageDetector) _this4.services.languageDetector.cacheUserLanguage(l);\n }\n\n _this4.loadResources(l, function (err) {\n done(err, l);\n });\n };\n\n if (!lng && this.services.languageDetector && !this.services.languageDetector.async) {\n setLng(this.services.languageDetector.detect());\n } else if (!lng && this.services.languageDetector && this.services.languageDetector.async) {\n this.services.languageDetector.detect(setLng);\n } else {\n setLng(lng);\n }\n\n return deferred;\n }\n }, {\n key: \"getFixedT\",\n value: function getFixedT(lng, ns, keyPrefix) {\n var _this5 = this;\n\n var fixedT = function fixedT(key, opts) {\n var options;\n\n if (_typeof(opts) !== 'object') {\n for (var _len3 = arguments.length, rest = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n rest[_key3 - 2] = arguments[_key3];\n }\n\n options = _this5.options.overloadTranslationOptionHandler([key, opts].concat(rest));\n } else {\n options = _objectSpread$6({}, opts);\n }\n\n options.lng = options.lng || fixedT.lng;\n options.lngs = options.lngs || fixedT.lngs;\n options.ns = options.ns || fixedT.ns;\n var keySeparator = _this5.options.keySeparator || '.';\n var resultKey = keyPrefix ? \"\".concat(keyPrefix).concat(keySeparator).concat(key) : key;\n return _this5.t(resultKey, options);\n };\n\n if (typeof lng === 'string') {\n fixedT.lng = lng;\n } else {\n fixedT.lngs = lng;\n }\n\n fixedT.ns = ns;\n fixedT.keyPrefix = keyPrefix;\n return fixedT;\n }\n }, {\n key: \"t\",\n value: function t() {\n var _this$translator;\n\n return this.translator && (_this$translator = this.translator).translate.apply(_this$translator, arguments);\n }\n }, {\n key: \"exists\",\n value: function exists() {\n var _this$translator2;\n\n return this.translator && (_this$translator2 = this.translator).exists.apply(_this$translator2, arguments);\n }\n }, {\n key: \"setDefaultNamespace\",\n value: function setDefaultNamespace(ns) {\n this.options.defaultNS = ns;\n }\n }, {\n key: \"hasLoadedNamespace\",\n value: function hasLoadedNamespace(ns) {\n var _this6 = this;\n\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n if (!this.isInitialized) {\n this.logger.warn('hasLoadedNamespace: i18next was not initialized', this.languages);\n return false;\n }\n\n if (!this.languages || !this.languages.length) {\n this.logger.warn('hasLoadedNamespace: i18n.languages were undefined or empty', this.languages);\n return false;\n }\n\n var lng = this.resolvedLanguage || this.languages[0];\n var fallbackLng = this.options ? this.options.fallbackLng : false;\n var lastLng = this.languages[this.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = _this6.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n\n return loadState === -1 || loadState === 2;\n };\n\n if (options.precheck) {\n var preResult = options.precheck(this, loadNotPending);\n if (preResult !== undefined) return preResult;\n }\n\n if (this.hasResourceBundle(lng, ns)) return true;\n if (!this.services.backendConnector.backend) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n }\n }, {\n key: \"loadNamespaces\",\n value: function loadNamespaces(ns, callback) {\n var _this7 = this;\n\n var deferred = defer();\n\n if (!this.options.ns) {\n callback && callback();\n return Promise.resolve();\n }\n\n if (typeof ns === 'string') ns = [ns];\n ns.forEach(function (n) {\n if (_this7.options.ns.indexOf(n) < 0) _this7.options.ns.push(n);\n });\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"loadLanguages\",\n value: function loadLanguages(lngs, callback) {\n var deferred = defer();\n if (typeof lngs === 'string') lngs = [lngs];\n var preloaded = this.options.preload || [];\n var newLngs = lngs.filter(function (lng) {\n return preloaded.indexOf(lng) < 0;\n });\n\n if (!newLngs.length) {\n if (callback) callback();\n return Promise.resolve();\n }\n\n this.options.preload = preloaded.concat(newLngs);\n this.loadResources(function (err) {\n deferred.resolve();\n if (callback) callback(err);\n });\n return deferred;\n }\n }, {\n key: \"dir\",\n value: function dir(lng) {\n if (!lng) lng = this.resolvedLanguage || (this.languages && this.languages.length > 0 ? this.languages[0] : this.language);\n if (!lng) return 'rtl';\n var rtlLngs = ['ar', 'shu', 'sqr', 'ssh', 'xaa', 'yhd', 'yud', 'aao', 'abh', 'abv', 'acm', 'acq', 'acw', 'acx', 'acy', 'adf', 'ads', 'aeb', 'aec', 'afb', 'ajp', 'apc', 'apd', 'arb', 'arq', 'ars', 'ary', 'arz', 'auz', 'avl', 'ayh', 'ayl', 'ayn', 'ayp', 'bbz', 'pga', 'he', 'iw', 'ps', 'pbt', 'pbu', 'pst', 'prp', 'prd', 'ug', 'ur', 'ydd', 'yds', 'yih', 'ji', 'yi', 'hbo', 'men', 'xmn', 'fa', 'jpr', 'peo', 'pes', 'prs', 'dv', 'sam', 'ckb'];\n return rtlLngs.indexOf(this.services.languageUtils.getLanguagePartFromCode(lng)) > -1 || lng.toLowerCase().indexOf('-arab') > 1 ? 'rtl' : 'ltr';\n }\n }, {\n key: \"cloneInstance\",\n value: function cloneInstance() {\n var _this8 = this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : noop;\n\n var mergedOptions = _objectSpread$6(_objectSpread$6(_objectSpread$6({}, this.options), options), {\n isClone: true\n });\n\n var clone = new I18n(mergedOptions);\n var membersToCopy = ['store', 'services', 'language'];\n membersToCopy.forEach(function (m) {\n clone[m] = _this8[m];\n });\n clone.services = _objectSpread$6({}, this.services);\n clone.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n clone.translator = new Translator(clone.services, clone.options);\n clone.translator.on('*', function (event) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n\n clone.emit.apply(clone, [event].concat(args));\n });\n clone.init(mergedOptions, callback);\n clone.translator.options = clone.options;\n clone.translator.backendConnector.services.utils = {\n hasLoadedNamespace: clone.hasLoadedNamespace.bind(clone)\n };\n return clone;\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n return {\n options: this.options,\n store: this.store,\n language: this.language,\n languages: this.languages,\n resolvedLanguage: this.resolvedLanguage\n };\n }\n }]);\n\n return I18n;\n}(EventEmitter);\n\n_defineProperty(I18n, \"createInstance\", function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var callback = arguments.length > 1 ? arguments[1] : undefined;\n return new I18n(options, callback);\n});\n\nvar instance = I18n.createInstance();\ninstance.createInstance = I18n.createInstance;\n\nvar createInstance = instance.createInstance;\nvar init = instance.init;\nvar loadResources = instance.loadResources;\nvar reloadResources = instance.reloadResources;\nvar use = instance.use;\nvar changeLanguage = instance.changeLanguage;\nvar getFixedT = instance.getFixedT;\nvar t = instance.t;\nvar exists = instance.exists;\nvar setDefaultNamespace = instance.setDefaultNamespace;\nvar hasLoadedNamespace = instance.hasLoadedNamespace;\nvar loadNamespaces = instance.loadNamespaces;\nvar loadLanguages = instance.loadLanguages;\n\nexport default instance;\nexport { changeLanguage, createInstance, exists, getFixedT, hasLoadedNamespace, init, loadLanguages, loadNamespaces, loadResources, reloadResources, setDefaultNamespace, t, use };\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","// 20.2.2.20 Math.log1p(x)\nmodule.exports = Math.log1p || function log1p(x) {\n return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","var cof = require('./_cof');\nmodule.exports = function (it, msg) {\n if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg);\n return +it;\n};\n","// 20.1.2.3 Number.isInteger(number)\nvar isObject = require('./_is-object');\nvar floor = Math.floor;\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\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 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 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","/**\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 * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","var 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 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 isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","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 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 * 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 * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","var 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 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 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","\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 0 },\n * entered: { opacity: 1 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nexports.EXITING = EXITING;\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n var _proto = Transition.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: null // allows for nested Transitions\n\n };\n };\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n var node = _reactDom.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n return children(status, childProps);\n }\n\n var child = _react.default.Children.only(children);\n\n return _react.default.cloneElement(child, childProps);\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextTypes = {\n transitionGroup: PropTypes.object\n};\nTransition.childContextTypes = {\n transitionGroup: function transitionGroup() {}\n};\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`, `'unmounted'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the `` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = _PropTypes.timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports.default = _default;","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","\"use strict\";\n\nexports.__esModule = true;\nexports.classNamesShape = exports.timeoutsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar timeoutsShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n enter: _propTypes.default.number,\n exit: _propTypes.default.number,\n appear: _propTypes.default.number\n}).isRequired]) : null;\nexports.timeoutsShape = timeoutsShape;\nvar classNamesShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({\n enter: _propTypes.default.string,\n exit: _propTypes.default.string,\n active: _propTypes.default.string\n}), _propTypes.default.shape({\n enter: _propTypes.default.string,\n enterDone: _propTypes.default.string,\n enterActive: _propTypes.default.string,\n exit: _propTypes.default.string,\n exitDone: _propTypes.default.string,\n exitActive: _propTypes.default.string\n})]) : null;\nexports.classNamesShape = classNamesShape;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _ChildMapping = require(\"./utils/ChildMapping\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n /**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\n};\n\nvar TransitionGroup =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n transitionGroup: {\n isMounting: !this.appeared\n }\n };\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n this.mounted = true;\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n };\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return children;\n }\n\n return _react.default.createElement(Component, props, children);\n };\n\n return TransitionGroup;\n}(_react.default.Component);\n\nTransitionGroup.childContextTypes = {\n transitionGroup: _propTypes.default.object.isRequired\n};\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: _propTypes.default.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: _propTypes.default.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: _propTypes.default.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: _propTypes.default.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var isSymbol = require('./isSymbol');\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseExtremum;\n","var 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 arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayMap = require('./_arrayMap'),\n baseIntersection = require('./_baseIntersection'),\n baseRest = require('./_baseRest'),\n castArrayLikeObject = require('./_castArrayLikeObject');\n\n/**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\nvar intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n});\n\nmodule.exports = intersection;\n","var arrayFilter = require('./_arrayFilter'),\n baseFilter = require('./_baseFilter'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray');\n\n/**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\nfunction filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = filter;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _ResizeDetector = require('./components/ResizeDetector');\n\nvar _ResizeDetector2 = _interopRequireDefault(_ResizeDetector);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _ResizeDetector2.default;","var 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","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","var 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 debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","var 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","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for comparison styles. */\nvar UNORDERED_COMPARE_FLAG = 1,\n PARTIAL_COMPARE_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n reLeadingDot = /^\\./,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\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 match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\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/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** 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 return freeProcess && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n}\n\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 ? array.length : 0;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\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\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\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\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\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\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\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\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\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\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/** 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/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** 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/** Built-in value references. */\nvar Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\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/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\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 ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\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}\n\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 return this.has(key) && delete this.__data__[key];\n}\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\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\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 data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\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\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 ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\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}\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 return true;\n}\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\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\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 data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\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\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 ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\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.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\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 return getMapData(this, key)['delete'](key);\n}\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\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\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 getMapData(this, key).set(key, value);\n return this;\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\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 ? values.length : 0;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\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\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\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\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 this.__data__ = new ListCache(entries);\n}\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}\n\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 return this.__data__['delete'](key);\n}\n\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\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\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 cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\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\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 // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\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\n/**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n}\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\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\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\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 = isKey(path, object) ? [path] : castPath(path);\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\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\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\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 {Function} [customizer] The function to customize comparisons.\n * @param {boolean} [bitmask] The bitmask of comparison flags.\n * The bitmask may be composed of the following flags:\n * 1 - Unordered comparison\n * 2 - Partial comparison\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, customizer, bitmask, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, baseIsEqual, customizer, bitmask, stack);\n}\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 {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {number} [bitmask] The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\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, equalFunc, customizer, bitmask, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = arrayTag,\n othTag = arrayTag;\n\n if (!objIsArr) {\n objTag = getTag(object);\n objTag = objTag == argsTag ? objectTag : objTag;\n }\n if (!othIsArr) {\n othTag = getTag(other);\n othTag = othTag == argsTag ? objectTag : othTag;\n }\n var objIsObj = objTag == objectTag && !isHostObject(object),\n othIsObj = othTag == objectTag && !isHostObject(other),\n isSameTag = objTag == othTag;\n\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, equalFunc, customizer, bitmask, stack)\n : equalByTag(object, other, objTag, equalFunc, customizer, bitmask, stack);\n }\n if (!(bitmask & PARTIAL_COMPARE_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, customizer, bitmask, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, equalFunc, customizer, bitmask, stack);\n}\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, customizer, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\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) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\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[objectToString.call(value)];\n}\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\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\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\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, undefined, UNORDERED_COMPARE_FLAG | PARTIAL_COMPARE_FLAG);\n };\n}\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\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\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 * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value) {\n return isArray(value) ? value : stringToPath(value);\n}\n\n/**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\nfunction createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, baseIteratee(iteratee, 2), accumulator);\n };\n}\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\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\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 {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\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, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & UNORDERED_COMPARE_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 (!seen.has(othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, customizer, bitmask, stack))) {\n return seen.add(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, customizer, bitmask, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\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 {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\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, equalFunc, customizer, bitmask, 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 & PARTIAL_COMPARE_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 |= UNORDERED_COMPARE_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), equalFunc, customizer, bitmask, 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\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 {Function} equalFunc The function to determine equivalents of values.\n * @param {Function} customizer The function to customize comparisons.\n * @param {number} bitmask The bitmask of comparison flags. See `baseIsEqual`\n * for more details.\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, equalFunc, customizer, bitmask, stack) {\n var isPartial = bitmask & PARTIAL_COMPARE_FLAG,\n objProps = keys(object),\n objLength = objProps.length,\n othProps = keys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, customizer, bitmask, 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\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\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\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\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,\n// for data views in Edge < 14, and promises in Node.js.\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 = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\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\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 = isKey(path, object) ? [path] : castPath(path);\n\n var result,\n index = -1,\n length = path.length;\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) {\n return result;\n }\n var length = object ? object.length : 0;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\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 length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\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\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\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\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\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\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\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 = memoize(function(string) {\n string = toString(string);\n\n var result = [];\n if (reLeadingDot.test(string)) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, string) {\n result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\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\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\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\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is 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} [iteratee=_.identity]\n * The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\nvar groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n result[key] = [value];\n }\n});\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 `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 && 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);\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Assign cache to `_.memoize`.\nmemoize.Cache = MapCache;\n\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\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 */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\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\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\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 // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\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\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * 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\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\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\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\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\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\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 = groupBy;\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","export default {\n GLOBAL: {\n HIDE: '__react_tooltip_hide_event',\n REBUILD: '__react_tooltip_rebuild_event',\n SHOW: '__react_tooltip_show_event'\n }\n};\n","/**\n * Static methods for react-tooltip\n */\nimport CONSTANT from '../constant';\n\nconst dispatchGlobalEvent = (eventName, opts) => {\n // Compatible with IE\n // @see http://stackoverflow.com/questions/26596123/internet-explorer-9-10-11-event-constructor-doesnt-work\n // @see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent\n let event;\n\n if (typeof window.CustomEvent === 'function') {\n event = new window.CustomEvent(eventName, { detail: opts });\n } else {\n event = document.createEvent('Event');\n event.initEvent(eventName, false, true, opts);\n }\n\n window.dispatchEvent(event);\n};\n\nexport default function(target) {\n /**\n * Hide all tooltip\n * @trigger ReactTooltip.hide()\n */\n target.hide = target => {\n dispatchGlobalEvent(CONSTANT.GLOBAL.HIDE, { target });\n };\n\n /**\n * Rebuild all tooltip\n * @trigger ReactTooltip.rebuild()\n */\n target.rebuild = () => {\n dispatchGlobalEvent(CONSTANT.GLOBAL.REBUILD);\n };\n\n /**\n * Show specific tooltip\n * @trigger ReactTooltip.show()\n */\n target.show = target => {\n dispatchGlobalEvent(CONSTANT.GLOBAL.SHOW, { target });\n };\n\n target.prototype.globalRebuild = function() {\n if (this.mount) {\n this.unbindListener();\n this.bindListener();\n }\n };\n\n target.prototype.globalShow = function(event) {\n if (this.mount) {\n const hasTarget =\n (event && event.detail && event.detail.target && true) || false;\n // Create a fake event, specific show will limit the type to `solid`\n // only `float` type cares e.clientX e.clientY\n this.showTooltip(\n { currentTarget: hasTarget && event.detail.target },\n true\n );\n }\n };\n\n target.prototype.globalHide = function(event) {\n if (this.mount) {\n const hasTarget =\n (event && event.detail && event.detail.target && true) || false;\n this.hideTooltip(\n { currentTarget: hasTarget && event.detail.target },\n hasTarget\n );\n }\n };\n}\n","/**\n * Custom events to control showing and hiding of tooltip\n *\n * @attributes\n * - `event` {String}\n * - `eventOff` {String}\n */\n\nexport const checkStatus = function(dataEventOff, e) {\n const { show } = this.state;\n const { id } = this.props;\n const isCapture = this.isCapture(e.currentTarget);\n const currentItem = e.currentTarget.getAttribute('currentItem');\n\n if (!isCapture) e.stopPropagation();\n if (show && currentItem === 'true') {\n if (!dataEventOff) this.hideTooltip(e);\n } else {\n e.currentTarget.setAttribute('currentItem', 'true');\n setUntargetItems(e.currentTarget, this.getTargetArray(id));\n this.showTooltip(e);\n }\n};\n\nconst setUntargetItems = function(currentTarget, targetArray) {\n for (let i = 0; i < targetArray.length; i++) {\n if (currentTarget !== targetArray[i]) {\n targetArray[i].setAttribute('currentItem', 'false');\n } else {\n targetArray[i].setAttribute('currentItem', 'true');\n }\n }\n};\n\nconst customListeners = {\n id: '9b69f92e-d3fe-498b-b1b4-c5e63a51b0cf',\n set(target, event, listener) {\n if (this.id in target) {\n const map = target[this.id];\n map[event] = listener;\n } else {\n // this is workaround for WeakMap, which is not supported in older browsers, such as IE\n Object.defineProperty(target, this.id, {\n configurable: true,\n value: { [event]: listener }\n });\n }\n },\n get(target, event) {\n const map = target[this.id];\n if (map !== undefined) {\n return map[event];\n }\n }\n};\n\nexport default function(target) {\n target.prototype.isCustomEvent = function(ele) {\n const { event } = this.state;\n return event || !!ele.getAttribute('data-event');\n };\n\n /* Bind listener for custom event */\n target.prototype.customBindListener = function(ele) {\n const { event, eventOff } = this.state;\n const dataEvent = ele.getAttribute('data-event') || event;\n const dataEventOff = ele.getAttribute('data-event-off') || eventOff;\n\n dataEvent.split(' ').forEach(event => {\n ele.removeEventListener(event, customListeners.get(ele, event));\n const customListener = checkStatus.bind(this, dataEventOff);\n customListeners.set(ele, event, customListener);\n ele.addEventListener(event, customListener, false);\n });\n if (dataEventOff) {\n dataEventOff.split(' ').forEach(event => {\n ele.removeEventListener(event, this.hideTooltip);\n ele.addEventListener(event, this.hideTooltip, false);\n });\n }\n };\n\n /* Unbind listener for custom event */\n target.prototype.customUnbindListener = function(ele) {\n const { event, eventOff } = this.state;\n const dataEvent = event || ele.getAttribute('data-event');\n const dataEventOff = eventOff || ele.getAttribute('data-event-off');\n\n ele.removeEventListener(dataEvent, customListeners.get(ele, event));\n if (dataEventOff) ele.removeEventListener(dataEventOff, this.hideTooltip);\n };\n}\n","/**\n * Util method to get effect\n */\nimport { checkStatus } from './customEvent';\n\nconst makeProxy = e => {\n const proxy = {};\n for (const key in e) {\n if (typeof e[key] === 'function') {\n proxy[key] = e[key].bind(e);\n } else {\n proxy[key] = e[key];\n }\n }\n return proxy;\n};\n\nconst bodyListener = function(callback, options, e) {\n const { respectEffect = false, customEvent = false } = options;\n const { id } = this.props;\n\n const tip = e.target.getAttribute('data-tip') || null;\n const forId = e.target.getAttribute('data-for') || null;\n\n const target = e.target;\n if (this.isCustomEvent(target) && !customEvent) {\n return;\n }\n\n const isTargetBelongsToTooltip =\n (id == null && forId == null) || forId === id;\n\n if (\n tip != null &&\n (!respectEffect || this.getEffect(target) === 'float') &&\n isTargetBelongsToTooltip\n ) {\n const proxy = makeProxy(e);\n proxy.currentTarget = target;\n callback(proxy);\n }\n};\n\nconst findCustomEvents = (targetArray, dataAttribute) => {\n const events = {};\n targetArray.forEach(target => {\n const event = target.getAttribute(dataAttribute);\n if (event) event.split(' ').forEach(event => (events[event] = true));\n });\n\n return events;\n};\n\nconst getBody = () => document.getElementsByTagName('body')[0];\n\nexport default function(target) {\n target.prototype.isBodyMode = function() {\n return !!this.props.bodyMode;\n };\n\n target.prototype.bindBodyListener = function(targetArray) {\n const {\n event,\n eventOff,\n possibleCustomEvents,\n possibleCustomEventsOff\n } = this.state;\n const body = getBody();\n\n const customEvents = findCustomEvents(targetArray, 'data-event');\n const customEventsOff = findCustomEvents(targetArray, 'data-event-off');\n\n if (event != null) customEvents[event] = true;\n if (eventOff != null) customEventsOff[eventOff] = true;\n possibleCustomEvents\n .split(' ')\n .forEach(event => (customEvents[event] = true));\n possibleCustomEventsOff\n .split(' ')\n .forEach(event => (customEventsOff[event] = true));\n\n this.unbindBodyListener(body);\n\n const listeners = (this.bodyModeListeners = {});\n if (event == null) {\n listeners.mouseover = bodyListener.bind(this, this.showTooltip, {});\n listeners.mousemove = bodyListener.bind(this, this.updateTooltip, {\n respectEffect: true\n });\n listeners.mouseout = bodyListener.bind(this, this.hideTooltip, {});\n }\n\n for (const event in customEvents) {\n listeners[event] = bodyListener.bind(\n this,\n e => {\n const targetEventOff =\n e.currentTarget.getAttribute('data-event-off') || eventOff;\n checkStatus.call(this, targetEventOff, e);\n },\n { customEvent: true }\n );\n }\n for (const event in customEventsOff) {\n listeners[event] = bodyListener.bind(this, this.hideTooltip, {\n customEvent: true\n });\n }\n for (const event in listeners) {\n body.addEventListener(event, listeners[event]);\n }\n };\n\n target.prototype.unbindBodyListener = function(body) {\n body = body || getBody();\n\n const listeners = this.bodyModeListeners;\n for (const event in listeners) {\n body.removeEventListener(event, listeners[event]);\n }\n };\n}\n","/**\n * Calculate the position of tooltip\n *\n * @params\n * - `e` {Event} the event of current mouse\n * - `target` {Element} the currentTarget of the event\n * - `node` {DOM} the react-tooltip object\n * - `place` {String} top / right / bottom / left\n * - `effect` {String} float / solid\n * - `offset` {Object} the offset to default position\n *\n * @return {Object}\n * - `isNewState` {Bool} required\n * - `newState` {Object}\n * - `position` {Object} {left: {Number}, top: {Number}}\n */\nexport default function(e, target, node, place, desiredPlace, effect, offset) {\n const { width: tipWidth, height: tipHeight } = getDimensions(node);\n\n const { width: targetWidth, height: targetHeight } = getDimensions(target);\n\n const { mouseX, mouseY } = getCurrentOffset(e, target, effect);\n const defaultOffset = getDefaultPosition(\n effect,\n targetWidth,\n targetHeight,\n tipWidth,\n tipHeight\n );\n const { extraOffsetX, extraOffsetY } = calculateOffset(offset);\n\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n\n const { parentTop, parentLeft } = getParent(node);\n\n // Get the edge offset of the tooltip\n const getTipOffsetLeft = place => {\n const offsetX = defaultOffset[place].l;\n return mouseX + offsetX + extraOffsetX;\n };\n const getTipOffsetRight = place => {\n const offsetX = defaultOffset[place].r;\n return mouseX + offsetX + extraOffsetX;\n };\n const getTipOffsetTop = place => {\n const offsetY = defaultOffset[place].t;\n return mouseY + offsetY + extraOffsetY;\n };\n const getTipOffsetBottom = place => {\n const offsetY = defaultOffset[place].b;\n return mouseY + offsetY + extraOffsetY;\n };\n\n //\n // Functions to test whether the tooltip's sides are inside\n // the client window for a given orientation p\n //\n // _____________\n // | | <-- Right side\n // | p = 'left' |\\\n // | |/ |\\\n // |_____________| |_\\ <-- Mouse\n // / \\ |\n // |\n // |\n // Bottom side\n //\n const outsideLeft = p => getTipOffsetLeft(p) < 0;\n const outsideRight = p => getTipOffsetRight(p) > windowWidth;\n const outsideTop = p => getTipOffsetTop(p) < 0;\n const outsideBottom = p => getTipOffsetBottom(p) > windowHeight;\n\n // Check whether the tooltip with orientation p is completely inside the client window\n const outside = p =>\n outsideLeft(p) || outsideRight(p) || outsideTop(p) || outsideBottom(p);\n const inside = p => !outside(p);\n\n const placesList = ['top', 'bottom', 'left', 'right'];\n const insideList = [];\n for (let i = 0; i < 4; i++) {\n const p = placesList[i];\n if (inside(p)) {\n insideList.push(p);\n }\n }\n\n let isNewState = false;\n let newPlace;\n const shouldUpdatePlace = desiredPlace !== place;\n if (inside(desiredPlace) && shouldUpdatePlace) {\n isNewState = true;\n newPlace = desiredPlace;\n } else if (insideList.length > 0 && outside(desiredPlace) && outside(place)) {\n isNewState = true;\n newPlace = insideList[0];\n }\n\n if (isNewState) {\n return {\n isNewState: true,\n newState: { place: newPlace }\n };\n }\n\n return {\n isNewState: false,\n position: {\n left: parseInt(getTipOffsetLeft(place) - parentLeft, 10),\n top: parseInt(getTipOffsetTop(place) - parentTop, 10)\n }\n };\n}\n\nconst getDimensions = node => {\n const { height, width } = node.getBoundingClientRect();\n return {\n height: parseInt(height, 10),\n width: parseInt(width, 10)\n };\n};\n\n// Get current mouse offset\nconst getCurrentOffset = (e, currentTarget, effect) => {\n const boundingClientRect = currentTarget.getBoundingClientRect();\n const targetTop = boundingClientRect.top;\n const targetLeft = boundingClientRect.left;\n const { width: targetWidth, height: targetHeight } = getDimensions(\n currentTarget\n );\n\n if (effect === 'float') {\n return {\n mouseX: e.clientX,\n mouseY: e.clientY\n };\n }\n return {\n mouseX: targetLeft + targetWidth / 2,\n mouseY: targetTop + targetHeight / 2\n };\n};\n\n// List all possibility of tooltip final offset\n// This is useful in judging if it is necessary for tooltip to switch position when out of window\nconst getDefaultPosition = (\n effect,\n targetWidth,\n targetHeight,\n tipWidth,\n tipHeight\n) => {\n let top;\n let right;\n let bottom;\n let left;\n const disToMouse = 3;\n const triangleHeight = 2;\n const cursorHeight = 12; // Optimize for float bottom only, cause the cursor will hide the tooltip\n\n if (effect === 'float') {\n top = {\n l: -(tipWidth / 2),\n r: tipWidth / 2,\n t: -(tipHeight + disToMouse + triangleHeight),\n b: -disToMouse\n };\n bottom = {\n l: -(tipWidth / 2),\n r: tipWidth / 2,\n t: disToMouse + cursorHeight,\n b: tipHeight + disToMouse + triangleHeight + cursorHeight\n };\n left = {\n l: -(tipWidth + disToMouse + triangleHeight),\n r: -disToMouse,\n t: -(tipHeight / 2),\n b: tipHeight / 2\n };\n right = {\n l: disToMouse,\n r: tipWidth + disToMouse + triangleHeight,\n t: -(tipHeight / 2),\n b: tipHeight / 2\n };\n } else if (effect === 'solid') {\n top = {\n l: -(tipWidth / 2),\n r: tipWidth / 2,\n t: -(targetHeight / 2 + tipHeight + triangleHeight),\n b: -(targetHeight / 2)\n };\n bottom = {\n l: -(tipWidth / 2),\n r: tipWidth / 2,\n t: targetHeight / 2,\n b: targetHeight / 2 + tipHeight + triangleHeight\n };\n left = {\n l: -(tipWidth + targetWidth / 2 + triangleHeight),\n r: -(targetWidth / 2),\n t: -(tipHeight / 2),\n b: tipHeight / 2\n };\n right = {\n l: targetWidth / 2,\n r: tipWidth + targetWidth / 2 + triangleHeight,\n t: -(tipHeight / 2),\n b: tipHeight / 2\n };\n }\n\n return { top, bottom, left, right };\n};\n\n// Consider additional offset into position calculation\nconst calculateOffset = offset => {\n let extraOffsetX = 0;\n let extraOffsetY = 0;\n\n if (Object.prototype.toString.apply(offset) === '[object String]') {\n offset = JSON.parse(offset.toString().replace(/'/g, '\"'));\n }\n for (const key in offset) {\n if (key === 'top') {\n extraOffsetY -= parseInt(offset[key], 10);\n } else if (key === 'bottom') {\n extraOffsetY += parseInt(offset[key], 10);\n } else if (key === 'left') {\n extraOffsetX -= parseInt(offset[key], 10);\n } else if (key === 'right') {\n extraOffsetX += parseInt(offset[key], 10);\n }\n }\n\n return { extraOffsetX, extraOffsetY };\n};\n\n// Get the offset of the parent elements\nconst getParent = currentTarget => {\n let currentParent = currentTarget;\n while (currentParent) {\n const computedStyle = window.getComputedStyle(currentParent);\n // transform and will-change: transform change the containing block\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_Block\n if (\n computedStyle.getPropertyValue('transform') !== 'none' ||\n computedStyle.getPropertyValue('will-change') === 'transform'\n )\n break;\n currentParent = currentParent.parentElement;\n }\n\n const parentTop =\n (currentParent && currentParent.getBoundingClientRect().top) || 0;\n const parentLeft =\n (currentParent && currentParent.getBoundingClientRect().left) || 0;\n\n return { parentTop, parentLeft };\n};\n","/**\n * To get the tooltip content\n * it may comes from data-tip or this.props.children\n * it should support multiline\n *\n * @params\n * - `tip` {String} value of data-tip\n * - `children` {ReactElement} this.props.children\n * - `multiline` {Any} could be Bool(true/false) or String('true'/'false')\n *\n * @return\n * - String or react component\n */\nimport React from 'react';\n\nexport default function(tip, children, getContent, multiline) {\n if (children) return children;\n if (getContent !== undefined && getContent !== null) return getContent; // getContent can be 0, '', etc.\n if (getContent === null) return null; // Tip not exist and children is null or undefined\n\n const regexp = //;\n if (!multiline || multiline === 'false' || !regexp.test(tip)) {\n // No trim(), so that user can keep their input\n return tip;\n }\n\n // Multiline tooltip content\n return tip.split(regexp).map((d, i) => {\n return (\n \n {d}\n \n );\n });\n}\n","/**\n * Support aria- and role in ReactTooltip\n *\n * @params props {Object}\n * @return {Object}\n */\nexport function parseAria(props) {\n const ariaObj = {};\n Object.keys(props)\n .filter(prop => {\n // aria-xxx and role is acceptable\n return /(^aria-\\w+$|^role$)/.test(prop);\n })\n .forEach(prop => {\n ariaObj[prop] = props[prop];\n });\n\n return ariaObj;\n}\n","/**\n * Convert nodelist to array\n * @see https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/core/createArrayFromMixed.js#L24\n * NodeLists are functions in Safari\n */\n\nexport default function(nodeList) {\n const length = nodeList.length;\n if (nodeList.hasOwnProperty) {\n return Array.prototype.slice.call(nodeList);\n }\n return new Array(length).fill().map(index => nodeList[index]);\n}\n","/**\n * Default pop-up style values (text color, background color).\n */\nconst defaultColors = {\n dark: {\n text: '#fff',\n background: '#222',\n border: 'transparent',\n arrow: '#222'\n },\n success: {\n text: '#fff',\n background: '#8DC572',\n border: 'transparent',\n arrow: '#8DC572'\n },\n warning: {\n text: '#fff',\n background: '#F0AD4E',\n border: 'transparent',\n arrow: '#F0AD4E'\n },\n error: {\n text: '#fff',\n background: '#BE6464',\n border: 'transparent',\n arrow: '#BE6464'\n },\n info: {\n text: '#fff',\n background: '#337AB7',\n border: 'transparent',\n arrow: '#337AB7'\n },\n light: {\n text: '#222',\n background: '#fff',\n border: 'transparent',\n arrow: '#fff'\n }\n};\n\nexport function getDefaultPopupColors(type) {\n return defaultColors[type] ? { ...defaultColors[type] } : undefined;\n}\n","import { getDefaultPopupColors } from './defaultStyles';\n\n/**\n * Generates the specific tooltip style for use on render.\n */\nexport function generateTooltipStyle(uuid, customColors, type, hasBorder) {\n return generateStyle(uuid, getPopupColors(customColors, type, hasBorder));\n}\n\n/**\n * Generates the tooltip style rules based on the element-specified \"data-type\" property.\n */\nfunction generateStyle(uuid, colors) {\n const textColor = colors.text;\n const backgroundColor = colors.background;\n const borderColor = colors.border;\n const arrowColor = colors.arrow;\n\n return `\n \t.${uuid} {\n\t color: ${textColor};\n\t background: ${backgroundColor};\n\t border: 1px solid ${borderColor};\n \t}\n\n \t.${uuid}.place-top {\n margin-top: -10px;\n }\n .${uuid}.place-top::before {\n border-top: 8px solid ${borderColor};\n }\n .${uuid}.place-top::after {\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n bottom: -6px;\n left: 50%;\n margin-left: -8px;\n border-top-color: ${arrowColor};\n border-top-style: solid;\n border-top-width: 6px;\n }\n\n .${uuid}.place-bottom {\n margin-top: 10px;\n }\n .${uuid}.place-bottom::before {\n border-bottom: 8px solid ${borderColor};\n }\n .${uuid}.place-bottom::after {\n border-left: 8px solid transparent;\n border-right: 8px solid transparent;\n top: -6px;\n left: 50%;\n margin-left: -8px;\n border-bottom-color: ${arrowColor};\n border-bottom-style: solid;\n border-bottom-width: 6px;\n }\n\n .${uuid}.place-left {\n margin-left: -10px;\n }\n .${uuid}.place-left::before {\n border-left: 8px solid ${borderColor};\n }\n .${uuid}.place-left::after {\n border-top: 5px solid transparent;\n border-bottom: 5px solid transparent;\n right: -6px;\n top: 50%;\n margin-top: -4px;\n border-left-color: ${arrowColor};\n border-left-style: solid;\n border-left-width: 6px;\n }\n\n .${uuid}.place-right {\n margin-left: 10px;\n }\n .${uuid}.place-right::before {\n border-right: 8px solid ${borderColor};\n }\n .${uuid}.place-right::after {\n border-top: 5px solid transparent;\n border-bottom: 5px solid transparent;\n left: -6px;\n top: 50%;\n margin-top: -4px;\n border-right-color: ${arrowColor};\n border-right-style: solid;\n border-right-width: 6px;\n }\n `;\n}\n\nfunction getPopupColors(customColors, type, hasBorder) {\n const textColor = customColors.text;\n const backgroundColor = customColors.background;\n const borderColor = customColors.border;\n const arrowColor = customColors.arrow\n ? customColors.arrow\n : customColors.background;\n\n const colors = getDefaultPopupColors(type);\n\n if (textColor) {\n colors.text = textColor;\n }\n\n if (backgroundColor) {\n colors.background = backgroundColor;\n }\n\n if (hasBorder) {\n if (borderColor) {\n colors.border = borderColor;\n } else {\n colors.border = type === 'light' ? 'black' : 'white';\n }\n }\n\n if (arrowColor) {\n colors.arrow = arrowColor;\n }\n\n return colors;\n}\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var toObject = require('../internals/to-object');\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function hasOwn(it, key) {\n return hasOwnProperty.call(toObject(it), key);\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.12.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] < 4 ? 1 : match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(arg) {\n return classof(arg) == 'Array';\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject -- old IE */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n return !String(Symbol()) ||\n // Chrome 38 Symbol has incorrect toString conversion\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n if (NATIVE_SYMBOL && has(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n }\n } return WellKnownSymbolsStore[name];\n};\n","var isObject = require('../internals/is-object');\nvar isArray = require('../internals/is-array');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return new (C === undefined ? Array : C)(length === 0 ? 0 : length);\n};\n","var bind = require('../internals/function-bind-context');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = [].push;\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterOut }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_OUT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_OUT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push.call(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push.call(target, value); // filterOut\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterOut` method\n // https://github.com/tc39/proposal-array-filtering\n filterOut: createMethod(7)\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $find = require('../internals/array-iteration').find;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\nvar FIND = 'find';\nvar SKIPS_HOLES = true;\n\n// Shouldn't skip holes\nif (FIND in []) Array(1)[FIND](function () { SKIPS_HOLES = false; });\n\n// `Array.prototype.find` method\n// https://tc39.es/ecma262/#sec-array.prototype.find\n$({ target: 'Array', proto: true, forced: SKIPS_HOLES }, {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables(FIND);\n","/**\n * Tracking target removing from DOM.\n * It's necessary to hide tooltip when it's target disappears.\n * Otherwise, the tooltip would be shown forever until another target\n * is triggered.\n *\n * If MutationObserver is not available, this feature just doesn't work.\n */\n\n// https://hacks.mozilla.org/2012/05/dom-mutationobserver-reacting-to-dom-changes-without-killing-browser-performance/\nconst getMutationObserverClass = () => {\n return (\n window.MutationObserver ||\n window.WebKitMutationObserver ||\n window.MozMutationObserver\n );\n};\n\nexport default function(target) {\n target.prototype.bindRemovalTracker = function() {\n const MutationObserver = getMutationObserverClass();\n if (MutationObserver == null) return;\n\n const observer = new MutationObserver(mutations => {\n for (let m1 = 0; m1 < mutations.length; m1++) {\n const mutation = mutations[m1];\n for (let m2 = 0; m2 < mutation.removedNodes.length; m2++) {\n const element = mutation.removedNodes[m2];\n if (element === this.state.currentTarget) {\n this.hideTooltip();\n return;\n }\n }\n }\n });\n\n observer.observe(window.document, { childList: true, subtree: true });\n\n this.removalTracker = observer;\n };\n\n target.prototype.unbindRemovalTracker = function() {\n if (this.removalTracker) {\n this.removalTracker.disconnect();\n this.removalTracker = null;\n }\n };\n}\n","/* eslint-disable no-unused-vars, dot-notation */\nimport React from 'react';\nimport PropTypes from 'prop-types';\n\n/* Decorators */\nimport staticMethods from './decorators/staticMethods';\nimport windowListener from './decorators/windowListener';\nimport customEvent from './decorators/customEvent';\nimport isCapture from './decorators/isCapture';\nimport getEffect from './decorators/getEffect';\nimport bodyMode from './decorators/bodyMode';\nimport trackRemoval from './decorators/trackRemoval';\n\n/* Utils */\nimport getPosition from './utils/getPosition';\nimport getTipContent from './utils/getTipContent';\nimport { parseAria } from './utils/aria';\nimport nodeListToArray from './utils/nodeListToArray';\nimport { generateUUID } from './utils/uuid';\n\n/* CSS */\nimport baseCss from './index.scss';\nimport { generateTooltipStyle } from './decorators/styler';\n\n/* Polyfill */\nimport 'core-js/modules/es.array.find';\n\n@staticMethods\n@windowListener\n@customEvent\n@isCapture\n@getEffect\n@bodyMode\n@trackRemoval\nclass ReactTooltip extends React.Component {\n static get propTypes() {\n return {\n uuid: PropTypes.string,\n children: PropTypes.any,\n place: PropTypes.string,\n type: PropTypes.string,\n effect: PropTypes.string,\n offset: PropTypes.object,\n multiline: PropTypes.bool,\n border: PropTypes.bool,\n textColor: PropTypes.string,\n backgroundColor: PropTypes.string,\n borderColor: PropTypes.string,\n arrowColor: PropTypes.string,\n insecure: PropTypes.bool,\n class: PropTypes.string,\n className: PropTypes.string,\n id: PropTypes.string,\n html: PropTypes.bool,\n delayHide: PropTypes.number,\n delayUpdate: PropTypes.number,\n delayShow: PropTypes.number,\n event: PropTypes.string,\n eventOff: PropTypes.string,\n isCapture: PropTypes.bool,\n globalEventOff: PropTypes.string,\n getContent: PropTypes.any,\n afterShow: PropTypes.func,\n afterHide: PropTypes.func,\n overridePosition: PropTypes.func,\n disable: PropTypes.bool,\n scrollHide: PropTypes.bool,\n resizeHide: PropTypes.bool,\n wrapper: PropTypes.string,\n bodyMode: PropTypes.bool,\n possibleCustomEvents: PropTypes.string,\n possibleCustomEventsOff: PropTypes.string,\n clickable: PropTypes.bool\n };\n }\n\n static defaultProps = {\n insecure: true,\n resizeHide: true,\n wrapper: 'div',\n clickable: false\n };\n\n static supportedWrappers = ['div', 'span'];\n\n static displayName = 'ReactTooltip';\n\n constructor(props) {\n super(props);\n\n this.state = {\n uuid: props.uuid || generateUUID(),\n place: props.place || 'top', // Direction of tooltip\n desiredPlace: props.place || 'top',\n type: 'dark', // Color theme of tooltip\n effect: 'float', // float or fixed\n show: false,\n border: false,\n customColors: {},\n offset: {},\n extraClass: '',\n html: false,\n delayHide: 0,\n delayShow: 0,\n event: props.event || null,\n eventOff: props.eventOff || null,\n currentEvent: null, // Current mouse event\n currentTarget: null, // Current target of mouse event\n ariaProps: parseAria(props), // aria- and role attributes\n isEmptyTip: false,\n disable: false,\n possibleCustomEvents: props.possibleCustomEvents || '',\n possibleCustomEventsOff: props.possibleCustomEventsOff || '',\n originTooltip: null,\n isMultiline: false\n };\n\n this.bind([\n 'showTooltip',\n 'updateTooltip',\n 'hideTooltip',\n 'hideTooltipOnScroll',\n 'getTooltipContent',\n 'globalRebuild',\n 'globalShow',\n 'globalHide',\n 'onWindowResize',\n 'mouseOnToolTip'\n ]);\n\n this.mount = true;\n this.delayShowLoop = null;\n this.delayHideLoop = null;\n this.delayReshow = null;\n this.intervalUpdateContent = null;\n }\n\n /**\n * For unify the bind and unbind listener\n */\n bind(methodArray) {\n methodArray.forEach(method => {\n this[method] = this[method].bind(this);\n });\n }\n\n componentDidMount() {\n const { insecure, resizeHide } = this.props;\n\n this.bindListener(); // Bind listener for tooltip\n this.bindWindowEvents(resizeHide); // Bind global event for static method\n this.injectStyles(); // Inject styles for each DOM root having tooltip.\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const { ariaProps } = prevState;\n const newAriaProps = parseAria(nextProps);\n const isChanged = Object.keys(newAriaProps).some(props => {\n return newAriaProps[props] !== ariaProps[props];\n });\n if (!isChanged) {\n return null;\n }\n return {\n ...prevState,\n ariaProps: newAriaProps\n };\n }\n\n componentWillUnmount() {\n this.mount = false;\n\n this.clearTimer();\n\n this.unbindListener();\n this.removeScrollListener(this.state.currentTarget);\n this.unbindWindowEvents();\n }\n\n /* Look for the closest DOM root having tooltip and inject styles. */\n injectStyles() {\n const { tooltipRef } = this;\n if (!tooltipRef) {\n return;\n }\n\n let parentNode = tooltipRef.parentNode;\n while (parentNode.parentNode) {\n parentNode = parentNode.parentNode;\n }\n\n let domRoot;\n\n switch (parentNode.constructor.name) {\n case 'Document':\n case 'HTMLDocument':\n case undefined:\n domRoot = parentNode.head;\n break;\n case 'ShadowRoot':\n default:\n domRoot = parentNode;\n break;\n }\n\n // Prevent styles duplication.\n if (!domRoot.querySelector('style[data-react-tooltip]')) {\n const style = document.createElement('style');\n style.textContent = baseCss;\n style.setAttribute('data-react-tooltip', 'true');\n\n domRoot.appendChild(style);\n }\n }\n\n /**\n * Return if the mouse is on the tooltip.\n * @returns {boolean} true - mouse is on the tooltip\n */\n mouseOnToolTip() {\n const { show } = this.state;\n\n if (show && this.tooltipRef) {\n /* old IE or Firefox work around */\n if (!this.tooltipRef.matches) {\n /* old IE work around */\n if (this.tooltipRef.msMatchesSelector) {\n this.tooltipRef.matches = this.tooltipRef.msMatchesSelector;\n } else {\n /* old Firefox work around */\n this.tooltipRef.matches = this.tooltipRef.mozMatchesSelector;\n }\n }\n return this.tooltipRef.matches(':hover');\n }\n return false;\n }\n\n /**\n * Pick out corresponded target elements\n */\n getTargetArray(id) {\n let targetArray = [];\n let selector;\n if (!id) {\n selector = '[data-tip]:not([data-for])';\n } else {\n const escaped = id.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"');\n selector = `[data-tip][data-for=\"${escaped}\"]`;\n }\n\n // Scan document for shadow DOM elements\n nodeListToArray(document.getElementsByTagName('*'))\n .filter(element => element.shadowRoot)\n .forEach(element => {\n targetArray = targetArray.concat(\n nodeListToArray(element.shadowRoot.querySelectorAll(selector))\n );\n });\n return targetArray.concat(\n nodeListToArray(document.querySelectorAll(selector))\n );\n }\n\n /**\n * Bind listener to the target elements\n * These listeners used to trigger showing or hiding the tooltip\n */\n bindListener() {\n const { id, globalEventOff, isCapture } = this.props;\n const targetArray = this.getTargetArray(id);\n\n targetArray.forEach(target => {\n if (target.getAttribute('currentItem') === null) {\n target.setAttribute('currentItem', 'false');\n }\n this.unbindBasicListener(target);\n if (this.isCustomEvent(target)) {\n this.customUnbindListener(target);\n }\n });\n\n if (this.isBodyMode()) {\n this.bindBodyListener(targetArray);\n } else {\n targetArray.forEach(target => {\n const isCaptureMode = this.isCapture(target);\n const effect = this.getEffect(target);\n if (this.isCustomEvent(target)) {\n this.customBindListener(target);\n return;\n }\n\n target.addEventListener('mouseenter', this.showTooltip, isCaptureMode);\n target.addEventListener('focus', this.showTooltip, isCaptureMode);\n if (effect === 'float') {\n target.addEventListener(\n 'mousemove',\n this.updateTooltip,\n isCaptureMode\n );\n }\n target.addEventListener('mouseleave', this.hideTooltip, isCaptureMode);\n target.addEventListener('blur', this.hideTooltip, isCaptureMode);\n });\n }\n\n // Global event to hide tooltip\n if (globalEventOff) {\n window.removeEventListener(globalEventOff, this.hideTooltip);\n window.addEventListener(globalEventOff, this.hideTooltip, isCapture);\n }\n\n // Track removal of targetArray elements from DOM\n this.bindRemovalTracker();\n }\n\n /**\n * Unbind listeners on target elements\n */\n unbindListener() {\n const { id, globalEventOff } = this.props;\n if (this.isBodyMode()) {\n this.unbindBodyListener();\n } else {\n const targetArray = this.getTargetArray(id);\n targetArray.forEach(target => {\n this.unbindBasicListener(target);\n if (this.isCustomEvent(target)) this.customUnbindListener(target);\n });\n }\n\n if (globalEventOff)\n window.removeEventListener(globalEventOff, this.hideTooltip);\n this.unbindRemovalTracker();\n }\n\n /**\n * Invoke this before bind listener and unmount the component\n * it is necessary to invoke this even when binding custom event\n * so that the tooltip can switch between custom and default listener\n */\n unbindBasicListener(target) {\n const isCaptureMode = this.isCapture(target);\n target.removeEventListener('mouseenter', this.showTooltip, isCaptureMode);\n target.removeEventListener('mousemove', this.updateTooltip, isCaptureMode);\n target.removeEventListener('mouseleave', this.hideTooltip, isCaptureMode);\n }\n\n getTooltipContent() {\n const { getContent, children } = this.props;\n\n // Generate tooltip content\n let content;\n if (getContent) {\n if (Array.isArray(getContent)) {\n content = getContent[0] && getContent[0](this.state.originTooltip);\n } else {\n content = getContent(this.state.originTooltip);\n }\n }\n\n return getTipContent(\n this.state.originTooltip,\n children,\n content,\n this.state.isMultiline\n );\n }\n\n isEmptyTip(placeholder) {\n return (\n (typeof placeholder === 'string' && placeholder === '') ||\n placeholder === null\n );\n }\n\n /**\n * When mouse enter, show the tooltip\n */\n showTooltip(e, isGlobalCall) {\n if (!this.tooltipRef) {\n return;\n }\n\n if (isGlobalCall) {\n // Don't trigger other elements belongs to other ReactTooltip\n const targetArray = this.getTargetArray(this.props.id);\n const isMyElement = targetArray.some(ele => ele === e.currentTarget);\n if (!isMyElement) return;\n }\n // Get the tooltip content\n // calculate in this phrase so that tip width height can be detected\n const { multiline, getContent } = this.props;\n const originTooltip = e.currentTarget.getAttribute('data-tip');\n const isMultiline =\n e.currentTarget.getAttribute('data-multiline') || multiline || false;\n\n // If it is focus event or called by ReactTooltip.show, switch to `solid` effect\n const switchToSolid = e instanceof window.FocusEvent || isGlobalCall;\n\n // if it needs to skip adding hide listener to scroll\n let scrollHide = true;\n if (e.currentTarget.getAttribute('data-scroll-hide')) {\n scrollHide = e.currentTarget.getAttribute('data-scroll-hide') === 'true';\n } else if (this.props.scrollHide != null) {\n scrollHide = this.props.scrollHide;\n }\n\n // adding aria-describedby to target to make tooltips read by screen readers\n if (e && e.currentTarget && e.currentTarget.setAttribute) {\n e.currentTarget.setAttribute('aria-describedby', this.state.uuid);\n }\n\n // Make sure the correct place is set\n const desiredPlace =\n e.currentTarget.getAttribute('data-place') || this.props.place || 'top';\n const effect =\n (switchToSolid && 'solid') || this.getEffect(e.currentTarget);\n const offset =\n e.currentTarget.getAttribute('data-offset') || this.props.offset || {};\n const result = getPosition(\n e,\n e.currentTarget,\n this.tooltipRef,\n desiredPlace,\n desiredPlace,\n effect,\n offset\n );\n if (result.position && this.props.overridePosition) {\n result.position = this.props.overridePosition(\n result.position,\n e,\n e.currentTarget,\n this.tooltipRef,\n desiredPlace,\n desiredPlace,\n effect,\n offset\n );\n }\n\n const place = result.isNewState ? result.newState.place : desiredPlace;\n\n // To prevent previously created timers from triggering\n this.clearTimer();\n\n const target = e.currentTarget;\n\n const reshowDelay = this.state.show\n ? target.getAttribute('data-delay-update') || this.props.delayUpdate\n : 0;\n\n const self = this;\n\n const updateState = function updateState() {\n self.setState(\n {\n originTooltip: originTooltip,\n isMultiline: isMultiline,\n desiredPlace: desiredPlace,\n place: place,\n type: target.getAttribute('data-type') || self.props.type || 'dark',\n customColors: {\n text:\n target.getAttribute('data-text-color') ||\n self.props.textColor ||\n null,\n background:\n target.getAttribute('data-background-color') ||\n self.props.backgroundColor ||\n null,\n border:\n target.getAttribute('data-border-color') ||\n self.props.borderColor ||\n null,\n arrow:\n target.getAttribute('data-arrow-color') ||\n self.props.arrowColor ||\n null\n },\n effect: effect,\n offset: offset,\n html:\n (target.getAttribute('data-html')\n ? target.getAttribute('data-html') === 'true'\n : self.props.html) || false,\n delayShow:\n target.getAttribute('data-delay-show') || self.props.delayShow || 0,\n delayHide:\n target.getAttribute('data-delay-hide') || self.props.delayHide || 0,\n delayUpdate:\n target.getAttribute('data-delay-update') ||\n self.props.delayUpdate ||\n 0,\n border:\n (target.getAttribute('data-border')\n ? target.getAttribute('data-border') === 'true'\n : self.props.border) || false,\n extraClass:\n target.getAttribute('data-class') ||\n self.props.class ||\n self.props.className ||\n '',\n disable:\n (target.getAttribute('data-tip-disable')\n ? target.getAttribute('data-tip-disable') === 'true'\n : self.props.disable) || false,\n currentTarget: target\n },\n () => {\n if (scrollHide) {\n self.addScrollListener(self.state.currentTarget);\n }\n\n self.updateTooltip(e);\n\n if (getContent && Array.isArray(getContent)) {\n self.intervalUpdateContent = setInterval(() => {\n if (self.mount) {\n const { getContent } = self.props;\n const placeholder = getTipContent(\n originTooltip,\n '',\n getContent[0](),\n isMultiline\n );\n const isEmptyTip = self.isEmptyTip(placeholder);\n self.setState({ isEmptyTip });\n self.updatePosition();\n }\n }, getContent[1]);\n }\n }\n );\n };\n\n // If there is no delay call immediately, don't allow events to get in first.\n if (reshowDelay) {\n this.delayReshow = setTimeout(updateState, reshowDelay);\n } else {\n updateState();\n }\n }\n\n /**\n * When mouse hover, update tool tip\n */\n updateTooltip(e) {\n const { delayShow, disable } = this.state;\n const { afterShow } = this.props;\n const placeholder = this.getTooltipContent();\n const eventTarget = e.currentTarget || e.target;\n\n // Check if the mouse is actually over the tooltip, if so don't hide the tooltip\n if (this.mouseOnToolTip()) {\n return;\n }\n\n // if the tooltip is empty, disable the tooltip\n if (this.isEmptyTip(placeholder) || disable) {\n return;\n }\n\n const delayTime = !this.state.show ? parseInt(delayShow, 10) : 0;\n\n const updateState = () => {\n if (\n (Array.isArray(placeholder) && placeholder.length > 0) ||\n placeholder\n ) {\n const isInvisible = !this.state.show;\n this.setState(\n {\n currentEvent: e,\n currentTarget: eventTarget,\n show: true\n },\n () => {\n this.updatePosition();\n if (isInvisible && afterShow) {\n afterShow(e);\n }\n }\n );\n }\n };\n\n clearTimeout(this.delayShowLoop);\n if (delayTime) {\n this.delayShowLoop = setTimeout(updateState, delayTime);\n } else {\n updateState();\n }\n }\n\n /*\n * If we're mousing over the tooltip remove it when we leave.\n */\n listenForTooltipExit() {\n const { show } = this.state;\n\n if (show && this.tooltipRef) {\n this.tooltipRef.addEventListener('mouseleave', this.hideTooltip);\n }\n }\n\n removeListenerForTooltipExit() {\n const { show } = this.state;\n\n if (show && this.tooltipRef) {\n this.tooltipRef.removeEventListener('mouseleave', this.hideTooltip);\n }\n }\n\n /**\n * When mouse leave, hide tooltip\n */\n hideTooltip(e, hasTarget, options = { isScroll: false }) {\n const { disable } = this.state;\n const { isScroll } = options;\n const delayHide = isScroll ? 0 : this.state.delayHide;\n const { afterHide } = this.props;\n const placeholder = this.getTooltipContent();\n if (!this.mount) return;\n if (this.isEmptyTip(placeholder) || disable) return; // if the tooltip is empty, disable the tooltip\n if (hasTarget) {\n // Don't trigger other elements belongs to other ReactTooltip\n const targetArray = this.getTargetArray(this.props.id);\n const isMyElement = targetArray.some(ele => ele === e.currentTarget);\n if (!isMyElement || !this.state.show) return;\n }\n\n // clean up aria-describedby when hiding tooltip\n if (e && e.currentTarget && e.currentTarget.removeAttribute) {\n e.currentTarget.removeAttribute('aria-describedby');\n }\n\n const resetState = () => {\n const isVisible = this.state.show;\n // Check if the mouse is actually over the tooltip, if so don't hide the tooltip\n if (this.mouseOnToolTip()) {\n this.listenForTooltipExit();\n return;\n }\n\n this.removeListenerForTooltipExit();\n\n this.setState({ show: false }, () => {\n this.removeScrollListener(this.state.currentTarget);\n if (isVisible && afterHide) {\n afterHide(e);\n }\n });\n };\n\n this.clearTimer();\n if (delayHide) {\n this.delayHideLoop = setTimeout(resetState, parseInt(delayHide, 10));\n } else {\n resetState();\n }\n }\n\n /**\n * When scroll, hide tooltip\n */\n hideTooltipOnScroll(event, hasTarget) {\n this.hideTooltip(event, hasTarget, { isScroll: true });\n }\n\n /**\n * Add scroll event listener when tooltip show\n * automatically hide the tooltip when scrolling\n */\n addScrollListener(currentTarget) {\n const isCaptureMode = this.isCapture(currentTarget);\n window.addEventListener('scroll', this.hideTooltipOnScroll, isCaptureMode);\n }\n\n removeScrollListener(currentTarget) {\n const isCaptureMode = this.isCapture(currentTarget);\n window.removeEventListener(\n 'scroll',\n this.hideTooltipOnScroll,\n isCaptureMode\n );\n }\n\n // Calculation the position\n updatePosition() {\n const {\n currentEvent,\n currentTarget,\n place,\n desiredPlace,\n effect,\n offset\n } = this.state;\n const node = this.tooltipRef;\n const result = getPosition(\n currentEvent,\n currentTarget,\n node,\n place,\n desiredPlace,\n effect,\n offset\n );\n if (result.position && this.props.overridePosition) {\n result.position = this.props.overridePosition(\n result.position,\n currentEvent,\n currentTarget,\n node,\n place,\n desiredPlace,\n effect,\n offset\n );\n }\n\n if (result.isNewState) {\n // Switch to reverse placement\n return this.setState(result.newState, () => {\n this.updatePosition();\n });\n }\n\n // Set tooltip position\n node.style.left = result.position.left + 'px';\n node.style.top = result.position.top + 'px';\n }\n\n /**\n * CLear all kinds of timeout of interval\n */\n clearTimer() {\n clearTimeout(this.delayShowLoop);\n clearTimeout(this.delayHideLoop);\n clearTimeout(this.delayReshow);\n clearInterval(this.intervalUpdateContent);\n }\n\n hasCustomColors() {\n return Boolean(\n Object.keys(this.state.customColors).find(\n color => color !== 'border' && this.state.customColors[color]\n ) ||\n (this.state.border && this.state.customColors['border'])\n );\n }\n\n render() {\n const { extraClass, html, ariaProps, disable, uuid } = this.state;\n const content = this.getTooltipContent();\n const isEmptyTip = this.isEmptyTip(content);\n const style = generateTooltipStyle(\n this.state.uuid,\n this.state.customColors,\n this.state.type,\n this.state.border\n );\n\n const tooltipClass =\n '__react_component_tooltip' +\n ` ${this.state.uuid}` +\n (this.state.show && !disable && !isEmptyTip ? ' show' : '') +\n (this.state.border ? ' border' : '') +\n ` place-${this.state.place}` + // top, bottom, left, right\n ` type-${this.hasCustomColors() ? 'custom' : this.state.type}` + // dark, success, warning, error, info, light, custom\n (this.props.delayUpdate ? ' allow_hover' : '') +\n (this.props.clickable ? ' allow_click' : '');\n\n let Wrapper = this.props.wrapper;\n\n if (ReactTooltip.supportedWrappers.indexOf(Wrapper) < 0) {\n Wrapper = ReactTooltip.defaultProps.wrapper;\n }\n\n const wrapperClassName = [tooltipClass, extraClass]\n .filter(Boolean)\n .join(' ');\n\n if (html) {\n const htmlContent = `${content}\\n`;\n\n return (\n (this.tooltipRef = ref)}\n {...ariaProps}\n data-id=\"tooltip\"\n dangerouslySetInnerHTML={{ __html: htmlContent }}\n />\n );\n } else {\n return (\n (this.tooltipRef = ref)}\n data-id=\"tooltip\"\n >\n \n {content}\n \n );\n }\n }\n}\n\nexport default ReactTooltip;\n","/**\n * Events that should be bound to the window\n */\nimport CONSTANT from '../constant';\n\nexport default function(target) {\n target.prototype.bindWindowEvents = function(resizeHide) {\n // ReactTooltip.hide\n window.removeEventListener(CONSTANT.GLOBAL.HIDE, this.globalHide);\n window.addEventListener(CONSTANT.GLOBAL.HIDE, this.globalHide, false);\n\n // ReactTooltip.rebuild\n window.removeEventListener(CONSTANT.GLOBAL.REBUILD, this.globalRebuild);\n window.addEventListener(CONSTANT.GLOBAL.REBUILD, this.globalRebuild, false);\n\n // ReactTooltip.show\n window.removeEventListener(CONSTANT.GLOBAL.SHOW, this.globalShow);\n window.addEventListener(CONSTANT.GLOBAL.SHOW, this.globalShow, false);\n\n // Resize\n if (resizeHide) {\n window.removeEventListener('resize', this.onWindowResize);\n window.addEventListener('resize', this.onWindowResize, false);\n }\n };\n\n target.prototype.unbindWindowEvents = function() {\n window.removeEventListener(CONSTANT.GLOBAL.HIDE, this.globalHide);\n window.removeEventListener(CONSTANT.GLOBAL.REBUILD, this.globalRebuild);\n window.removeEventListener(CONSTANT.GLOBAL.SHOW, this.globalShow);\n window.removeEventListener('resize', this.onWindowResize);\n };\n\n /**\n * invoked by resize event of window\n */\n target.prototype.onWindowResize = function() {\n if (!this.mount) return;\n this.hideTooltip();\n };\n}\n","/**\n * Util method to judge if it should follow capture model\n */\n\nexport default function(target) {\n target.prototype.isCapture = function(currentTarget) {\n return (\n (currentTarget &&\n currentTarget.getAttribute('data-iscapture') === 'true') ||\n this.props.isCapture ||\n false\n );\n };\n}\n","/**\n * Util method to get effect\n */\n\nexport default function(target) {\n target.prototype.getEffect = function(currentTarget) {\n const dataEffect = currentTarget.getAttribute('data-effect');\n return dataEffect || this.props.effect || 'float';\n };\n}\n","import { v4 as uuid } from 'uuid';\n\nexport function generateUUID() {\n return 't' + uuid();\n}\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","import _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\nimport _defineProperty from '@babel/runtime/helpers/esm/defineProperty';\nimport _typeof from '@babel/runtime/helpers/esm/typeof';\n\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nfunction defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\n\nfunction addQueryString(url, params) {\n if (params && _typeof(params) === 'object') {\n var queryString = '',\n e = encodeURIComponent; // Must encode data\n\n for (var paramName in params) {\n queryString += '&' + e(paramName) + '=' + e(params[paramName]);\n }\n\n if (!queryString) {\n return url;\n }\n\n url = url + (url.indexOf('?') !== -1 ? '&' : '?') + queryString.slice(1);\n }\n\n return url;\n} // https://gist.github.com/Xeoncross/7663273\n\n\nfunction ajax(url, options, callback, data, cache) {\n if (data && _typeof(data) === 'object') {\n if (!cache) {\n data['_t'] = new Date();\n } // URL encoded form data must be in querystring format\n\n\n data = addQueryString('', data).slice(1);\n }\n\n if (options.queryStringParams) {\n url = addQueryString(url, options.queryStringParams);\n }\n\n try {\n var x;\n\n if (XMLHttpRequest) {\n x = new XMLHttpRequest();\n } else {\n x = new ActiveXObject('MSXML2.XMLHTTP.3.0');\n }\n\n x.open(data ? 'POST' : 'GET', url, 1);\n\n if (!options.crossDomain) {\n x.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n }\n\n x.withCredentials = !!options.withCredentials;\n\n if (data) {\n x.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');\n }\n\n if (x.overrideMimeType) {\n x.overrideMimeType(\"application/json\");\n }\n\n var h = options.customHeaders;\n h = typeof h === 'function' ? h() : h;\n\n if (h) {\n for (var i in h) {\n x.setRequestHeader(i, h[i]);\n }\n }\n\n x.onreadystatechange = function () {\n x.readyState > 3 && callback && callback(x.responseText, x);\n };\n\n x.send(data);\n } catch (e) {\n console && console.log(e);\n }\n}\n\nfunction getDefaults() {\n return {\n loadPath: '/locales/{{lng}}/{{ns}}.json',\n addPath: '/locales/add/{{lng}}/{{ns}}',\n allowMultiLoading: false,\n parse: JSON.parse,\n parsePayload: function parsePayload(namespace, key, fallbackValue) {\n return _defineProperty({}, key, fallbackValue || '');\n },\n crossDomain: false,\n ajax: ajax\n };\n}\n\nvar Backend =\n/*#__PURE__*/\nfunction () {\n function Backend(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Backend);\n\n this.init(services, options);\n this.type = 'backend';\n }\n\n _createClass(Backend, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults());\n }\n }, {\n key: \"readMulti\",\n value: function readMulti(languages, namespaces, callback) {\n var loadPath = this.options.loadPath;\n\n if (typeof this.options.loadPath === 'function') {\n loadPath = this.options.loadPath(languages, namespaces);\n }\n\n var url = this.services.interpolator.interpolate(loadPath, {\n lng: languages.join('+'),\n ns: namespaces.join('+')\n });\n this.loadUrl(url, callback);\n }\n }, {\n key: \"read\",\n value: function read(language, namespace, callback) {\n var loadPath = this.options.loadPath;\n\n if (typeof this.options.loadPath === 'function') {\n loadPath = this.options.loadPath([language], [namespace]);\n }\n\n var url = this.services.interpolator.interpolate(loadPath, {\n lng: language,\n ns: namespace\n });\n this.loadUrl(url, callback);\n }\n }, {\n key: \"loadUrl\",\n value: function loadUrl(url, callback) {\n var _this = this;\n\n this.options.ajax(url, this.options, function (data, xhr) {\n if (xhr.status >= 500 && xhr.status < 600) return callback('failed loading ' + url, true\n /* retry */\n );\n if (xhr.status >= 400 && xhr.status < 500) return callback('failed loading ' + url, false\n /* no retry */\n );\n var ret, err;\n\n try {\n ret = _this.options.parse(data, url);\n } catch (e) {\n err = 'failed parsing ' + url + ' to json';\n }\n\n if (err) return callback(err, false);\n callback(null, ret);\n });\n }\n }, {\n key: \"create\",\n value: function create(languages, namespace, key, fallbackValue) {\n var _this2 = this;\n\n if (typeof languages === 'string') languages = [languages];\n var payload = this.options.parsePayload(namespace, key, fallbackValue);\n languages.forEach(function (lng) {\n var url = _this2.services.interpolator.interpolate(_this2.options.addPath, {\n lng: lng,\n ns: namespace\n });\n\n _this2.options.ajax(url, _this2.options, function (data, xhr) {//const statusCode = xhr.status.toString();\n // TODO: if statusCode === 4xx do log\n }, payload);\n });\n }\n }]);\n\n return Backend;\n}();\n\nBackend.type = 'backend';\n\nexport default Backend;\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","import _classCallCheck from '@babel/runtime/helpers/esm/classCallCheck';\nimport _createClass from '@babel/runtime/helpers/esm/createClass';\n\nvar arr = [];\nvar each = arr.forEach;\nvar slice = arr.slice;\nfunction defaults(obj) {\n each.call(slice.call(arguments, 1), function (source) {\n if (source) {\n for (var prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\n\n// eslint-disable-next-line no-control-regex\nvar fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\n\nvar serializeCookie = function serializeCookie(name, val, options) {\n var opt = options || {};\n opt.path = opt.path || '/';\n var value = encodeURIComponent(val);\n var str = name + '=' + value;\n\n if (opt.maxAge > 0) {\n var maxAge = opt.maxAge - 0;\n if (isNaN(maxAge)) throw new Error('maxAge should be a Number');\n str += '; Max-Age=' + Math.floor(maxAge);\n }\n\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n\n str += '; Domain=' + opt.domain;\n }\n\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n\n str += '; Path=' + opt.path;\n }\n\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n\n str += '; Expires=' + opt.expires.toUTCString();\n }\n\n if (opt.httpOnly) str += '; HttpOnly';\n if (opt.secure) str += '; Secure';\n\n if (opt.sameSite) {\n var sameSite = typeof opt.sameSite === 'string' ? opt.sameSite.toLowerCase() : opt.sameSite;\n\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n\n case 'lax':\n str += '; SameSite=Lax';\n break;\n\n case 'strict':\n str += '; SameSite=Strict';\n break;\n\n case 'none':\n str += '; SameSite=None';\n break;\n\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n\n return str;\n};\n\nvar cookie = {\n create: function create(name, value, minutes, domain) {\n var cookieOptions = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n path: '/',\n sameSite: 'strict'\n };\n\n if (minutes) {\n cookieOptions.expires = new Date();\n cookieOptions.expires.setTime(cookieOptions.expires.getTime() + minutes * 60 * 1000);\n }\n\n if (domain) cookieOptions.domain = domain;\n document.cookie = serializeCookie(name, encodeURIComponent(value), cookieOptions);\n },\n read: function read(name) {\n var nameEQ = name + '=';\n var ca = document.cookie.split(';');\n\n for (var i = 0; i < ca.length; i++) {\n var c = ca[i];\n\n while (c.charAt(0) === ' ') {\n c = c.substring(1, c.length);\n }\n\n if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);\n }\n\n return null;\n },\n remove: function remove(name) {\n this.create(name, '', -1);\n }\n};\nvar cookie$1 = {\n name: 'cookie',\n lookup: function lookup(options) {\n var found;\n\n if (options.lookupCookie && typeof document !== 'undefined') {\n var c = cookie.read(options.lookupCookie);\n if (c) found = c;\n }\n\n return found;\n },\n cacheUserLanguage: function cacheUserLanguage(lng, options) {\n if (options.lookupCookie && typeof document !== 'undefined') {\n cookie.create(options.lookupCookie, lng, options.cookieMinutes, options.cookieDomain, options.cookieOptions);\n }\n }\n};\n\nvar querystring = {\n name: 'querystring',\n lookup: function lookup(options) {\n var found;\n\n if (typeof window !== 'undefined') {\n var query = window.location.search.substring(1);\n var params = query.split('&');\n\n for (var i = 0; i < params.length; i++) {\n var pos = params[i].indexOf('=');\n\n if (pos > 0) {\n var key = params[i].substring(0, pos);\n\n if (key === options.lookupQuerystring) {\n found = params[i].substring(pos + 1);\n }\n }\n }\n }\n\n return found;\n }\n};\n\nvar hasLocalStorageSupport = null;\n\nvar localStorageAvailable = function localStorageAvailable() {\n if (hasLocalStorageSupport !== null) return hasLocalStorageSupport;\n\n try {\n hasLocalStorageSupport = window !== 'undefined' && window.localStorage !== null;\n var testKey = 'i18next.translate.boo';\n window.localStorage.setItem(testKey, 'foo');\n window.localStorage.removeItem(testKey);\n } catch (e) {\n hasLocalStorageSupport = false;\n }\n\n return hasLocalStorageSupport;\n};\n\nvar localStorage = {\n name: 'localStorage',\n lookup: function lookup(options) {\n var found;\n\n if (options.lookupLocalStorage && localStorageAvailable()) {\n var lng = window.localStorage.getItem(options.lookupLocalStorage);\n if (lng) found = lng;\n }\n\n return found;\n },\n cacheUserLanguage: function cacheUserLanguage(lng, options) {\n if (options.lookupLocalStorage && localStorageAvailable()) {\n window.localStorage.setItem(options.lookupLocalStorage, lng);\n }\n }\n};\n\nvar hasSessionStorageSupport = null;\n\nvar sessionStorageAvailable = function sessionStorageAvailable() {\n if (hasSessionStorageSupport !== null) return hasSessionStorageSupport;\n\n try {\n hasSessionStorageSupport = window !== 'undefined' && window.sessionStorage !== null;\n var testKey = 'i18next.translate.boo';\n window.sessionStorage.setItem(testKey, 'foo');\n window.sessionStorage.removeItem(testKey);\n } catch (e) {\n hasSessionStorageSupport = false;\n }\n\n return hasSessionStorageSupport;\n};\n\nvar sessionStorage = {\n name: 'sessionStorage',\n lookup: function lookup(options) {\n var found;\n\n if (options.lookupSessionStorage && sessionStorageAvailable()) {\n var lng = window.sessionStorage.getItem(options.lookupSessionStorage);\n if (lng) found = lng;\n }\n\n return found;\n },\n cacheUserLanguage: function cacheUserLanguage(lng, options) {\n if (options.lookupSessionStorage && sessionStorageAvailable()) {\n window.sessionStorage.setItem(options.lookupSessionStorage, lng);\n }\n }\n};\n\nvar navigator$1 = {\n name: 'navigator',\n lookup: function lookup(options) {\n var found = [];\n\n if (typeof navigator !== 'undefined') {\n if (navigator.languages) {\n // chrome only; not an array, so can't use .push.apply instead of iterating\n for (var i = 0; i < navigator.languages.length; i++) {\n found.push(navigator.languages[i]);\n }\n }\n\n if (navigator.userLanguage) {\n found.push(navigator.userLanguage);\n }\n\n if (navigator.language) {\n found.push(navigator.language);\n }\n }\n\n return found.length > 0 ? found : undefined;\n }\n};\n\nvar htmlTag = {\n name: 'htmlTag',\n lookup: function lookup(options) {\n var found;\n var htmlTag = options.htmlTag || (typeof document !== 'undefined' ? document.documentElement : null);\n\n if (htmlTag && typeof htmlTag.getAttribute === 'function') {\n found = htmlTag.getAttribute('lang');\n }\n\n return found;\n }\n};\n\nvar path = {\n name: 'path',\n lookup: function lookup(options) {\n var found;\n\n if (typeof window !== 'undefined') {\n var language = window.location.pathname.match(/\\/([a-zA-Z-]*)/g);\n\n if (language instanceof Array) {\n if (typeof options.lookupFromPathIndex === 'number') {\n if (typeof language[options.lookupFromPathIndex] !== 'string') {\n return undefined;\n }\n\n found = language[options.lookupFromPathIndex].replace('/', '');\n } else {\n found = language[0].replace('/', '');\n }\n }\n }\n\n return found;\n }\n};\n\nvar subdomain = {\n name: 'subdomain',\n lookup: function lookup(options) {\n var found;\n\n if (typeof window !== 'undefined') {\n var language = window.location.href.match(/(?:http[s]*\\:\\/\\/)*(.*?)\\.(?=[^\\/]*\\..{2,5})/gi);\n\n if (language instanceof Array) {\n if (typeof options.lookupFromSubdomainIndex === 'number') {\n found = language[options.lookupFromSubdomainIndex].replace('http://', '').replace('https://', '').replace('.', '');\n } else {\n found = language[0].replace('http://', '').replace('https://', '').replace('.', '');\n }\n }\n }\n\n return found;\n }\n};\n\nfunction getDefaults() {\n return {\n order: ['querystring', 'cookie', 'localStorage', 'sessionStorage', 'navigator', 'htmlTag'],\n lookupQuerystring: 'lng',\n lookupCookie: 'i18next',\n lookupLocalStorage: 'i18nextLng',\n lookupSessionStorage: 'i18nextLng',\n // cache user language\n caches: ['localStorage'],\n excludeCacheFor: ['cimode'] //cookieMinutes: 10,\n //cookieDomain: 'myDomain'\n\n };\n}\n\nvar Browser = /*#__PURE__*/function () {\n function Browser(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, Browser);\n\n this.type = 'languageDetector';\n this.detectors = {};\n this.init(services, options);\n }\n\n _createClass(Browser, [{\n key: \"init\",\n value: function init(services) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults()); // backwards compatibility\n\n if (this.options.lookupFromUrlIndex) this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex;\n this.i18nOptions = i18nOptions;\n this.addDetector(cookie$1);\n this.addDetector(querystring);\n this.addDetector(localStorage);\n this.addDetector(sessionStorage);\n this.addDetector(navigator$1);\n this.addDetector(htmlTag);\n this.addDetector(path);\n this.addDetector(subdomain);\n }\n }, {\n key: \"addDetector\",\n value: function addDetector(detector) {\n this.detectors[detector.name] = detector;\n }\n }, {\n key: \"detect\",\n value: function detect(detectionOrder) {\n var _this = this;\n\n if (!detectionOrder) detectionOrder = this.options.order;\n var detected = [];\n detectionOrder.forEach(function (detectorName) {\n if (_this.detectors[detectorName]) {\n var lookup = _this.detectors[detectorName].lookup(_this.options);\n\n if (lookup && typeof lookup === 'string') lookup = [lookup];\n if (lookup) detected = detected.concat(lookup);\n }\n });\n if (this.services.languageUtils.getBestMatchFromCodes) return detected; // new i18next v19.5.0\n\n return detected.length > 0 ? detected[0] : null; // a little backward compatibility\n }\n }, {\n key: \"cacheUserLanguage\",\n value: function cacheUserLanguage(lng, caches) {\n var _this2 = this;\n\n if (!caches) caches = this.options.caches;\n if (!caches) return;\n if (this.options.excludeCacheFor && this.options.excludeCacheFor.indexOf(lng) > -1) return;\n caches.forEach(function (cacheName) {\n if (_this2.detectors[cacheName]) _this2.detectors[cacheName].cacheUserLanguage(lng, _this2.options);\n });\n }\n }]);\n\n return Browser;\n}();\n\nBrowser.type = 'languageDetector';\n\nexport default Browser;\n","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}","/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n","/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _nonIterableRest() {\n 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}\n\nmodule.exports = _nonIterableRest;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","require('../modules/es6.math.acosh');\nrequire('../modules/es6.math.asinh');\nrequire('../modules/es6.math.atanh');\nrequire('../modules/es6.math.cbrt');\nrequire('../modules/es6.math.clz32');\nrequire('../modules/es6.math.cosh');\nrequire('../modules/es6.math.expm1');\nrequire('../modules/es6.math.fround');\nrequire('../modules/es6.math.hypot');\nrequire('../modules/es6.math.imul');\nrequire('../modules/es6.math.log10');\nrequire('../modules/es6.math.log1p');\nrequire('../modules/es6.math.log2');\nrequire('../modules/es6.math.sign');\nrequire('../modules/es6.math.sinh');\nrequire('../modules/es6.math.tanh');\nrequire('../modules/es6.math.trunc');\nmodule.exports = require('../modules/_core').Math;\n","// 20.2.2.3 Math.acosh(x)\nvar $export = require('./_export');\nvar log1p = require('./_math-log1p');\nvar sqrt = Math.sqrt;\nvar $acosh = Math.acosh;\n\n$export($export.S + $export.F * !($acosh\n // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n && Math.floor($acosh(Number.MAX_VALUE)) == 710\n // Tor Browser bug: Math.acosh(Infinity) -> NaN\n && $acosh(Infinity) == Infinity\n), 'Math', {\n acosh: function acosh(x) {\n return (x = +x) < 1 ? NaN : x > 94906265.62425156\n ? Math.log(x) + Math.LN2\n : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n }\n});\n","module.exports = require('./_shared')('native-function-to-string', Function.toString);\n","module.exports = false;\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","// 20.2.2.5 Math.asinh(x)\nvar $export = require('./_export');\nvar $asinh = Math.asinh;\n\nfunction asinh(x) {\n return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));\n}\n\n// Tor Browser bug: Math.asinh(0) -> -0\n$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh });\n","// 20.2.2.7 Math.atanh(x)\nvar $export = require('./_export');\nvar $atanh = Math.atanh;\n\n// Tor Browser bug: Math.atanh(-0) -> 0\n$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {\n atanh: function atanh(x) {\n return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;\n }\n});\n","// 20.2.2.9 Math.cbrt(x)\nvar $export = require('./_export');\nvar sign = require('./_math-sign');\n\n$export($export.S, 'Math', {\n cbrt: function cbrt(x) {\n return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);\n }\n});\n","// 20.2.2.11 Math.clz32(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n clz32: function clz32(x) {\n return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;\n }\n});\n","// 20.2.2.12 Math.cosh(x)\nvar $export = require('./_export');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n cosh: function cosh(x) {\n return (exp(x = +x) + exp(-x)) / 2;\n }\n});\n","// 20.2.2.14 Math.expm1(x)\nvar $export = require('./_export');\nvar $expm1 = require('./_math-expm1');\n\n$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 });\n","// 20.2.2.16 Math.fround(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { fround: require('./_math-fround') });\n","// 20.2.2.16 Math.fround(x)\nvar sign = require('./_math-sign');\nvar pow = Math.pow;\nvar EPSILON = pow(2, -52);\nvar EPSILON32 = pow(2, -23);\nvar MAX32 = pow(2, 127) * (2 - EPSILON32);\nvar MIN32 = pow(2, -126);\n\nvar roundTiesToEven = function (n) {\n return n + 1 / EPSILON - 1 / EPSILON;\n};\n\nmodule.exports = Math.fround || function fround(x) {\n var $abs = Math.abs(x);\n var $sign = sign(x);\n var a, result;\n if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n a = (1 + EPSILON32 / EPSILON) * $abs;\n result = a - (a - $abs);\n // eslint-disable-next-line no-self-compare\n if (result > MAX32 || result != result) return $sign * Infinity;\n return $sign * result;\n};\n","// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])\nvar $export = require('./_export');\nvar abs = Math.abs;\n\n$export($export.S, 'Math', {\n hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * Math.sqrt(sum);\n }\n});\n","// 20.2.2.18 Math.imul(x, y)\nvar $export = require('./_export');\nvar $imul = Math.imul;\n\n// some WebKit versions fails with big numbers, some has wrong arity\n$export($export.S + $export.F * require('./_fails')(function () {\n return $imul(0xffffffff, 5) != -5 || $imul.length != 2;\n}), 'Math', {\n imul: function imul(x, y) {\n var UINT16 = 0xffff;\n var xn = +x;\n var yn = +y;\n var xl = UINT16 & xn;\n var yl = UINT16 & yn;\n return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n }\n});\n","// 20.2.2.21 Math.log10(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log10: function log10(x) {\n return Math.log(x) * Math.LOG10E;\n }\n});\n","// 20.2.2.20 Math.log1p(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { log1p: require('./_math-log1p') });\n","// 20.2.2.22 Math.log2(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log2: function log2(x) {\n return Math.log(x) / Math.LN2;\n }\n});\n","// 20.2.2.28 Math.sign(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { sign: require('./_math-sign') });\n","// 20.2.2.30 Math.sinh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n// V8 near Chromium 38 has a problem with very small numbers\n$export($export.S + $export.F * require('./_fails')(function () {\n return !Math.sinh(-2e-17) != -2e-17;\n}), 'Math', {\n sinh: function sinh(x) {\n return Math.abs(x = +x) < 1\n ? (expm1(x) - expm1(-x)) / 2\n : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);\n }\n});\n","// 20.2.2.33 Math.tanh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n tanh: function tanh(x) {\n var a = expm1(x = +x);\n var b = expm1(-x);\n return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n }\n});\n","// 20.2.2.34 Math.trunc(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n trunc: function trunc(it) {\n return (it > 0 ? Math.floor : Math.ceil)(it);\n }\n});\n","require('../modules/es6.number.constructor');\nrequire('../modules/es6.number.to-fixed');\nrequire('../modules/es6.number.to-precision');\nrequire('../modules/es6.number.epsilon');\nrequire('../modules/es6.number.is-finite');\nrequire('../modules/es6.number.is-integer');\nrequire('../modules/es6.number.is-nan');\nrequire('../modules/es6.number.is-safe-integer');\nrequire('../modules/es6.number.max-safe-integer');\nrequire('../modules/es6.number.min-safe-integer');\nrequire('../modules/es6.number.parse-float');\nrequire('../modules/es6.number.parse-int');\nmodule.exports = require('../modules/_core').Number;\n","'use strict';\nvar global = require('./_global');\nvar has = require('./_has');\nvar cof = require('./_cof');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar toPrimitive = require('./_to-primitive');\nvar fails = require('./_fails');\nvar gOPN = require('./_object-gopn').f;\nvar gOPD = require('./_object-gopd').f;\nvar dP = require('./_object-dp').f;\nvar $trim = require('./_string-trim').trim;\nvar NUMBER = 'Number';\nvar $Number = global[NUMBER];\nvar Base = $Number;\nvar proto = $Number.prototype;\n// Opera ~12 has broken Object#toString\nvar BROKEN_COF = cof(require('./_object-create')(proto)) == NUMBER;\nvar TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n if (typeof it == 'string' && it.length > 2) {\n it = TRIM ? it.trim() : $trim(it, 3);\n var first = it.charCodeAt(0);\n var third, radix, maxCode;\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n default: return +it;\n }\n for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {\n code = digits.charCodeAt(i);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nif (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {\n $Number = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var that = this;\n return that instanceof $Number\n // check on 1..constructor(foo) case\n && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)\n ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n };\n for (var keys = require('./_descriptors') ? gOPN(Base) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES6 (in case, if modules with ES6 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(Base, key = keys[j]) && !has($Number, key)) {\n dP($Number, key, gOPD(Base, key));\n }\n }\n $Number.prototype = proto;\n proto.constructor = $Number;\n require('./_redefine')(global, NUMBER, $Number);\n}\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","exports.f = {}.propertyIsEnumerable;\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","'use strict';\nvar $export = require('./_export');\nvar toInteger = require('./_to-integer');\nvar aNumberValue = require('./_a-number-value');\nvar repeat = require('./_string-repeat');\nvar $toFixed = 1.0.toFixed;\nvar floor = Math.floor;\nvar data = [0, 0, 0, 0, 0, 0];\nvar ERROR = 'Number.toFixed: incorrect invocation!';\nvar ZERO = '0';\n\nvar multiply = function (n, c) {\n var i = -1;\n var c2 = c;\n while (++i < 6) {\n c2 += n * data[i];\n data[i] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\nvar divide = function (n) {\n var i = 6;\n var c = 0;\n while (--i >= 0) {\n c += data[i];\n data[i] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\nvar numToString = function () {\n var i = 6;\n var s = '';\n while (--i >= 0) {\n if (s !== '' || i === 0 || data[i] !== 0) {\n var t = String(data[i]);\n s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;\n }\n } return s;\n};\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\n$export($export.P + $export.F * (!!$toFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !require('./_fails')(function () {\n // V8 ~ Android 4.3-\n $toFixed.call({});\n})), 'Number', {\n toFixed: function toFixed(fractionDigits) {\n var x = aNumberValue(this, ERROR);\n var f = toInteger(fractionDigits);\n var s = '';\n var m = ZERO;\n var e, z, j, k;\n if (f < 0 || f > 20) throw RangeError(ERROR);\n // eslint-disable-next-line no-self-compare\n if (x != x) return 'NaN';\n if (x <= -1e21 || x >= 1e21) return String(x);\n if (x < 0) {\n s = '-';\n x = -x;\n }\n if (x > 1e-21) {\n e = log(x * pow(2, 69, 1)) - 69;\n z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = f;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n m = numToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n m = numToString() + repeat.call(ZERO, f);\n }\n }\n if (f > 0) {\n k = m.length;\n m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));\n } else {\n m = s + m;\n } return m;\n }\n});\n","'use strict';\nvar toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n\nmodule.exports = function repeat(count) {\n var str = String(defined(this));\n var res = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError(\"Count can't be negative\");\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;\n return res;\n};\n","'use strict';\nvar $export = require('./_export');\nvar $fails = require('./_fails');\nvar aNumberValue = require('./_a-number-value');\nvar $toPrecision = 1.0.toPrecision;\n\n$export($export.P + $export.F * ($fails(function () {\n // IE7-\n return $toPrecision.call(1, undefined) !== '1';\n}) || !$fails(function () {\n // V8 ~ Android 4.3-\n $toPrecision.call({});\n})), 'Number', {\n toPrecision: function toPrecision(precision) {\n var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');\n return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);\n }\n});\n","// 20.1.2.1 Number.EPSILON\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { EPSILON: Math.pow(2, -52) });\n","// 20.1.2.2 Number.isFinite(number)\nvar $export = require('./_export');\nvar _isFinite = require('./_global').isFinite;\n\n$export($export.S, 'Number', {\n isFinite: function isFinite(it) {\n return typeof it == 'number' && _isFinite(it);\n }\n});\n","// 20.1.2.3 Number.isInteger(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { isInteger: require('./_is-integer') });\n","// 20.1.2.4 Number.isNaN(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n","// 20.1.2.5 Number.isSafeInteger(number)\nvar $export = require('./_export');\nvar isInteger = require('./_is-integer');\nvar abs = Math.abs;\n\n$export($export.S, 'Number', {\n isSafeInteger: function isSafeInteger(number) {\n return isInteger(number) && abs(number) <= 0x1fffffffffffff;\n }\n});\n","// 20.1.2.6 Number.MAX_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff });\n","// 20.1.2.10 Number.MIN_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff });\n","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 20.1.2.12 Number.parseFloat(string)\n$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat });\n","var $parseFloat = require('./_global').parseFloat;\nvar $trim = require('./_string-trim').trim;\n\nmodule.exports = 1 / $parseFloat(require('./_string-ws') + '-0') !== -Infinity ? function parseFloat(str) {\n var string = $trim(String(str), 3);\n var result = $parseFloat(string);\n return result === 0 && string.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 20.1.2.13 Number.parseInt(string, radix)\n$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt });\n","var $parseInt = require('./_global').parseInt;\nvar $trim = require('./_string-trim').trim;\nvar ws = require('./_string-ws');\nvar hex = /^[-+]?0[xX]/;\n\nmodule.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {\n var string = $trim(String(str), 3);\n return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));\n} : $parseInt;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var 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 isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var 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","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\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 Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var 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 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","/**\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 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 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","/** 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 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 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","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 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 arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var 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 * 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 baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","/**\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 baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var 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 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","/** 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","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var 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 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 WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","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 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 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 baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * 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 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","/**\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 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 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","/**\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 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","/**\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","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","// Generated by CoffeeScript 1.12.2\n(function() {\n var getNanoSeconds, hrtime, loadTime, moduleLoadTime, nodeLoadTime, upTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - nodeLoadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n moduleLoadTime = getNanoSeconds();\n upTime = process.uptime() * 1e9;\n nodeLoadTime = moduleLoadTime - upTime;\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n//# sourceMappingURL=performance-now.js.map\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\nfunction baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseIntersection;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","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 constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/**\n * 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","/** 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 isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\nfunction castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n}\n\nmodule.exports = castArrayLikeObject;\n","var isArrayLike = require('./isArrayLike'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n}\n\nmodule.exports = baseFilter;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _addClass = _interopRequireDefault(require(\"dom-helpers/class/addClass\"));\n\nvar _removeClass = _interopRequireDefault(require(\"dom-helpers/class/removeClass\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _addClass.default)(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _removeClass.default)(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](http://www.nganimate.org/) library, you should use it if you're\n * using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n *
\n * {\"I'll receive my-node-* classes\"}\n *
\n *
\n * \n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity: 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**.\n */\n\n\nvar CSSTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.onEnter = function (node, appearing) {\n var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'),\n className = _this$getClassNames.className;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, className);\n\n if (_this.props.onEnter) {\n _this.props.onEnter(node, appearing);\n }\n };\n\n _this.onEntering = function (node, appearing) {\n var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'),\n activeClassName = _this$getClassNames2.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onEntering) {\n _this.props.onEntering(node, appearing);\n }\n };\n\n _this.onEntered = function (node, appearing) {\n var appearClassName = _this.getClassNames('appear').doneClassName;\n\n var enterClassName = _this.getClassNames('enter').doneClassName;\n\n var doneClassName = appearing ? appearClassName + \" \" + enterClassName : enterClassName;\n\n _this.removeClasses(node, appearing ? 'appear' : 'enter');\n\n addClass(node, doneClassName);\n\n if (_this.props.onEntered) {\n _this.props.onEntered(node, appearing);\n }\n };\n\n _this.onExit = function (node) {\n var _this$getClassNames3 = _this.getClassNames('exit'),\n className = _this$getClassNames3.className;\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n addClass(node, className);\n\n if (_this.props.onExit) {\n _this.props.onExit(node);\n }\n };\n\n _this.onExiting = function (node) {\n var _this$getClassNames4 = _this.getClassNames('exit'),\n activeClassName = _this$getClassNames4.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onExiting) {\n _this.props.onExiting(node);\n }\n };\n\n _this.onExited = function (node) {\n var _this$getClassNames5 = _this.getClassNames('exit'),\n doneClassName = _this$getClassNames5.doneClassName;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, doneClassName);\n\n if (_this.props.onExited) {\n _this.props.onExited(node);\n }\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + '-' : '';\n var className = isStringClassNames ? prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? className + '-active' : classNames[type + 'Active'];\n var doneClassName = isStringClassNames ? className + '-done' : classNames[type + 'Done'];\n return {\n className: className,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$getClassNames6 = this.getClassNames(type),\n className = _this$getClassNames6.className,\n activeClassName = _this$getClassNames6.activeClassName,\n doneClassName = _this$getClassNames6.doneClassName;\n\n className && removeClass(node, className);\n activeClassName && removeClass(node, activeClassName);\n doneClassName && removeClass(node, doneClassName);\n };\n\n _proto.reflowAndAddClass = function reflowAndAddClass(node, className) {\n // This is for to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n if (className) {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n /* eslint-enable no-unused-expressions */\n\n addClass(node, className);\n }\n };\n\n _proto.render = function render() {\n var props = _extends({}, this.props);\n\n delete props.classNames;\n return _react.default.createElement(_Transition.default, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(_react.default.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, _Transition.default.propTypes, {\n /**\n * The animation classNames applied to the component as it enters, exits or\n * has finished the transition. A single name can be provided and it will be\n * suffixed for each stage: e.g.\n *\n * `classNames=\"fade\"` applies `fade-enter`, `fade-enter-active`,\n * `fade-enter-done`, `fade-exit`, `fade-exit-active`, `fade-exit-done`,\n * `fade-appear`, `fade-appear-active`, and `fade-appear-done`.\n *\n * **Note**: `fade-appear-done` and `fade-enter-done` will _both_ be applied.\n * This allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply an\n * epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: _PropTypes.classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nvar _default = CSSTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = addClass;\n\nvar _hasClass = _interopRequireDefault(require(\"./hasClass\"));\n\nfunction addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className);\n}\n\nmodule.exports = exports[\"default\"];","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = hasClass;\n\nfunction hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);else return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\nmodule.exports = exports[\"default\"];","'use strict';\n\nfunction replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp('(^|\\\\s)' + classToRemove + '(?:\\\\s|$)', 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nmodule.exports = function removeClass(element, className) {\n if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = require(\"react-dom\");\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\n/**\n * The `` component is a specialized `Transition` component\n * that animates between two children.\n *\n * ```jsx\n * \n *
I appear first
\n *
I replace the above
\n *
\n * ```\n */\nvar ReplaceTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ReplaceTransition, _React$Component);\n\n function ReplaceTransition() {\n var _this;\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;\n\n _this.handleEnter = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _this.handleLifecycle('onEnter', 0, args);\n };\n\n _this.handleEntering = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return _this.handleLifecycle('onEntering', 0, args);\n };\n\n _this.handleEntered = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return _this.handleLifecycle('onEntered', 0, args);\n };\n\n _this.handleExit = function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return _this.handleLifecycle('onExit', 1, args);\n };\n\n _this.handleExiting = function () {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return _this.handleLifecycle('onExiting', 1, args);\n };\n\n _this.handleExited = function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n return _this.handleLifecycle('onExited', 1, args);\n };\n\n return _this;\n }\n\n var _proto = ReplaceTransition.prototype;\n\n _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) {\n var _child$props;\n\n var children = this.props.children;\n\n var child = _react.default.Children.toArray(children)[idx];\n\n if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);\n if (this.props[handler]) this.props[handler]((0, _reactDom.findDOMNode)(this));\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n inProp = _this$props.in,\n props = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\"]);\n\n var _React$Children$toArr = _react.default.Children.toArray(children),\n first = _React$Children$toArr[0],\n second = _React$Children$toArr[1];\n\n delete props.onEnter;\n delete props.onEntering;\n delete props.onEntered;\n delete props.onExit;\n delete props.onExiting;\n delete props.onExited;\n return _react.default.createElement(_TransitionGroup.default, props, inProp ? _react.default.cloneElement(first, {\n key: 'first',\n onEnter: this.handleEnter,\n onEntering: this.handleEntering,\n onEntered: this.handleEntered\n }) : _react.default.cloneElement(second, {\n key: 'second',\n onEnter: this.handleExit,\n onEntering: this.handleExiting,\n onEntered: this.handleExited\n }));\n };\n\n return ReplaceTransition;\n}(_react.default.Component);\n\nReplaceTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n in: _propTypes.default.bool.isRequired,\n children: function children(props, propName) {\n if (_react.default.Children.count(props[propName]) !== 2) return new Error(\"\\\"\" + propName + \"\\\" must be exactly two transition components.\");\n return null;\n }\n} : {};\nvar _default = ReplaceTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.getChildMapping = getChildMapping;\nexports.mergeChildMappings = mergeChildMappings;\nexports.getInitialChildMapping = getInitialChildMapping;\nexports.getNextChildMapping = getNextChildMapping;\n\nvar _react = require(\"react\");\n\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\nfunction getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) _react.Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\n\nfunction mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nfunction getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\n\nfunction getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!(0, _react.isValidElement)(child)) return;\n var hasPrev = key in prevChildMapping;\n var hasNext = key in nextChildMapping;\n var prevChild = prevChildMapping[key];\n var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = (0, _react.cloneElement)(child, {\n in: false\n });\n } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","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 arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _resizeObserverPolyfill = require('resize-observer-polyfill');\n\nvar _resizeObserverPolyfill2 = _interopRequireDefault(_resizeObserverPolyfill);\n\nvar _lodash = require('lodash.debounce');\n\nvar _lodash2 = _interopRequireDefault(_lodash);\n\nvar _lodash3 = require('lodash.throttle');\n\nvar _lodash4 = _interopRequireDefault(_lodash3);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar listMode = { debounce: _lodash2.default, throttle: _lodash4.default };\n\nvar styles = {\n position: 'absolute',\n width: 0,\n height: 0,\n visibility: 'hidden',\n display: 'none'\n};\n\nvar ResizeDetector = function (_PureComponent) {\n _inherits(ResizeDetector, _PureComponent);\n\n function ResizeDetector(props) {\n _classCallCheck(this, ResizeDetector);\n\n var _this = _possibleConstructorReturn(this, (ResizeDetector.__proto__ || Object.getPrototypeOf(ResizeDetector)).call(this, props));\n\n _this.createResizeObserver = function (entries) {\n var _this$props = _this.props,\n handleWidth = _this$props.handleWidth,\n handleHeight = _this$props.handleHeight,\n onResize = _this$props.onResize;\n\n entries.forEach(function (entry) {\n var _entry$contentRect = entry.contentRect,\n width = _entry$contentRect.width,\n height = _entry$contentRect.height;\n\n var notifyWidth = handleWidth && _this.width !== width;\n var notifyHeight = handleHeight && _this.height !== height;\n if (!_this.skipOnMount && (notifyWidth || notifyHeight)) {\n onResize(width, height);\n }\n _this.width = width;\n _this.height = height;\n _this.skipOnMount = false;\n });\n };\n\n var skipOnMount = props.skipOnMount,\n refreshMode = props.refreshMode,\n refreshRate = props.refreshRate;\n\n\n _this.width = undefined;\n _this.height = undefined;\n _this.skipOnMount = skipOnMount;\n\n var resizeObserver = listMode[refreshMode] && listMode[refreshMode](_this.createResizeObserver, refreshRate) || _this.createResizeObserver;\n\n _this.ro = new _resizeObserverPolyfill2.default(resizeObserver);\n return _this;\n }\n\n _createClass(ResizeDetector, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var resizableElementId = this.props.resizableElementId;\n\n var resizableElement = resizableElementId ? document.getElementById(resizableElementId) : this.el.parentElement;\n this.ro.observe(resizableElement);\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n var resizableElementId = this.props.resizableElementId;\n\n var resizableElement = resizableElementId ? document.getElementById(resizableElementId) : this.el.parentElement;\n this.ro.unobserve(resizableElement);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n return _react2.default.createElement('div', {\n style: styles,\n ref: function ref(el) {\n _this2.el = el;\n }\n });\n }\n }]);\n\n return ResizeDetector;\n}(_react.PureComponent);\n\nexports.default = ResizeDetector;\n\n\nResizeDetector.propTypes = {\n handleWidth: _propTypes2.default.bool,\n handleHeight: _propTypes2.default.bool,\n skipOnMount: _propTypes2.default.bool,\n refreshRate: _propTypes2.default.number,\n refreshMode: _propTypes2.default.string,\n resizableElementId: _propTypes2.default.string,\n onResize: _propTypes2.default.func\n};\n\nResizeDetector.defaultProps = {\n handleWidth: false,\n handleHeight: false,\n skipOnMount: false,\n refreshRate: 1000,\n refreshMode: undefined,\n resizableElementId: '',\n onResize: function onResize(e) {\n return e;\n }\n};","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = throttle;\n","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\nfunction baseGt(value, other) {\n return value > other;\n}\n\nmodule.exports = baseGt;\n","/**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\nfunction baseLt(value, other) {\n return value < other;\n}\n\nmodule.exports = baseLt;\n","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","module.exports = balanced;\nfunction balanced(a, b, str) {\n if (a instanceof RegExp) a = maybeMatch(a, str);\n if (b instanceof RegExp) b = maybeMatch(b, str);\n\n var r = range(a, b, str);\n\n return r && {\n start: r[0],\n end: r[1],\n pre: str.slice(0, r[0]),\n body: str.slice(r[0] + a.length, r[1]),\n post: str.slice(r[1] + b.length)\n };\n}\n\nfunction maybeMatch(reg, str) {\n var m = str.match(reg);\n return m ? m[0] : null;\n}\n\nbalanced.range = range;\nfunction range(a, b, str) {\n var begs, beg, left, right, result;\n var ai = str.indexOf(a);\n var bi = str.indexOf(b, ai + 1);\n var i = ai;\n\n if (ai >= 0 && bi > 0) {\n begs = [];\n left = str.length;\n\n while (i >= 0 && !result) {\n if (i == ai) {\n begs.push(i);\n ai = str.indexOf(a, i + 1);\n } else if (begs.length == 1) {\n result = [ begs.pop(), bi ];\n } else {\n beg = begs.pop();\n if (beg < left) {\n left = beg;\n right = bi;\n }\n\n bi = str.indexOf(b, i + 1);\n }\n\n i = ai < bi && ai >= 0 ? ai : bi;\n }\n\n if (begs.length) {\n result = [ left, right ];\n }\n }\n\n return result;\n}\n","/*\n * Module dependencies\n */\nvar balanced = require(\"balanced-match\")\n\n/**\n * Expose `reduceFunctionCall`\n *\n * @type {Function}\n */\nmodule.exports = reduceFunctionCall\n\n/**\n * Walkthrough all expressions, evaluate them and insert them into the declaration\n *\n * @param {Array} expressions\n * @param {Object} declaration\n */\n\nfunction reduceFunctionCall(string, functionRE, callback) {\n var call = string\n return getFunctionCalls(string, functionRE).reduce(function(string, obj) {\n return string.replace(obj.functionIdentifier + \"(\" + obj.matches.body + \")\", evalFunctionCall(obj.matches.body, obj.functionIdentifier, callback, call, functionRE))\n }, string)\n}\n\n/**\n * Parses expressions in a value\n *\n * @param {String} value\n * @returns {Array}\n * @api private\n */\n\nfunction getFunctionCalls(call, functionRE) {\n var expressions = []\n\n var fnRE = typeof functionRE === \"string\" ? new RegExp(\"\\\\b(\" + functionRE + \")\\\\(\") : functionRE\n do {\n var searchMatch = fnRE.exec(call)\n if (!searchMatch) {\n return expressions\n }\n if (searchMatch[1] === undefined) {\n throw new Error(\"Missing the first couple of parenthesis to get the function identifier in \" + functionRE)\n }\n var fn = searchMatch[1]\n var startIndex = searchMatch.index\n var matches = balanced(\"(\", \")\", call.substring(startIndex))\n\n if (!matches || matches.start !== searchMatch[0].length - 1) {\n throw new SyntaxError(fn + \"(): missing closing ')' in the value '\" + call + \"'\")\n }\n\n expressions.push({matches: matches, functionIdentifier: fn})\n call = matches.post\n }\n while (fnRE.test(call))\n\n return expressions\n}\n\n/**\n * Evaluates an expression\n *\n * @param {String} expression\n * @returns {String}\n * @api private\n */\n\nfunction evalFunctionCall (string, functionIdentifier, callback, call, functionRE) {\n // allow recursivity\n return callback(reduceFunctionCall(string, functionRE, callback), functionIdentifier, call)\n}\n","'use strict';\nmodule.exports = balanced;\nfunction balanced(a, b, str) {\n if (a instanceof RegExp) a = maybeMatch(a, str);\n if (b instanceof RegExp) b = maybeMatch(b, str);\n\n var r = range(a, b, str);\n\n return r && {\n start: r[0],\n end: r[1],\n pre: str.slice(0, r[0]),\n body: str.slice(r[0] + a.length, r[1]),\n post: str.slice(r[1] + b.length)\n };\n}\n\nfunction maybeMatch(reg, str) {\n var m = str.match(reg);\n return m ? m[0] : null;\n}\n\nbalanced.range = range;\nfunction range(a, b, str) {\n var begs, beg, left, right, result;\n var ai = str.indexOf(a);\n var bi = str.indexOf(b, ai + 1);\n var i = ai;\n\n if (ai >= 0 && bi > 0) {\n if(a===b) {\n return [ai, bi];\n }\n begs = [];\n left = str.length;\n\n while (i >= 0 && !result) {\n if (i == ai) {\n begs.push(i);\n ai = str.indexOf(a, i + 1);\n } else if (begs.length == 1) {\n result = [ begs.pop(), bi ];\n } else {\n beg = begs.pop();\n if (beg < left) {\n left = beg;\n right = bi;\n }\n\n bi = str.indexOf(b, i + 1);\n }\n\n i = ai < bi && ai >= 0 ? ai : bi;\n }\n\n if (begs.length) {\n result = [ left, right ];\n }\n }\n\n return result;\n}\n","var Mexp=require('./postfix_evaluator.js');\r\nMexp.prototype.formulaEval = function () {\r\n\t\"use strict\";\r\n\tvar stack=[],pop1,pop2,pop3;\r\n\tvar disp=[];\r\n\tvar temp='';\r\n\tvar arr=this.value;\r\n\tfor(var i=0;i\"+pop2.value+\"\"+arr[i].show+\"\"+pop1.value+\"\",type:10});\r\n\t\t\telse disp.push({value:(pop2.type!=1?\"(\":\"\")+pop2.value+(pop2.type!=1?\")\":\"\")+\"\"+pop1.value+\"\",type:1});\r\n\t\t}\r\n\t\telse if(arr[i].type===2||arr[i].type===9){\r\n\t\t\tpop1=disp.pop();\r\n\t\t\tpop2=disp.pop();\r\n\t\t\tdisp.push({value:(pop2.type!=1?\"(\":\"\")+pop2.value+(pop2.type!=1?\")\":\"\")+arr[i].show+(pop1.type!=1?\"(\":\"\")+pop1.value+(pop1.type!=1?\")\":\"\"),type:arr[i].type});\r\n\t\t}\r\n\t\telse if(arr[i].type===12){\r\n\t\t\tpop1=disp.pop();\r\n\t\t\tpop2=disp.pop();\r\n\t\t\tpop3=disp.pop();\r\n\t\t\tdisp.push({value:arr[i].show+\"(\"+pop3.value+\",\"+pop2.value+\",\"+pop1.value+\")\",type:12});\r\n\t\t}\r\n\t}\r\n\treturn disp[0].value;\r\n};\r\nmodule.exports=Mexp;","var Mexp=require('./postfix.js');\r\nMexp.prototype.postfixEval = function (UserDefined) {\r\n\t'use strict';\r\n\tUserDefined=UserDefined||{};\r\n\tUserDefined.PI=Math.PI;\r\n\tUserDefined.E=Math.E;\r\n\tvar stack=[],pop1,pop2,pop3;\r\n\tvar disp=[];\r\n\tvar temp='';\r\n\tvar arr=this.value;\r\n\tvar bool=(typeof UserDefined.n!==\"undefined\");\r\n\tfor(var i=0;i1) {\r\n\t\tthrow(new Mexp.Exception(\"Uncaught Syntax error\"));\r\n\t}\r\n\treturn stack[0].value>1000000000000000?\"Infinity\":parseFloat(stack[0].value.toFixed(15));\r\n};\r\nMexp.eval=function(str,tokens,obj){\r\n\tif (typeof tokens===\"undefined\") {\r\n\t\treturn this.lex(str).toPostfix().postfixEval();\r\n\t}\r\n\telse if (typeof obj===\"undefined\") {\r\n\t\tif (typeof tokens.length!==\"undefined\") \r\n\t\t\treturn this.lex(str,tokens).toPostfix().postfixEval();\r\n\t\telse\r\n\t\t\treturn this.lex(str).toPostfix().postfixEval(tokens);\r\n\t}\r\n\telse\r\n\t\treturn this.lex(str,tokens).toPostfix().postfixEval(obj);\r\n};\r\nmodule.exports=Mexp;","\r\nvar Mexp = require('./lexer.js');\r\n\r\nMexp.prototype.toPostfix = function () {\r\n\t'use strict';\r\n\tvar post = [], elem, popped, prep, pre, ele;\r\n\tvar stack = [{ value: \"(\", type: 4, pre: 0 }];\r\n\tvar arr = this.value;\r\n\tfor (var i = 1; i < arr.length; i++) {\r\n\t\tif (arr[i].type === 1 || arr[i].type === 3 || arr[i].type === 13) {\t//if token is number,constant,or n(which is also a special constant in our case)\r\n\t\t\tif (arr[i].type === 1)\r\n\t\t\t\tarr[i].value = Number(arr[i].value);\r\n\t\t\tpost.push(arr[i]);\r\n\t\t}\r\n\t\telse if (arr[i].type === 4) {\r\n\t\t\tstack.push(arr[i]);\r\n\t\t}\r\n\t\telse if (arr[i].type === 5) {\r\n\t\t\twhile ((popped = stack.pop()).type !== 4) {\r\n\t\t\t\tpost.push(popped);\r\n\t\t\t}\r\n\t\t}\r\n\t\telse if (arr[i].type === 11) {\r\n\t\t\twhile ((popped = stack.pop()).type !== 4) {\r\n\t\t\t\tpost.push(popped);\r\n\t\t\t}\r\n\t\t\tstack.push(popped);\r\n\t\t}\r\n\t\telse {\r\n\t\t\telem = arr[i];\r\n\t\t\tpre = elem.pre;\r\n\t\t\tele = stack[stack.length - 1];\r\n\t\t\tprep = ele.pre;\r\n\t\t\tvar flag = ele.value == 'Math.pow' && elem.value == 'Math.pow';\r\n\t\t\tif (pre > prep) stack.push(elem);\r\n\t\t\telse {\r\n\t\t\t\twhile (prep >= pre && !flag || flag && pre < prep) {\r\n\t\t\t\t\tpopped = stack.pop();\r\n\t\t\t\t\tele = stack[stack.length - 1];\r\n\t\t\t\t\tpost.push(popped);\r\n\t\t\t\t\tprep = ele.pre;\r\n\t\t\t\t\tflag = elem.value == 'Math.pow' && ele.value == 'Math.pow';\r\n\t\t\t\t}\r\n\t\t\t\tstack.push(elem);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn new Mexp(post);\r\n};\r\nmodule.exports = Mexp;","'use strict'\r\nvar Mexp = require('./math_function.js')\r\nfunction inc (arr, val) {\r\n for (var i = 0; i < arr.length; i++) {\r\n arr[i] += val\r\n }\r\n return arr\r\n}\r\nvar token = [\r\n 'sin',\r\n 'cos',\r\n 'tan',\r\n 'pi',\r\n '(',\r\n ')',\r\n 'P',\r\n 'C',\r\n ' ',\r\n 'asin',\r\n 'acos',\r\n 'atan',\r\n '7',\r\n '8',\r\n '9',\r\n 'int',\r\n 'cosh',\r\n 'acosh',\r\n 'ln',\r\n '^',\r\n 'root',\r\n '4',\r\n '5',\r\n '6',\r\n '/',\r\n '!',\r\n 'tanh',\r\n 'atanh',\r\n 'Mod',\r\n '1',\r\n '2',\r\n '3',\r\n '*',\r\n 'sinh',\r\n 'asinh',\r\n 'e',\r\n 'log',\r\n '0',\r\n '.',\r\n '+',\r\n '-',\r\n ',',\r\n 'Sigma',\r\n 'n',\r\n 'Pi',\r\n 'pow'\r\n]\r\nvar show = [\r\n 'sin',\r\n 'cos',\r\n 'tan',\r\n 'π',\r\n '(',\r\n ')',\r\n 'P',\r\n 'C',\r\n ' ',\r\n 'asin',\r\n 'acos',\r\n 'atan',\r\n '7',\r\n '8',\r\n '9',\r\n 'Int',\r\n 'cosh',\r\n 'acosh',\r\n ' ln',\r\n '^',\r\n 'root',\r\n '4',\r\n '5',\r\n '6',\r\n '÷',\r\n '!',\r\n 'tanh',\r\n 'atanh',\r\n ' Mod ',\r\n '1',\r\n '2',\r\n '3',\r\n '×',\r\n 'sinh',\r\n 'asinh',\r\n 'e',\r\n ' log',\r\n '0',\r\n '.',\r\n '+',\r\n '-',\r\n ',',\r\n 'Σ',\r\n 'n',\r\n 'Π',\r\n 'pow'\r\n]\r\nvar eva = [\r\n Mexp.math.sin,\r\n Mexp.math.cos,\r\n Mexp.math.tan,\r\n 'PI',\r\n '(',\r\n ')',\r\n Mexp.math.P,\r\n Mexp.math.C,\r\n ' '.anchor,\r\n Mexp.math.asin,\r\n Mexp.math.acos,\r\n Mexp.math.atan,\r\n '7',\r\n '8',\r\n '9',\r\n Math.floor,\r\n Mexp.math.cosh,\r\n Mexp.math.acosh,\r\n Math.log,\r\n Math.pow,\r\n Math.sqrt,\r\n '4',\r\n '5',\r\n '6',\r\n Mexp.math.div,\r\n Mexp.math.fact,\r\n Mexp.math.tanh,\r\n Mexp.math.atanh,\r\n Mexp.math.mod,\r\n '1',\r\n '2',\r\n '3',\r\n Mexp.math.mul,\r\n Mexp.math.sinh,\r\n Mexp.math.asinh,\r\n 'E',\r\n Mexp.math.log,\r\n '0',\r\n '.',\r\n Mexp.math.add,\r\n Mexp.math.sub,\r\n ',',\r\n Mexp.math.sigma,\r\n 'n',\r\n Mexp.math.Pi,\r\n Math.pow\r\n]\r\nvar preced = {\r\n 0: 11,\r\n 1: 0,\r\n 2: 3,\r\n 3: 0,\r\n 4: 0,\r\n 5: 0,\r\n 6: 0,\r\n 7: 11,\r\n 8: 11,\r\n 9: 1,\r\n 10: 10,\r\n 11: 0,\r\n 12: 11,\r\n 13: 0,\r\n 14: -1 // will be filtered after lexer\r\n} // stores precedence by types\r\nvar type = [\r\n 0, 0, 0, 3, 4, 5, 10, 10, 14, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 10, 0, 1, 1, 1, 2, 7, 0, 0, 2, 1, 1,\r\n 1, 2, 0, 0, 3, 0, 1, 6, 9, 9, 11, 12, 13, 12, 8\r\n]\r\n/*\r\n0 : function with syntax function_name(Maths_exp)\r\n1 : numbers\r\n2 : binary operators like * / Mod left associate and same precedence\r\n3 : Math constant values like e,pi,Cruncher ans\r\n4 : opening bracket\r\n5 : closing bracket\r\n6 : decimal\r\n7 : function with syntax (Math_exp)function_name\r\n8: function with syntax function_name(Math_exp1,Math_exp2)\r\n9 : binary operator like +,-\r\n10: binary operator like P C or ^\r\n11: ,\r\n12: function with , seperated three parameters and third parameter is a string that will be mexp string\r\n13: variable of Sigma function\r\n*/\r\nvar type0 = {\r\n 0: true,\r\n 1: true,\r\n 3: true,\r\n 4: true,\r\n 6: true,\r\n 8: true,\r\n 9: true,\r\n 12: true,\r\n 13: true,\r\n 14: true\r\n} // type2:true,type4:true,type9:true,type11:true,type21:true,type22\r\nvar type1 = {\r\n 0: true,\r\n 1: true,\r\n 2: true,\r\n 3: true,\r\n 4: true,\r\n 5: true,\r\n 6: true,\r\n 7: true,\r\n 8: true,\r\n 9: true,\r\n 10: true,\r\n 11: true,\r\n 12: true,\r\n 13: true\r\n} // type3:true,type5:true,type7:true,type23\r\nvar type1Asterick = {\r\n 0: true,\r\n 3: true,\r\n 4: true,\r\n 8: true,\r\n 12: true,\r\n 13: true\r\n}\r\nvar empty = {}\r\nvar type3Asterick = {\r\n 0: true,\r\n 1: true,\r\n 3: true,\r\n 4: true,\r\n 6: true,\r\n 8: true,\r\n 12: true,\r\n 13: true\r\n} // type_5:true,type_7:true,type_23\r\nvar type6 = {\r\n 1: true\r\n}\r\nvar newAr = [\r\n [],\r\n [\r\n '1',\r\n '2',\r\n '3',\r\n '7',\r\n '8',\r\n '9',\r\n '4',\r\n '5',\r\n '6',\r\n '+',\r\n '-',\r\n '*',\r\n '/',\r\n '(',\r\n ')',\r\n '^',\r\n '!',\r\n 'P',\r\n 'C',\r\n 'e',\r\n '0',\r\n '.',\r\n ',',\r\n 'n',\r\n ' '\r\n ],\r\n ['pi', 'ln', 'Pi'],\r\n ['sin', 'cos', 'tan', 'Del', 'int', 'Mod', 'log', 'pow'],\r\n ['asin', 'acos', 'atan', 'cosh', 'root', 'tanh', 'sinh'],\r\n ['acosh', 'atanh', 'asinh', 'Sigma']\r\n]\r\n\r\nfunction match (str1, str2, i, x) {\r\n for (var f = 0; f < x; f++) {\r\n if (str1[i + f] !== str2[f]) {\r\n return false\r\n }\r\n }\r\n return true\r\n}\r\nMexp.addToken = function (tokens) {\r\n for (var i = 0; i < tokens.length; i++) {\r\n var x = tokens[i].token.length\r\n var temp = -1\r\n\r\n // newAr is a specially designed data structure index of 1d array = length of tokens\r\n newAr[x] = newAr[x] || []\r\n for (var y = 0; y < newAr[x].length; y++) {\r\n if (tokens[i].token === newAr[x][y]) {\r\n temp = token.indexOf(newAr[x][y])\r\n break\r\n }\r\n }\r\n if (temp === -1) {\r\n token.push(tokens[i].token)\r\n type.push(tokens[i].type)\r\n if (newAr.length <= tokens[i].token.length) {\r\n newAr[tokens[i].token.length] = []\r\n }\r\n newAr[tokens[i].token.length].push(tokens[i].token)\r\n eva.push(tokens[i].value)\r\n show.push(tokens[i].show)\r\n } else {\r\n // overwrite\r\n token[temp] = tokens[i].token\r\n type[temp] = tokens[i].type\r\n eva[temp] = tokens[i].value\r\n show[temp] = tokens[i].show\r\n }\r\n }\r\n}\r\n\r\nfunction tokenize (string) {\r\n var nodes = []\r\n var length = string.length\r\n var key, x, y\r\n for (var i = 0; i < length; i++) {\r\n if (i < length - 1 && string[i] === ' ' && string[i + 1] === ' ') {\r\n continue\r\n }\r\n key = ''\r\n for (\r\n x = string.length - i > newAr.length - 2 ? newAr.length - 1 : string.length - i;\r\n x > 0;\r\n x--\r\n ) {\r\n if (newAr[x] === undefined) continue\r\n for (y = 0; y < newAr[x].length; y++) {\r\n if (match(string, newAr[x][y], i, x)) {\r\n key = newAr[x][y]\r\n y = newAr[x].length\r\n x = 0\r\n }\r\n }\r\n }\r\n i += key.length - 1\r\n if (key === '') {\r\n throw new Mexp.Exception(\"Can't understand after \" + string.slice(i))\r\n }\r\n var index = token.indexOf(key)\r\n nodes.push({\r\n index: index,\r\n token: key,\r\n type: type[index],\r\n eval: eva[index],\r\n precedence: preced[type[index]],\r\n show: show[index]\r\n })\r\n }\r\n return nodes\r\n}\r\n\r\nMexp.lex = function (inp, tokens) {\r\n 'use strict'\r\n\r\n var changeSignObj = {\r\n value: Mexp.math.changeSign,\r\n type: 0,\r\n pre: 21,\r\n show: '-'\r\n }\r\n var closingParObj = {\r\n value: ')',\r\n show: ')',\r\n type: 5,\r\n pre: 0\r\n }\r\n var openingParObj = {\r\n value: '(',\r\n type: 4,\r\n pre: 0,\r\n show: '('\r\n }\r\n var str = [openingParObj]\r\n\r\n var ptc = [] // Parenthesis to close at the beginning is after one token\r\n var inpStr = inp\r\n var allowed = type0\r\n var bracToClose = 0\r\n var asterick = empty\r\n var prevKey = ''\r\n var i\r\n if (typeof tokens !== 'undefined') {\r\n Mexp.addToken(tokens)\r\n }\r\n var obj = {}\r\n var nodes = tokenize(inpStr)\r\n for (i = 0; i < nodes.length; i++) {\r\n var node = nodes[i]\r\n if (node.type === 14) {\r\n if (\r\n i > 0 &&\r\n i < nodes.length - 1 &&\r\n nodes[i + 1].type === 1 &&\r\n (nodes[i - 1].type === 1 || nodes[i - 1].type === 6)\r\n ) { throw new Mexp.Exception('Unexpected Space') }\r\n continue\r\n }\r\n var cToken = node.token\r\n var cType = node.type\r\n var cEv = node.eval\r\n var cPre = node.precedence\r\n var cShow = node.show\r\n var pre = str[str.length - 1]\r\n var j\r\n for (j = ptc.length; j--;) {\r\n // loop over ptc\r\n if (ptc[j] === 0) {\r\n if ([0, 2, 3, 4, 5, 9, 11, 12, 13].indexOf(cType) !== -1) {\r\n if (allowed[cType] !== true) {\r\n throw new Mexp.Exception(cToken + ' is not allowed after ' + prevKey)\r\n }\r\n str.push(closingParObj)\r\n allowed = type1\r\n asterick = type3Asterick\r\n inc(ptc, -1).pop()\r\n }\r\n } else break\r\n }\r\n if (allowed[cType] !== true) {\r\n throw new Mexp.Exception(cToken + ' is not allowed after ' + prevKey)\r\n }\r\n if (asterick[cType] === true) {\r\n cType = 2\r\n cEv = Mexp.math.mul\r\n cShow = '×'\r\n cPre = 3\r\n i = i - 1\r\n }\r\n obj = {\r\n value: cEv,\r\n type: cType,\r\n pre: cPre,\r\n show: cShow\r\n }\r\n if (cType === 0) {\r\n allowed = type0\r\n asterick = empty\r\n inc(ptc, 2).push(2)\r\n str.push(obj)\r\n str.push(openingParObj)\r\n } else if (cType === 1) {\r\n if (pre.type === 1) {\r\n pre.value += cEv\r\n inc(ptc, 1)\r\n } else {\r\n str.push(obj)\r\n }\r\n allowed = type1\r\n asterick = type1Asterick\r\n } else if (cType === 2) {\r\n allowed = type0\r\n asterick = empty\r\n inc(ptc, 2)\r\n str.push(obj)\r\n } else if (cType === 3) {\r\n // constant\r\n str.push(obj)\r\n allowed = type1\r\n asterick = type3Asterick\r\n } else if (cType === 4) {\r\n inc(ptc, 1)\r\n bracToClose++\r\n allowed = type0\r\n asterick = empty\r\n str.push(obj)\r\n } else if (cType === 5) {\r\n if (!bracToClose) {\r\n throw new Mexp.Exception('Closing parenthesis are more than opening one, wait What!!!')\r\n }\r\n bracToClose--\r\n allowed = type1\r\n asterick = type3Asterick\r\n str.push(obj)\r\n inc(ptc, 1)\r\n } else if (cType === 6) {\r\n if (pre.hasDec) {\r\n throw new Mexp.Exception('Two decimals are not allowed in one number')\r\n }\r\n if (pre.type !== 1) {\r\n pre = {\r\n value: 0,\r\n type: 1,\r\n pre: 0\r\n } // pre needs to be changed as it will the last value now to be safe in later code\r\n str.push(pre)\r\n inc(ptc, -1)\r\n }\r\n allowed = type6\r\n inc(ptc, 1)\r\n asterick = empty\r\n pre.value += cEv\r\n pre.hasDec = true\r\n } else if (cType === 7) {\r\n allowed = type1\r\n asterick = type3Asterick\r\n inc(ptc, 1)\r\n str.push(obj)\r\n }\r\n if (cType === 8) {\r\n allowed = type0\r\n asterick = empty\r\n inc(ptc, 4).push(4)\r\n str.push(obj)\r\n str.push(openingParObj)\r\n } else if (cType === 9) {\r\n if (pre.type === 9) {\r\n if (pre.value === Mexp.math.add) {\r\n pre.value = cEv\r\n pre.show = cShow\r\n inc(ptc, 1)\r\n } else if (pre.value === Mexp.math.sub && cShow === '-') {\r\n pre.value = Mexp.math.add\r\n pre.show = '+'\r\n inc(ptc, 1)\r\n }\r\n } else if (\r\n pre.type !== 5 &&\r\n pre.type !== 7 &&\r\n pre.type !== 1 &&\r\n pre.type !== 3 &&\r\n pre.type !== 13\r\n ) {\r\n // changesign only when negative is found\r\n if (cToken === '-') {\r\n // do nothing for + token\r\n // don't add with the above if statement as that will run the else statement of parent if on Ctoken +\r\n allowed = type0\r\n asterick = empty\r\n inc(ptc, 2).push(2)\r\n str.push(changeSignObj)\r\n str.push(openingParObj)\r\n }\r\n } else {\r\n str.push(obj)\r\n inc(ptc, 2)\r\n }\r\n allowed = type0\r\n asterick = empty\r\n } else if (cType === 10) {\r\n allowed = type0\r\n asterick = empty\r\n inc(ptc, 2)\r\n str.push(obj)\r\n } else if (cType === 11) {\r\n allowed = type0\r\n asterick = empty\r\n str.push(obj)\r\n } else if (cType === 12) {\r\n allowed = type0\r\n asterick = empty\r\n inc(ptc, 6).push(6)\r\n str.push(obj)\r\n str.push(openingParObj)\r\n } else if (cType === 13) {\r\n allowed = type1\r\n asterick = type3Asterick\r\n str.push(obj)\r\n }\r\n inc(ptc, -1)\r\n prevKey = cToken\r\n }\r\n for (j = ptc.length; j--;) {\r\n // loop over ptc\r\n if (ptc[j] === 0) {\r\n str.push(closingParObj)\r\n inc(ptc, -1).pop()\r\n } else break // if it is not zero so before ptc also cant be zero\r\n }\r\n if (allowed[5] !== true) {\r\n throw new Mexp.Exception('complete the expression')\r\n }\r\n while (bracToClose--) {\r\n str.push(closingParObj)\r\n }\r\n\r\n str.push(closingParObj)\r\n // console.log(str);\r\n return new Mexp(str)\r\n}\r\nmodule.exports = Mexp\r\n","\"use strict\";\r\nvar Mexp = function (parsed) {\r\n this.value = parsed\r\n}\r\n\r\nMexp.math = {\r\n isDegree: true, // mode of calculator\r\n acos: function (x) {\r\n return (Mexp.math.isDegree ? 180 / Math.PI * Math.acos(x) : Math.acos(x))\r\n },\r\n add: function (a, b) {\r\n return a + b\r\n },\r\n asin: function (x) {\r\n return (Mexp.math.isDegree ? 180 / Math.PI * Math.asin(x) : Math.asin(x))\r\n },\r\n atan: function (x) {\r\n return (Mexp.math.isDegree ? 180 / Math.PI * Math.atan(x) : Math.atan(x))\r\n },\r\n acosh: function (x) {\r\n return Math.log(x + Math.sqrt(x * x - 1))\r\n },\r\n asinh: function (x) {\r\n return Math.log(x + Math.sqrt(x * x + 1))\r\n },\r\n atanh: function (x) {\r\n return Math.log((1 + x) / (1 - x))\r\n },\r\n C: function (n, r) {\r\n var pro = 1\r\n var other = n - r\r\n var choice = r\r\n if (choice < other) {\r\n choice = other\r\n other = r\r\n }\r\n for (var i = choice + 1; i <= n; i++) {\r\n pro *= i\r\n }\r\n return pro / Mexp.math.fact(other)\r\n },\r\n changeSign: function (x) {\r\n return -x\r\n },\r\n cos: function (x) {\r\n if (Mexp.math.isDegree) x = Mexp.math.toRadian(x)\r\n return Math.cos(x)\r\n },\r\n cosh: function (x) {\r\n return (Math.pow(Math.E, x) + Math.pow(Math.E, -1 * x)) / 2\r\n },\r\n div: function (a, b) {\r\n return a / b\r\n },\r\n fact: function (n) {\r\n if (n % 1 !== 0) return 'NaN'\r\n var pro = 1\r\n for (var i = 2; i <= n; i++) {\r\n pro *= i\r\n }\r\n return pro\r\n },\r\n inverse: function (x) {\r\n return 1 / x\r\n },\r\n log: function (i) {\r\n return Math.log(i) / Math.log(10)\r\n },\r\n mod: function (a, b) {\r\n return a % b\r\n },\r\n mul: function (a, b) {\r\n return a * b\r\n },\r\n P: function (n, r) {\r\n var pro = 1\r\n for (var i = Math.floor(n) - Math.floor(r) + 1; i <= Math.floor(n); i++) {\r\n pro *= i\r\n }\r\n return pro\r\n },\r\n Pi: function (low, high, ex) {\r\n var pro = 1\r\n for (var i = low; i <= high; i++) {\r\n pro *= Number(ex.postfixEval({\r\n n: i\r\n }))\r\n }\r\n return pro\r\n },\r\n pow10x: function (e) {\r\n var x = 1\r\n while (e--) {\r\n x *= 10\r\n }\r\n return x\r\n },\r\n sigma: function (low, high, ex) {\r\n var sum = 0\r\n for (var i = low; i <= high; i++) {\r\n sum += Number(ex.postfixEval({\r\n n: i\r\n }))\r\n }\r\n return sum\r\n },\r\n sin: function (x) {\r\n if (Mexp.math.isDegree) x = Mexp.math.toRadian(x)\r\n return Math.sin(x)\r\n },\r\n sinh: function (x) {\r\n return (Math.pow(Math.E, x) - Math.pow(Math.E, -1 * x)) / 2\r\n },\r\n sub: function (a, b) {\r\n return a - b\r\n },\r\n tan: function (x) {\r\n if (Mexp.math.isDegree) x = Mexp.math.toRadian(x)\r\n return Math.tan(x)\r\n },\r\n tanh: function (x) {\r\n return Mexp.sinha(x) / Mexp.cosha(x)\r\n },\r\n toRadian: function (x) {\r\n return x * Math.PI / 180\r\n }\r\n}\r\nMexp.Exception = function (message) {\r\n this.message = message\r\n}\r\nmodule.exports = Mexp\r\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 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 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 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 baseRange = require('./_baseRange'),\n isIterateeCall = require('./_isIterateeCall'),\n toFinite = require('./toFinite');\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nmodule.exports = createRange;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nmodule.exports = baseRange;\n","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 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","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n// find the complete implementation of crypto (msCrypto) on IE11.\nvar getRandomValues = typeof crypto != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto != 'undefined' && typeof msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto);\nvar rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\nexport default function rng() {\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n\n return getRandomValues(rnds8);\n}","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n\n return [bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]]].join('');\n}\n\nexport default bytesToUuid;","import rng from './rng.js';\nimport bytesToUuid from './bytesToUuid.js';\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof options == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nexport default v4;","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\n\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || typeof value === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n * if the first argument is not an instance of Date.\n * Instead, argument is converted beforehand using `toDate`.\n *\n * Examples:\n *\n * | `isValid` argument | Before v2.0.0 | v2.0.0 onward |\n * |---------------------------|---------------|---------------|\n * | `new Date()` | `true` | `true` |\n * | `new Date('2016-01-01')` | `true` | `true` |\n * | `new Date('')` | `false` | `false` |\n * | `new Date(1488370835081)` | `true` | `true` |\n * | `new Date(NaN)` | `false` | `false` |\n * | `'2016-01-01'` | `TypeError` | `false` |\n * | `''` | `TypeError` | `false` |\n * | `1488370835081` | `TypeError` | `true` |\n * | `NaN` | `TypeError` | `false` |\n *\n * We introduce this change to make *date-fns* consistent with ECMAScript behavior\n * that try to coerce arguments to the expected type\n * (which is also the case with other *date-fns* functions).\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\n\nvar formatDistance = function (token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n};\n\nexport default formatDistance;","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\n\nvar formatRelative = function (token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n}; // Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nvar ordinalNumber = function (dirtyNumber, _options) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n};\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function (date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function (date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function (date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function (date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaa':\n return dayPeriodEnumValue;\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function (date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function (date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function (date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function (date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function (date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate, dirtyOptions);\n var year = date.getUTCFullYear();\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toInteger from \"../toInteger/index.js\";\nimport getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, dirtyOptions);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import lightFormatters from \"../lightFormatters/index.js\";\nimport getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function (date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function (date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function (date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function (date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function (date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function (date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function (date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function (date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function (date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return lightFormatters.m(date, token);\n },\n // Second\n s: function (date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;","function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n}\n\nfunction timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n}\n\nfunction dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/);\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n}\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n }\n}","import isValid from \"../isValid/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 9. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n * ```javascript\n * // Before v2.0.0\n * format(new Date(2016, 0, 1))\n *\n * // v2.0.0 onward\n * format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n * ```\n *\n * - New format string API for `format` function\n * which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n * See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, formatterOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'menos de un segundo',\n other: 'menos de {{count}} segundos'\n },\n xSeconds: {\n one: '1 segundo',\n other: '{{count}} segundos'\n },\n halfAMinute: 'medio minuto',\n lessThanXMinutes: {\n one: 'menos de un minuto',\n other: 'menos de {{count}} minutos'\n },\n xMinutes: {\n one: '1 minuto',\n other: '{{count}} minutos'\n },\n aboutXHours: {\n one: 'alrededor de 1 hora',\n other: 'alrededor de {{count}} horas'\n },\n xHours: {\n one: '1 hora',\n other: '{{count}} horas'\n },\n xDays: {\n one: '1 día',\n other: '{{count}} días'\n },\n aboutXWeeks: {\n one: 'alrededor de 1 semana',\n other: 'alrededor de {{count}} semanas'\n },\n xWeeks: {\n one: '1 semana',\n other: '{{count}} semanas'\n },\n aboutXMonths: {\n one: 'alrededor de 1 mes',\n other: 'alrededor de {{count}} meses'\n },\n xMonths: {\n one: '1 mes',\n other: '{{count}} meses'\n },\n aboutXYears: {\n one: 'alrededor de 1 año',\n other: 'alrededor de {{count}} años'\n },\n xYears: {\n one: '1 año',\n other: '{{count}} años'\n },\n overXYears: {\n one: 'más de 1 año',\n other: 'más de {{count}} años'\n },\n almostXYears: {\n one: 'casi 1 año',\n other: 'casi {{count}} años'\n }\n};\nexport default function formatDistance(token, count, options) {\n options = options || {};\n var result;\n\n if (typeof formatDistanceLocale[token] === 'string') {\n result = formatDistanceLocale[token];\n } else if (count === 1) {\n result = formatDistanceLocale[token].one;\n } else {\n result = formatDistanceLocale[token].other.replace('{{count}}', count);\n }\n\n if (options.addSuffix) {\n if (options.comparison > 0) {\n return 'en ' + result;\n } else {\n return 'hace ' + result;\n }\n }\n\n return result;\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: \"EEEE, d 'de' MMMM 'de' y\",\n long: \"d 'de' MMMM 'de' y\",\n medium: 'd MMM y',\n short: 'dd/MM/y'\n};\nvar timeFormats = {\n full: 'HH:mm:ss zzzz',\n long: 'HH:mm:ss z',\n medium: 'HH:mm:ss',\n short: 'HH:mm'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'a las' {{time}}\",\n long: \"{{date}} 'a las' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'el' eeee 'pasado a la' p\",\n yesterday: \"'ayer a la' p\",\n today: \"'hoy a la' p\",\n tomorrow: \"'mañana a la' p\",\n nextWeek: \"eeee 'a la' p\",\n other: 'P'\n};\nvar formatRelativeLocalePlural = {\n lastWeek: \"'el' eeee 'pasado a las' p\",\n yesterday: \"'ayer a las' p\",\n today: \"'hoy a las' p\",\n tomorrow: \"'mañana a las' p\",\n nextWeek: \"eeee 'a las' p\",\n other: 'P'\n};\nexport default function formatRelative(token, date, _baseDate, _options) {\n if (date.getUTCHours() !== 1) {\n return formatRelativeLocalePlural[token];\n }\n\n return formatRelativeLocale[token];\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['AC', 'DC'],\n abbreviated: ['AC', 'DC'],\n wide: ['antes de cristo', 'después de cristo']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['T1', 'T2', 'T3', 'T4'],\n wide: ['1º trimestre', '2º trimestre', '3º trimestre', '4º trimestre']\n};\nvar monthValues = {\n narrow: ['e', 'f', 'm', 'a', 'm', 'j', 'j', 'a', 's', 'o', 'n', 'd'],\n abbreviated: ['ene', 'feb', 'mar', 'abr', 'may', 'jun', 'jul', 'ago', 'sep', 'oct', 'nov', 'dic'],\n wide: ['enero', 'febrero', 'marzo', 'abril', 'mayo', 'junio', 'julio', 'agosto', 'septiembre', 'octubre', 'noviembre', 'diciembre']\n};\nvar dayValues = {\n narrow: ['d', 'l', 'm', 'm', 'j', 'v', 's'],\n short: ['do', 'lu', 'ma', 'mi', 'ju', 'vi', 'sa'],\n abbreviated: ['dom', 'lun', 'mar', 'mié', 'jue', 'vie', 'sáb'],\n wide: ['domingo', 'lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mn',\n noon: 'md',\n morning: 'mañana',\n afternoon: 'tarde',\n evening: 'tarde',\n night: 'noche'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'medianoche',\n noon: 'mediodia',\n morning: 'mañana',\n afternoon: 'tarde',\n evening: 'tarde',\n night: 'noche'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'medianoche',\n noon: 'mediodia',\n morning: 'mañana',\n afternoon: 'tarde',\n evening: 'tarde',\n night: 'noche'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mn',\n noon: 'md',\n morning: 'de la mañana',\n afternoon: 'de la tarde',\n evening: 'de la tarde',\n night: 'de la noche'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'medianoche',\n noon: 'mediodia',\n morning: 'de la mañana',\n afternoon: 'de la tarde',\n evening: 'de la tarde',\n night: 'de la noche'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'medianoche',\n noon: 'mediodia',\n morning: 'de la mañana',\n afternoon: 'de la tarde',\n evening: 'de la tarde',\n night: 'de la noche'\n }\n};\n\nfunction ordinalNumber(dirtyNumber) {\n var number = Number(dirtyNumber);\n return number + 'º';\n}\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return Number(quarter) - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary Spanish locale.\n * @language Spanish\n * @iso-639-2 spa\n * @author Juan Angosto [@juanangosto]{@link https://github.com/juanangosto}\n * @author Guillermo Grau [@guigrpa]{@link https://github.com/guigrpa}\n * @author Fernando Agüero [@fjaguero]{@link https://github.com/fjaguero}\n * @author Gastón Haro [@harogaston]{@link https://github.com/harogaston}\n * @author Yago Carballo [@YagoCarballo]{@link https://github.com/YagoCarballo}\n */\n\nvar locale = {\n code: 'es',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 1\n /* Monday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nimport buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(º)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(ac|dc|a|d)/i,\n abbreviated: /^(a\\.?\\s?c\\.?|a\\.?\\s?e\\.?\\s?c\\.?|d\\.?\\s?c\\.?|e\\.?\\s?c\\.?)/i,\n wide: /^(antes de cristo|antes de la era com[uú]n|despu[eé]s de cristo|era com[uú]n)/i\n};\nvar parseEraPatterns = {\n any: [/^ac/i, /^dc/i],\n wide: [/^(antes de cristo|antes de la era com[uú]n)/i, /^(despu[eé]s de cristo|era com[uú]n)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^T[1234]/i,\n wide: /^[1234](º)? trimestre/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[efmajsond]/i,\n abbreviated: /^(ene|feb|mar|abr|may|jun|jul|ago|sep|oct|nov|dic)/i,\n wide: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^e/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^en/i, /^feb/i, /^mar/i, /^abr/i, /^may/i, /^jun/i, /^jul/i, /^ago/i, /^sep/i, /^oct/i, /^nov/i, /^dic/i]\n};\nvar matchDayPatterns = {\n narrow: /^[dlmjvs]/i,\n short: /^(do|lu|ma|mi|ju|vi|sa)/i,\n abbreviated: /^(dom|lun|mar|mie|jue|vie|sab)/i,\n wide: /^(domingo|lunes|martes|mi[ée]rcoles|jueves|viernes|s[áa]bado)/i\n};\nvar parseDayPatterns = {\n narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^j/i, /^v/i, /^s/i],\n any: [/^do/i, /^lu/i, /^ma/i, /^mi/i, /^ju/i, /^vi/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mn|md|(de la|a las) (mañana|tarde|noche))/i,\n any: /^([ap]\\.?\\s?m\\.?|medianoche|mediodia|(de la|a las) (mañana|tarde|noche))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mn/i,\n noon: /^md/i,\n morning: /mañana/i,\n afternoon: /tarde/i,\n evening: /tarde/i,\n night: /noche/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export function warn() {\n if (console && console.warn) {\n var _console;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'string') args[0] = \"react-i18next:: \".concat(args[0]);\n\n (_console = console).warn.apply(_console, args);\n }\n}\nvar alreadyWarned = {};\nexport function warnOnce() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' && alreadyWarned[args[0]]) return;\n if (typeof args[0] === 'string') alreadyWarned[args[0]] = new Date();\n warn.apply(void 0, args);\n}\nexport function loadNamespaces(i18n, ns, cb) {\n i18n.loadNamespaces(ns, function () {\n if (i18n.isInitialized) {\n cb();\n } else {\n var initialized = function initialized() {\n setTimeout(function () {\n i18n.off('initialized', initialized);\n }, 0);\n cb();\n };\n\n i18n.on('initialized', initialized);\n }\n });\n}\nexport function hasLoadedNamespace(ns, i18n) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (!i18n.languages || !i18n.languages.length) {\n warnOnce('i18n.languages were undefined or empty', i18n.languages);\n return true;\n }\n\n var lng = i18n.languages[0];\n var fallbackLng = i18n.options ? i18n.options.fallbackLng : false;\n var lastLng = i18n.languages[i18n.languages.length - 1];\n if (lng.toLowerCase() === 'cimode') return true;\n\n var loadNotPending = function loadNotPending(l, n) {\n var loadState = i18n.services.backendConnector.state[\"\".concat(l, \"|\").concat(n)];\n return loadState === -1 || loadState === 2;\n };\n\n if (options.bindI18n && options.bindI18n.indexOf('languageChanging') > -1 && i18n.services.backendConnector.backend && i18n.isLanguageChangingTo && !loadNotPending(i18n.isLanguageChangingTo, ns)) return false;\n if (i18n.hasResourceBundle(lng, ns)) return true;\n if (!i18n.services.backendConnector.backend) return true;\n if (loadNotPending(lng, ns) && (!fallbackLng || loadNotPending(lastLng, ns))) return true;\n return false;\n}\nexport function getDisplayName(Component) {\n return Component.displayName || Component.name || (typeof Component === 'string' && Component.length > 0 ? Component : 'Unknown');\n}","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport { useState, useEffect, useContext, useRef } from 'react';\nimport { getI18n, getDefaults, ReportNamespaces, I18nContext } from './context';\nimport { warnOnce, loadNamespaces, hasLoadedNamespace } from './utils';\nexport function useTranslation(ns) {\n var props = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var i18nFromProps = props.i18n;\n\n var _ref = useContext(I18nContext) || {},\n i18nFromContext = _ref.i18n,\n defaultNSFromContext = _ref.defaultNS;\n\n var i18n = i18nFromProps || i18nFromContext || getI18n();\n if (i18n && !i18n.reportNamespaces) i18n.reportNamespaces = new ReportNamespaces();\n\n if (!i18n) {\n warnOnce('You will need to pass in an i18next instance by using initReactI18next');\n\n var notReadyT = function notReadyT(k) {\n return Array.isArray(k) ? k[k.length - 1] : k;\n };\n\n var retNotReady = [notReadyT, {}, false];\n retNotReady.t = notReadyT;\n retNotReady.i18n = {};\n retNotReady.ready = false;\n return retNotReady;\n }\n\n if (i18n.options.react && i18n.options.react.wait !== undefined) warnOnce('It seems you are still using the old wait option, you may migrate to the new useSuspense behaviour.');\n\n var i18nOptions = _objectSpread(_objectSpread(_objectSpread({}, getDefaults()), i18n.options.react), props);\n\n var useSuspense = i18nOptions.useSuspense,\n keyPrefix = i18nOptions.keyPrefix;\n var namespaces = ns || defaultNSFromContext || i18n.options && i18n.options.defaultNS;\n namespaces = typeof namespaces === 'string' ? [namespaces] : namespaces || ['translation'];\n if (i18n.reportNamespaces.addUsedNamespaces) i18n.reportNamespaces.addUsedNamespaces(namespaces);\n var ready = (i18n.isInitialized || i18n.initializedStoreOnce) && namespaces.every(function (n) {\n return hasLoadedNamespace(n, i18n, i18nOptions);\n });\n\n function getT() {\n return i18n.getFixedT(null, i18nOptions.nsMode === 'fallback' ? namespaces : namespaces[0], keyPrefix);\n }\n\n var _useState = useState(getT),\n _useState2 = _slicedToArray(_useState, 2),\n t = _useState2[0],\n setT = _useState2[1];\n\n var isMounted = useRef(true);\n useEffect(function () {\n var bindI18n = i18nOptions.bindI18n,\n bindI18nStore = i18nOptions.bindI18nStore;\n isMounted.current = true;\n\n if (!ready && !useSuspense) {\n loadNamespaces(i18n, namespaces, function () {\n if (isMounted.current) setT(getT);\n });\n }\n\n function boundReset() {\n if (isMounted.current) setT(getT);\n }\n\n if (bindI18n && i18n) i18n.on(bindI18n, boundReset);\n if (bindI18nStore && i18n) i18n.store.on(bindI18nStore, boundReset);\n return function () {\n isMounted.current = false;\n if (bindI18n && i18n) bindI18n.split(' ').forEach(function (e) {\n return i18n.off(e, boundReset);\n });\n if (bindI18nStore && i18n) bindI18nStore.split(' ').forEach(function (e) {\n return i18n.store.off(e, boundReset);\n });\n };\n }, [i18n, namespaces.join()]);\n var isInitial = useRef(true);\n useEffect(function () {\n if (isMounted.current && !isInitial.current) {\n setT(getT);\n }\n\n isInitial.current = false;\n }, [i18n]);\n var ret = [t, i18n, ready];\n ret.t = t;\n ret.i18n = i18n;\n ret.ready = ready;\n if (ready) return ret;\n if (!ready && !useSuspense) return ret;\n throw new Promise(function (resolve) {\n loadNamespaces(i18n, namespaces, function () {\n resolve();\n });\n });\n}"],"sourceRoot":""}