@actual-app/web 23.5.0 → 23.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/build/asset-manifest.json +14 -46
  2. package/build/data/migrations/1685007876842_add_category_hidden.sql +6 -0
  3. package/build/data/migrations/1685375406832_transaction_filters.sql +10 -0
  4. package/build/data/migrations/1686139660866_remove_account_type.sql +5 -0
  5. package/build/data-file-index.txt +3 -0
  6. package/build/index.html +1 -1
  7. package/build/kcab/kcab.worker.d3b18567995ce96e3239.js +3 -0
  8. package/build/kcab/kcab.worker.d3b18567995ce96e3239.js.LICENSE.txt +24 -0
  9. package/build/kcab/kcab.worker.d3b18567995ce96e3239.js.map +1 -0
  10. package/build/kcab/xfo.xfo.kcab.worker.e800a4a41b9557f2726d.js +1 -0
  11. package/build/sql-wasm.wasm +0 -0
  12. package/build/static/css/main.1037ae74.css +7 -0
  13. package/build/static/css/main.1037ae74.css.map +1 -0
  14. package/build/static/js/457.e2e3c7b2.chunk.js +2 -0
  15. package/build/static/js/457.e2e3c7b2.chunk.js.map +1 -0
  16. package/build/static/js/{969.91b242b7.chunk.js → 969.98ab5142.chunk.js} +2 -2
  17. package/build/static/js/{969.91b242b7.chunk.js.map → 969.98ab5142.chunk.js.map} +1 -1
  18. package/build/static/js/main.127f6bd4.js +3 -0
  19. package/build/static/js/{main.8c52ae96.js.LICENSE.txt → main.127f6bd4.js.LICENSE.txt} +69 -8
  20. package/build/static/js/main.127f6bd4.js.map +1 -0
  21. package/build/static/js/reports.51bcc145.chunk.js +2 -0
  22. package/build/static/js/reports.51bcc145.chunk.js.map +1 -0
  23. package/build/static/js/{145.f5f301ec.chunk.js → resize-observer-polyfill.a2fa22b1.chunk.js} +2 -2
  24. package/build/static/js/resize-observer-polyfill.a2fa22b1.chunk.js.map +1 -0
  25. package/package.json +21 -20
  26. package/build/codemirror.css +0 -341
  27. package/build/kcab/kcab.worker.e2ee9d65fbc7d1214a04.js +0 -32
  28. package/build/kcab/kcab.worker.e2ee9d65fbc7d1214a04.js.map +0 -1
  29. package/build/kcab/xfo.kcab.worker.e2ee9d65fbc7d1214a04.js +0 -1
  30. package/build/monokai.css +0 -36
  31. package/build/sql-wasm-debug.wasm +0 -0
  32. package/build/static/css/main.5456b6c5.css +0 -7
  33. package/build/static/css/main.5456b6c5.css.map +0 -1
  34. package/build/static/js/145.f5f301ec.chunk.js.map +0 -1
  35. package/build/static/js/main.8c52ae96.js +0 -3
  36. package/build/static/js/main.8c52ae96.js.map +0 -1
  37. package/build/static/media/Inter-Black.15ca31c0a2a68f76d2d1.woff2 +0 -0
  38. package/build/static/media/Inter-Black.c6938660eec019fefd68.woff +0 -0
  39. package/build/static/media/Inter-BlackItalic.ca1e738e4f349f27514d.woff +0 -0
  40. package/build/static/media/Inter-BlackItalic.cb2a7335650c690077fe.woff2 +0 -0
  41. package/build/static/media/Inter-Bold.93c1301bd9f486c573b3.woff +0 -0
  42. package/build/static/media/Inter-Bold.ec64ea577b0349e055ad.woff2 +0 -0
  43. package/build/static/media/Inter-BoldItalic.2d26c56a606662486796.woff2 +0 -0
  44. package/build/static/media/Inter-BoldItalic.b376885042f6c961a541.woff +0 -0
  45. package/build/static/media/Inter-ExtraBold.cbe0ae49c52c920fd563.woff2 +0 -0
  46. package/build/static/media/Inter-ExtraBold.d0fa3bb2b7c9063dc594.woff +0 -0
  47. package/build/static/media/Inter-ExtraBoldItalic.535a6cf662596b3bd6a6.woff2 +0 -0
  48. package/build/static/media/Inter-ExtraBoldItalic.6ab17abedc4d3f140953.woff +0 -0
  49. package/build/static/media/Inter-ExtraLight.72505e6a122c6acd5471.woff2 +0 -0
  50. package/build/static/media/Inter-ExtraLight.c4248615291a9e8f1fb7.woff +0 -0
  51. package/build/static/media/Inter-ExtraLightItalic.170dddfca278d3c2ad4a.woff +0 -0
  52. package/build/static/media/Inter-ExtraLightItalic.5c7d7d6deb1d2ec8d48c.woff2 +0 -0
  53. package/build/static/media/Inter-Italic.890025e726861dba417f.woff +0 -0
  54. package/build/static/media/Inter-Italic.cb10ffd7684cd9836a05.woff2 +0 -0
  55. package/build/static/media/Inter-Light.2d5198822ab091ce4305.woff2 +0 -0
  56. package/build/static/media/Inter-Light.994e34451cc19ede31d3.woff +0 -0
  57. package/build/static/media/Inter-LightItalic.ef9f65d91d2b0ba9b2e4.woff +0 -0
  58. package/build/static/media/Inter-LightItalic.f86952265d7b0f02c921.woff2 +0 -0
  59. package/build/static/media/Inter-Medium.293fd13dbca5a3e450ef.woff2 +0 -0
  60. package/build/static/media/Inter-Medium.9053572c46aeb4b16caa.woff +0 -0
  61. package/build/static/media/Inter-MediumItalic.085cb93e613ba3d40d2b.woff2 +0 -0
  62. package/build/static/media/Inter-MediumItalic.3d0107dd43d0101274d3.woff +0 -0
  63. package/build/static/media/Inter-Regular.8c206db99195777c6769.woff +0 -0
  64. package/build/static/media/Inter-Regular.c8ba52b05a9ef10f4758.woff2 +0 -0
  65. package/build/static/media/Inter-SemiBold.b5f0f109bc88052d4000.woff2 +0 -0
  66. package/build/static/media/Inter-SemiBold.cca62d21c8c555c392e5.woff +0 -0
  67. package/build/static/media/Inter-SemiBoldItalic.463bdbfb28abad0fa6df.woff +0 -0
  68. package/build/static/media/Inter-SemiBoldItalic.d9467ee321a8f38aefff.woff2 +0 -0
  69. package/build/static/media/Inter-Thin.29b9c616a95a912abf73.woff +0 -0
  70. package/build/static/media/Inter-Thin.fff2a096db014f6239d4.woff2 +0 -0
  71. package/build/static/media/Inter-ThinItalic.bae95eb2f889c797e435.woff +0 -0
  72. package/build/static/media/Inter-ThinItalic.bf213704dce6b437ede4.woff2 +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"static/js/457.e2e3c7b2.chunk.js","mappings":"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","sources":["../../../node_modules/date-fns/esm/startOfDay/index.js","../../../node_modules/date-fns/esm/differenceInCalendarDays/index.js","../../../node_modules/delaunator/delaunator.js","../../../node_modules/delaunay-find/lib/index.js","../../../node_modules/json-stringify-safe/stringify.js","../../../node_modules/lodash/_DataView.js","../../../node_modules/lodash/_Hash.js","../../../node_modules/lodash/_ListCache.js","../../../node_modules/lodash/_Map.js","../../../node_modules/lodash/_MapCache.js","../../../node_modules/lodash/_Promise.js","../../../node_modules/lodash/_Set.js","../../../node_modules/lodash/_SetCache.js","../../../node_modules/lodash/_Stack.js","../../../node_modules/lodash/_Symbol.js","../../../node_modules/lodash/_Uint8Array.js","../../../node_modules/lodash/_WeakMap.js","../../../node_modules/lodash/_apply.js","../../../node_modules/lodash/_arrayAggregator.js","../../../node_modules/lodash/_arrayFilter.js","../../../node_modules/lodash/_arrayIncludes.js","../../../node_modules/lodash/_arrayIncludesWith.js","../../../node_modules/lodash/_arrayLikeKeys.js","../../../node_modules/lodash/_arrayMap.js","../../../node_modules/lodash/_arrayPush.js","../../../node_modules/lodash/_arraySome.js","../../../node_modules/lodash/_assignValue.js","../../../node_modules/lodash/_assocIndexOf.js","../../../node_modules/lodash/_baseAggregator.js","../../../node_modules/lodash/_baseAssignValue.js","../../../node_modules/lodash/_baseDifference.js","../../../node_modules/lodash/_baseEach.js","../../../node_modules/lodash/_baseFindIndex.js","../../../node_modules/lodash/_baseFlatten.js","../../../node_modules/lodash/_baseFor.js","../../../node_modules/lodash/_baseForOwn.js","../../../node_modules/lodash/_baseGet.js","../../../node_modules/lodash/_baseGetAllKeys.js","../../../node_modules/lodash/_baseGetTag.js","../../../node_modules/lodash/_baseHasIn.js","../../../node_modules/lodash/_baseIndexOf.js","../../../node_modules/lodash/_baseInverter.js","../../../node_modules/lodash/_baseIsArguments.js","../../../node_modules/lodash/_baseIsDate.js","../../../node_modules/lodash/_baseIsEqual.js","../../../node_modules/lodash/_baseIsEqualDeep.js","../../../node_modules/lodash/_baseIsMatch.js","../../../node_modules/lodash/_baseIsNaN.js","../../../node_modules/lodash/_baseIsNative.js","../../../node_modules/lodash/_baseIsRegExp.js","../../../node_modules/lodash/_baseIsTypedArray.js","../../../node_modules/lodash/_baseIteratee.js","../../../node_modules/lodash/_baseKeys.js","../../../node_modules/lodash/_baseKeysIn.js","../../../node_modules/lodash/_baseMap.js","../../../node_modules/lodash/_baseMatches.js","../../../node_modules/lodash/_baseMatchesProperty.js","../../../node_modules/lodash/_baseOrderBy.js","../../../node_modules/lodash/_basePick.js","../../../node_modules/lodash/_basePickBy.js","../../../node_modules/lodash/_baseProperty.js","../../../node_modules/lodash/_basePropertyDeep.js","../../../node_modules/lodash/_baseRange.js","../../../node_modules/lodash/_baseRest.js","../../../node_modules/lodash/_baseSet.js","../../../node_modules/lodash/_baseSetToString.js","../../../node_modules/lodash/_baseSome.js","../../../node_modules/lodash/_baseSortBy.js","../../../node_modules/lodash/_baseSortedUniq.js","../../../node_modules/lodash/_baseTimes.js","../../../node_modules/lodash/_baseToString.js","../../../node_modules/lodash/_baseTrim.js","../../../node_modules/lodash/_baseUnary.js","../../../node_modules/lodash/_baseUniq.js","../../../node_modules/lodash/_baseValues.js","../../../node_modules/lodash/_cacheHas.js","../../../node_modules/lodash/_castPath.js","../../../node_modules/lodash/_compareAscending.js","../../../node_modules/lodash/_compareMultiple.js","../../../node_modules/lodash/_copyObject.js","../../../node_modules/lodash/_coreJsData.js","../../../node_modules/lodash/_createAggregator.js","../../../node_modules/lodash/_createAssigner.js","../../../node_modules/lodash/_createBaseEach.js","../../../node_modules/lodash/_createBaseFor.js","../../../node_modules/lodash/_createFind.js","../../../node_modules/lodash/_createInverter.js","../../../node_modules/lodash/_createRange.js","../../../node_modules/lodash/_createSet.js","../../../node_modules/lodash/_defineProperty.js","../../../node_modules/lodash/_equalArrays.js","../../../node_modules/lodash/_equalByTag.js","../../../node_modules/lodash/_equalObjects.js","../../../node_modules/lodash/_flatRest.js","../../../node_modules/lodash/_freeGlobal.js","../../../node_modules/lodash/_getAllKeys.js","../../../node_modules/lodash/_getAllKeysIn.js","../../../node_modules/lodash/_getMapData.js","../../../node_modules/lodash/_getMatchData.js","../../../node_modules/lodash/_getNative.js","../../../node_modules/lodash/_getPrototype.js","../../../node_modules/lodash/_getRawTag.js","../../../node_modules/lodash/_getSymbols.js","../../../node_modules/lodash/_getSymbolsIn.js","../../../node_modules/lodash/_getTag.js","../../../node_modules/lodash/_getValue.js","../../../node_modules/lodash/_hasPath.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/_isFlattenable.js","../../../node_modules/lodash/_isIndex.js","../../../node_modules/lodash/_isIterateeCall.js","../../../node_modules/lodash/_isKey.js","../../../node_modules/lodash/_isKeyable.js","../../../node_modules/lodash/_isMasked.js","../../../node_modules/lodash/_isPrototype.js","../../../node_modules/lodash/_isStrictComparable.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/_mapCacheClear.js","../../../node_modules/lodash/_mapCacheDelete.js","../../../node_modules/lodash/_mapCacheGet.js","../../../node_modules/lodash/_mapCacheHas.js","../../../node_modules/lodash/_mapCacheSet.js","../../../node_modules/lodash/_mapToArray.js","../../../node_modules/lodash/_matchesStrictComparable.js","../../../node_modules/lodash/_memoizeCapped.js","../../../node_modules/lodash/_nativeCreate.js","../../../node_modules/lodash/_nativeKeys.js","../../../node_modules/lodash/_nativeKeysIn.js","../../../node_modules/lodash/_nodeUtil.js","../../../node_modules/lodash/_objectToString.js","../../../node_modules/lodash/_overArg.js","../../../node_modules/lodash/_overRest.js","../../../node_modules/lodash/_root.js","../../../node_modules/lodash/_setCacheAdd.js","../../../node_modules/lodash/_setCacheHas.js","../../../node_modules/lodash/_setToArray.js","../../../node_modules/lodash/_setToString.js","../../../node_modules/lodash/_shortOut.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/_strictIndexOf.js","../../../node_modules/lodash/_stringToPath.js","../../../node_modules/lodash/_toKey.js","../../../node_modules/lodash/_toSource.js","../../../node_modules/lodash/_trimmedEndIndex.js","../../../node_modules/lodash/assign.js","../../../node_modules/lodash/constant.js","../../../node_modules/lodash/debounce.js","../../../node_modules/lodash/defaults.js","../../../node_modules/lodash/difference.js","../../../node_modules/lodash/eq.js","../../../node_modules/lodash/find.js","../../../node_modules/lodash/findIndex.js","../../../node_modules/lodash/flatten.js","../../../node_modules/lodash/fromPairs.js","../../../node_modules/lodash/get.js","../../../node_modules/lodash/groupBy.js","../../../node_modules/lodash/hasIn.js","../../../node_modules/lodash/identity.js","../../../node_modules/lodash/includes.js","../../../node_modules/lodash/invert.js","../../../node_modules/lodash/isArguments.js","../../../node_modules/lodash/isArray.js","../../../node_modules/lodash/isArrayLike.js","../../../node_modules/lodash/isArrayLikeObject.js","../../../node_modules/lodash/isBuffer.js","../../../node_modules/lodash/isDate.js","../../../node_modules/lodash/isEmpty.js","../../../node_modules/lodash/isEqual.js","../../../node_modules/lodash/isFunction.js","../../../node_modules/lodash/isLength.js","../../../node_modules/lodash/isNil.js","../../../node_modules/lodash/isObject.js","../../../node_modules/lodash/isObjectLike.js","../../../node_modules/lodash/isPlainObject.js","../../../node_modules/lodash/isRegExp.js","../../../node_modules/lodash/isString.js","../../../node_modules/lodash/isSymbol.js","../../../node_modules/lodash/isTypedArray.js","../../../node_modules/lodash/isUndefined.js","../../../node_modules/lodash/keys.js","../../../node_modules/lodash/keysIn.js","../../../node_modules/lodash/last.js","../../../node_modules/lodash/memoize.js","../../../node_modules/lodash/negate.js","../../../node_modules/lodash/noop.js","../../../node_modules/lodash/now.js","../../../node_modules/lodash/omitBy.js","../../../node_modules/lodash/orderBy.js","../../../node_modules/lodash/pick.js","../../../node_modules/lodash/pickBy.js","../../../node_modules/lodash/property.js","../../../node_modules/lodash/range.js","../../../node_modules/lodash/some.js","../../../node_modules/lodash/sortedUniq.js","../../../node_modules/lodash/stubArray.js","../../../node_modules/lodash/stubFalse.js","../../../node_modules/lodash/throttle.js","../../../node_modules/lodash/toFinite.js","../../../node_modules/lodash/toInteger.js","../../../node_modules/lodash/toNumber.js","../../../node_modules/lodash/toString.js","../../../node_modules/lodash/uniq.js","../../../node_modules/lodash/uniqBy.js","../../../node_modules/lodash/uniqueId.js","../../../node_modules/lodash/values.js","../../../node_modules/lodash/without.js","../../../node_modules/react-fast-compare/index.js","../../../node_modules/victory-area/es/helper-methods.js","../../../node_modules/victory-area/es/area.js","../../../node_modules/victory-area/es/victory-area.js","../../../node_modules/victory-axis/es/helper-methods.js","../../../node_modules/victory-axis/es/victory-axis.js","../../../node_modules/victory-bar/es/helper-methods.js","../../../node_modules/victory-bar/es/bar-helper-methods.js","../../../node_modules/victory-bar/es/geometry-helper-methods.js","../../../node_modules/victory-bar/es/path-helper-methods.js","../../../node_modules/victory-bar/es/bar.js","../../../node_modules/victory-bar/es/victory-bar.js","../../../node_modules/victory-core/es/victory-primitives/background.js","../../../node_modules/victory-core/es/victory-primitives/arc.js","../../../node_modules/victory-polar-axis/es/helper-methods.js","../../../node_modules/victory-polar-axis/es/victory-polar-axis.js","../../../node_modules/victory-chart/es/helper-methods.js","../../../node_modules/victory-chart/es/victory-chart.js","../../../node_modules/victory-core/es/victory-primitives/clip-path.js","../../../node_modules/victory-core/es/victory-clip-container/victory-clip-container.js","../../../node_modules/victory-core/es/victory-portal/portal.js","../../../node_modules/victory-core/es/victory-container/victory-container.js","../../../node_modules/victory-core/es/victory-primitives/text.js","../../../node_modules/victory-core/es/victory-primitives/tspan.js","../../../node_modules/victory-core/es/victory-label/victory-label.js","../../../node_modules/victory-core/es/victory-portal/portal-context.js","../../../node_modules/victory-core/es/victory-portal/victory-portal.js","../../../node_modules/victory-core/es/victory-primitives/circle.js","../../../node_modules/victory-core/es/victory-primitives/line.js","../../../node_modules/victory-core/es/victory-primitives/line-segment.js","../../../node_modules/victory-core/es/victory-primitives/path.js","../../../node_modules/victory-core/es/victory-primitives/rect.js","../../../node_modules/victory-core/es/victory-theme/grayscale.js","../../../node_modules/victory-core/es/victory-theme/material.js","../../../node_modules/victory-core/es/victory-theme/victory-theme.js","../../../node_modules/d3-ease/src/linear.js","../../../node_modules/d3-ease/src/quad.js","../../../node_modules/d3-ease/src/cubic.js","../../../node_modules/d3-ease/src/poly.js","../../../node_modules/d3-ease/src/sin.js","../../../node_modules/d3-ease/src/math.js","../../../node_modules/d3-ease/src/exp.js","../../../node_modules/d3-ease/src/circle.js","../../../node_modules/d3-ease/src/bounce.js","../../../node_modules/d3-ease/src/back.js","../../../node_modules/d3-ease/src/elastic.js","../../../node_modules/victory-core/es/victory-animation/util.js","../../../node_modules/victory-core/es/victory-animation/victory-animation.js","../../../node_modules/victory-core/es/victory-transition/victory-transition.js","../../../node_modules/victory-core/es/victory-util/add-events.js","../../../node_modules/victory-core/es/victory-util/axis.js","../../../node_modules/victory-core/es/victory-util/collection.js","../../../node_modules/victory-core/es/victory-util/common-props.js","../../../node_modules/victory-core/es/victory-util/immutable.js","../../../node_modules/victory-core/es/victory-util/data.js","../../../node_modules/victory-core/es/victory-util/default-transitions.js","../../../node_modules/victory-core/es/victory-util/domain.js","../../../node_modules/victory-core/es/victory-util/events.js","../../../node_modules/victory-core/es/victory-util/helpers.js","../../../node_modules/victory-core/es/victory-util/hooks/use-animation-state.js","../../../node_modules/victory-core/es/victory-util/hooks/use-previous-props.js","../../../node_modules/victory-core/es/victory-util/label-helpers.js","../../../node_modules/d3-shape/src/descending.js","../../../node_modules/d3-shape/src/identity.js","../../../node_modules/d3-shape/src/pie.js","../../../node_modules/d3-shape/src/pointRadial.js","../../../node_modules/d3-shape/src/curve/bump.js","../../../node_modules/d3-shape/src/link.js","../../../node_modules/d3-shape/src/symbol/asterisk.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/diamond2.js","../../../node_modules/d3-shape/src/symbol/plus.js","../../../node_modules/d3-shape/src/symbol/square.js","../../../node_modules/d3-shape/src/symbol/square2.js","../../../node_modules/d3-shape/src/symbol/star.js","../../../node_modules/d3-shape/src/symbol/triangle.js","../../../node_modules/d3-shape/src/symbol/triangle2.js","../../../node_modules/d3-shape/src/symbol/wye.js","../../../node_modules/d3-shape/src/symbol/times.js","../../../node_modules/d3-shape/src/symbol.js","../../../node_modules/d3-shape/src/noop.js","../../../node_modules/d3-shape/src/curve/basis.js","../../../node_modules/d3-shape/src/curve/basisClosed.js","../../../node_modules/d3-shape/src/curve/basisOpen.js","../../../node_modules/d3-shape/src/curve/bundle.js","../../../node_modules/d3-shape/src/curve/cardinal.js","../../../node_modules/d3-shape/src/curve/cardinalClosed.js","../../../node_modules/d3-shape/src/curve/cardinalOpen.js","../../../node_modules/d3-shape/src/curve/catmullRom.js","../../../node_modules/d3-shape/src/curve/catmullRomClosed.js","../../../node_modules/d3-shape/src/curve/catmullRomOpen.js","../../../node_modules/d3-shape/src/curve/linearClosed.js","../../../node_modules/d3-shape/src/curve/monotone.js","../../../node_modules/d3-shape/src/curve/natural.js","../../../node_modules/d3-shape/src/curve/step.js","../../../node_modules/d3-shape/src/offset/none.js","../../../node_modules/d3-shape/src/order/none.js","../../../node_modules/d3-shape/src/stack.js","../../../node_modules/d3-shape/src/offset/expand.js","../../../node_modules/d3-shape/src/offset/diverging.js","../../../node_modules/d3-shape/src/offset/silhouette.js","../../../node_modules/d3-shape/src/offset/wiggle.js","../../../node_modules/d3-shape/src/order/appearance.js","../../../node_modules/d3-shape/src/order/ascending.js","../../../node_modules/d3-shape/src/order/descending.js","../../../node_modules/d3-shape/src/order/insideOut.js","../../../node_modules/d3-shape/src/order/reverse.js","../../../node_modules/victory-core/es/victory-util/line-helpers.js","../../../node_modules/victory-core/es/victory-util/log.js","../../../node_modules/victory-core/es/victory-util/prop-types.js","../../../node_modules/d3-scale/src/init.js","../../../node_modules/internmap/src/index.js","../../../node_modules/d3-scale/src/ordinal.js","../../../node_modules/d3-scale/src/band.js","../../../node_modules/d3-array/src/range.js","../../../node_modules/d3-array/src/ticks.js","../../../node_modules/d3-array/src/ascending.js","../../../node_modules/d3-array/src/descending.js","../../../node_modules/d3-array/src/bisector.js","../../../node_modules/d3-array/src/number.js","../../../node_modules/d3-array/src/bisect.js","../../../node_modules/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/formatPrefixAuto.js","../../../node_modules/d3-format/src/formatDecimal.js","../../../node_modules/d3-format/src/exponent.js","../../../node_modules/d3-format/src/formatRounded.js","../../../node_modules/d3-format/src/formatTypes.js","../../../node_modules/d3-format/src/identity.js","../../../node_modules/d3-format/src/locale.js","../../../node_modules/d3-format/src/defaultLocale.js","../../../node_modules/d3-format/src/formatGroup.js","../../../node_modules/d3-format/src/formatNumerals.js","../../../node_modules/d3-format/src/formatTrim.js","../../../node_modules/d3-scale/src/tickFormat.js","../../../node_modules/d3-format/src/precisionPrefix.js","../../../node_modules/d3-format/src/precisionRound.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/radial.js","../../../node_modules/d3-array/src/max.js","../../../node_modules/d3-array/src/min.js","../../../node_modules/d3-array/src/sort.js","../../../node_modules/d3-array/src/quickselect.js","../../../node_modules/d3-array/src/quantile.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/duration.js","../../../node_modules/d3-time/src/interval.js","../../../node_modules/d3-time/src/millisecond.js","../../../node_modules/d3-time/src/second.js","../../../node_modules/d3-time/src/minute.js","../../../node_modules/d3-time/src/hour.js","../../../node_modules/d3-time/src/day.js","../../../node_modules/d3-time/src/week.js","../../../node_modules/d3-time/src/month.js","../../../node_modules/d3-time/src/year.js","../../../node_modules/d3-time/src/ticks.js","../../../node_modules/d3-time-format/src/locale.js","../../../node_modules/d3-time-format/src/defaultLocale.js","../../../node_modules/d3-scale/src/time.js","../../../node_modules/d3-scale/src/utcTime.js","../../../node_modules/d3-scale/src/sequential.js","../../../node_modules/d3-scale/src/sequentialQuantile.js","../../../node_modules/d3-scale/src/diverging.js","../../../node_modules/d3-interpolate/src/piecewise.js","../../../node_modules/victory-core/es/victory-util/scale.js","../../../node_modules/victory-core/es/victory-util/style.js","../../../node_modules/victory-core/es/victory-util/textsize.js","../../../node_modules/d3-timer/src/timer.js","../../../node_modules/victory-core/es/victory-util/timer.js","../../../node_modules/victory-core/es/victory-util/timer-context.js","../../../node_modules/victory-core/es/victory-util/transitions.js","../../../node_modules/victory-core/es/victory-util/user-props.js","../../../node_modules/victory-core/es/victory-util/wrapper.js","../../../node_modules/victory-group/es/helper-methods.js","../../../node_modules/victory-group/es/victory-group.js","../../../node_modules/victory-line/es/helper-methods.js","../../../node_modules/victory-line/es/curve.js","../../../node_modules/victory-line/es/victory-line.js","../../../node_modules/victory-shared-events/es/victory-shared-events.js","../../../node_modules/victory-tooltip/es/flyout.js","../../../node_modules/victory-tooltip/es/victory-tooltip.js","../../../node_modules/victory-core/es/victory-util/selection.js","../../../node_modules/victory-voronoi-container/es/voronoi-helpers.js","../../../node_modules/victory-voronoi-container/es/victory-voronoi-container.js","../../../node_modules/d3-interpolate/src/number.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/array.js","../../../node_modules/d3-interpolate/src/date.js","../../../node_modules/d3-interpolate/src/object.js","../../../node_modules/d3-interpolate/src/string.js","../../../node_modules/d3-interpolate/src/numberArray.js","../../../node_modules/d3-interpolate/src/value.js","../../../node_modules/d3-shape/src/arc.js","../../../node_modules/d3-shape/src/area.js","../../../node_modules/d3-shape/src/areaRadial.js","../../../node_modules/d3-shape/src/array.js","../../../node_modules/d3-shape/src/constant.js","../../../node_modules/d3-shape/src/curve/linear.js","../../../node_modules/d3-shape/src/curve/radial.js","../../../node_modules/d3-shape/src/line.js","../../../node_modules/d3-shape/src/lineRadial.js","../../../node_modules/d3-shape/src/math.js","../../../node_modules/d3-path/src/path.js","../../../node_modules/d3-shape/src/path.js","../../../node_modules/d3-shape/src/point.js"],"sourcesContent":["import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var startOfDayLeft = startOfDay(dirtyDateLeft);\n var startOfDayRight = startOfDay(dirtyDateRight);\n var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight);\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.Delaunator = factory());\n}(this, function () { 'use strict';\n\n var EPSILON = Math.pow(2, -52);\n var EDGE_STACK = new Uint32Array(512);\n\n var Delaunator = function Delaunator(coords) {\n var n = coords.length >> 1;\n if (n > 0 && typeof coords[0] !== 'number') { throw new Error('Expected coords to contain numbers.'); }\n\n this.coords = coords;\n\n // arrays that will store the triangulation graph\n var maxTriangles = Math.max(2 * n - 5, 0);\n this._triangles = new Uint32Array(maxTriangles * 3);\n this._halfedges = new Int32Array(maxTriangles * 3);\n\n // temporary arrays for tracking the edges of the advancing convex hull\n this._hashSize = Math.ceil(Math.sqrt(n));\n this._hullPrev = new Uint32Array(n); // edge to prev edge\n this._hullNext = new Uint32Array(n); // edge to next edge\n this._hullTri = new Uint32Array(n); // edge to adjacent triangle\n this._hullHash = new Int32Array(this._hashSize).fill(-1); // angular edge hash\n\n // temporary arrays for sorting points\n this._ids = new Uint32Array(n);\n this._dists = new Float64Array(n);\n\n this.update();\n };\n\n Delaunator.from = function from (points, getX, getY) {\n if ( getX === void 0 ) getX = defaultGetX;\n if ( getY === void 0 ) getY = defaultGetY;\n\n var n = points.length;\n var coords = new Float64Array(n * 2);\n\n for (var i = 0; i < n; i++) {\n var p = points[i];\n coords[2 * i] = getX(p);\n coords[2 * i + 1] = getY(p);\n }\n\n return new Delaunator(coords);\n };\n\n Delaunator.prototype.update = function update () {\n var ref = this;\n var coords = ref.coords;\n var hullPrev = ref._hullPrev;\n var hullNext = ref._hullNext;\n var hullTri = ref._hullTri;\n var hullHash = ref._hullHash;\n var n = coords.length >> 1;\n\n // populate an array of point indices; calculate input data bbox\n var minX = Infinity;\n var minY = Infinity;\n var maxX = -Infinity;\n var maxY = -Infinity;\n\n for (var i = 0; i < n; i++) {\n var x = coords[2 * i];\n var y = coords[2 * i + 1];\n if (x < minX) { minX = x; }\n if (y < minY) { minY = y; }\n if (x > maxX) { maxX = x; }\n if (y > maxY) { maxY = y; }\n this._ids[i] = i;\n }\n var cx = (minX + maxX) / 2;\n var cy = (minY + maxY) / 2;\n\n var minDist = Infinity;\n var i0, i1, i2;\n\n // pick a seed point close to the center\n for (var i$1 = 0; i$1 < n; i$1++) {\n var d = dist(cx, cy, coords[2 * i$1], coords[2 * i$1 + 1]);\n if (d < minDist) {\n i0 = i$1;\n minDist = d;\n }\n }\n var i0x = coords[2 * i0];\n var i0y = coords[2 * i0 + 1];\n\n minDist = Infinity;\n\n // find the point closest to the seed\n for (var i$2 = 0; i$2 < n; i$2++) {\n if (i$2 === i0) { continue; }\n var d$1 = dist(i0x, i0y, coords[2 * i$2], coords[2 * i$2 + 1]);\n if (d$1 < minDist && d$1 > 0) {\n i1 = i$2;\n minDist = d$1;\n }\n }\n var i1x = coords[2 * i1];\n var i1y = coords[2 * i1 + 1];\n\n var minRadius = Infinity;\n\n // find the third point which forms the smallest circumcircle with the first two\n for (var i$3 = 0; i$3 < n; i$3++) {\n if (i$3 === i0 || i$3 === i1) { continue; }\n var r = circumradius(i0x, i0y, i1x, i1y, coords[2 * i$3], coords[2 * i$3 + 1]);\n if (r < minRadius) {\n i2 = i$3;\n minRadius = r;\n }\n }\n var i2x = coords[2 * i2];\n var i2y = coords[2 * i2 + 1];\n\n if (minRadius === Infinity) {\n // order collinear points by dx (or dy if all x are identical)\n // and return the list as a hull\n for (var i$4 = 0; i$4 < n; i$4++) {\n this._dists[i$4] = (coords[2 * i$4] - coords[0]) || (coords[2 * i$4 + 1] - coords[1]);\n }\n quicksort(this._ids, this._dists, 0, n - 1);\n var hull = new Uint32Array(n);\n var j = 0;\n for (var i$5 = 0, d0 = -Infinity; i$5 < n; i$5++) {\n var id = this._ids[i$5];\n if (this._dists[id] > d0) {\n hull[j++] = id;\n d0 = this._dists[id];\n }\n }\n this.hull = hull.subarray(0, j);\n this.triangles = new Uint32Array(0);\n this.halfedges = new Uint32Array(0);\n return;\n }\n\n // swap the order of the seed points for counter-clockwise orientation\n if (orient(i0x, i0y, i1x, i1y, i2x, i2y)) {\n var i$6 = i1;\n var x$1 = i1x;\n var y$1 = i1y;\n i1 = i2;\n i1x = i2x;\n i1y = i2y;\n i2 = i$6;\n i2x = x$1;\n i2y = y$1;\n }\n\n var center = circumcenter(i0x, i0y, i1x, i1y, i2x, i2y);\n this._cx = center.x;\n this._cy = center.y;\n\n for (var i$7 = 0; i$7 < n; i$7++) {\n this._dists[i$7] = dist(coords[2 * i$7], coords[2 * i$7 + 1], center.x, center.y);\n }\n\n // sort the points by distance from the seed triangle circumcenter\n quicksort(this._ids, this._dists, 0, n - 1);\n\n // set up the seed triangle as the starting hull\n this._hullStart = i0;\n var hullSize = 3;\n\n hullNext[i0] = hullPrev[i2] = i1;\n hullNext[i1] = hullPrev[i0] = i2;\n hullNext[i2] = hullPrev[i1] = i0;\n\n hullTri[i0] = 0;\n hullTri[i1] = 1;\n hullTri[i2] = 2;\n\n hullHash.fill(-1);\n hullHash[this._hashKey(i0x, i0y)] = i0;\n hullHash[this._hashKey(i1x, i1y)] = i1;\n hullHash[this._hashKey(i2x, i2y)] = i2;\n\n this.trianglesLen = 0;\n this._addTriangle(i0, i1, i2, -1, -1, -1);\n\n for (var k = 0, xp = (void 0), yp = (void 0); k < this._ids.length; k++) {\n var i$8 = this._ids[k];\n var x$2 = coords[2 * i$8];\n var y$2 = coords[2 * i$8 + 1];\n\n // skip near-duplicate points\n if (k > 0 && Math.abs(x$2 - xp) <= EPSILON && Math.abs(y$2 - yp) <= EPSILON) { continue; }\n xp = x$2;\n yp = y$2;\n\n // skip seed triangle points\n if (i$8 === i0 || i$8 === i1 || i$8 === i2) { continue; }\n\n // find a visible edge on the convex hull using edge hash\n var start = 0;\n for (var j$1 = 0, key = this._hashKey(x$2, y$2); j$1 < this._hashSize; j$1++) {\n start = hullHash[(key + j$1) % this._hashSize];\n if (start !== -1 && start !== hullNext[start]) { break; }\n }\n\n start = hullPrev[start];\n var e = start, q = (void 0);\n while (q = hullNext[e], !orient(x$2, y$2, coords[2 * e], coords[2 * e + 1], coords[2 * q], coords[2 * q + 1])) {\n e = q;\n if (e === start) {\n e = -1;\n break;\n }\n }\n if (e === -1) { continue; } // likely a near-duplicate point; skip it\n\n // add the first triangle from the point\n var t = this._addTriangle(e, i$8, hullNext[e], -1, -1, hullTri[e]);\n\n // recursively flip triangles from the point until they satisfy the Delaunay condition\n hullTri[i$8] = this._legalize(t + 2);\n hullTri[e] = t; // keep track of boundary triangles on the hull\n hullSize++;\n\n // walk forward through the hull, adding more triangles and flipping recursively\n var n$1 = hullNext[e];\n while (q = hullNext[n$1], orient(x$2, y$2, coords[2 * n$1], coords[2 * n$1 + 1], coords[2 * q], coords[2 * q + 1])) {\n t = this._addTriangle(n$1, i$8, q, hullTri[i$8], -1, hullTri[n$1]);\n hullTri[i$8] = this._legalize(t + 2);\n hullNext[n$1] = n$1; // mark as removed\n hullSize--;\n n$1 = q;\n }\n\n // walk backward from the other side, adding more triangles and flipping\n if (e === start) {\n while (q = hullPrev[e], orient(x$2, y$2, coords[2 * q], coords[2 * q + 1], coords[2 * e], coords[2 * e + 1])) {\n t = this._addTriangle(q, i$8, e, -1, hullTri[e], hullTri[q]);\n this._legalize(t + 2);\n hullTri[q] = t;\n hullNext[e] = e; // mark as removed\n hullSize--;\n e = q;\n }\n }\n\n // update the hull indices\n this._hullStart = hullPrev[i$8] = e;\n hullNext[e] = hullPrev[n$1] = i$8;\n hullNext[i$8] = n$1;\n\n // save the two new edges in the hash table\n hullHash[this._hashKey(x$2, y$2)] = i$8;\n hullHash[this._hashKey(coords[2 * e], coords[2 * e + 1])] = e;\n }\n\n this.hull = new Uint32Array(hullSize);\n for (var i$9 = 0, e$1 = this._hullStart; i$9 < hullSize; i$9++) {\n this.hull[i$9] = e$1;\n e$1 = hullNext[e$1];\n }\n\n // trim typed triangle mesh arrays\n this.triangles = this._triangles.subarray(0, this.trianglesLen);\n this.halfedges = this._halfedges.subarray(0, this.trianglesLen);\n };\n\n Delaunator.prototype._hashKey = function _hashKey (x, y) {\n return Math.floor(pseudoAngle(x - this._cx, y - this._cy) * this._hashSize) % this._hashSize;\n };\n\n Delaunator.prototype._legalize = function _legalize (a) {\n var ref = this;\n var triangles = ref._triangles;\n var halfedges = ref._halfedges;\n var coords = ref.coords;\n\n var i = 0;\n var ar = 0;\n\n // recursion eliminated with a fixed-size stack\n while (true) {\n var b = halfedges[a];\n\n /* if the pair of triangles doesn't satisfy the Delaunay condition\n * (p1 is inside the circumcircle of [p0, pl, pr]), flip them,\n * then do the same check/flip recursively for the new pair of triangles\n *\n * pl pl\n * /||\\ / \\\n * al/ || \\bl al/\\a\n * / || \\ / \\\n * / a||b \\flip/___ar___\\\n * p0\\ || /p1 => p0\\---bl---/p1\n * \\ || / \\ /\n * ar\\ || /br b\\/br\n * \\||/ \\ /\n * pr pr\n */\n var a0 = a - a % 3;\n ar = a0 + (a + 2) % 3;\n\n if (b === -1) { // convex hull edge\n if (i === 0) { break; }\n a = EDGE_STACK[--i];\n continue;\n }\n\n var b0 = b - b % 3;\n var al = a0 + (a + 1) % 3;\n var bl = b0 + (b + 2) % 3;\n\n var p0 = triangles[ar];\n var pr = triangles[a];\n var pl = triangles[al];\n var p1 = triangles[bl];\n\n var illegal = inCircle(\n coords[2 * p0], coords[2 * p0 + 1],\n coords[2 * pr], coords[2 * pr + 1],\n coords[2 * pl], coords[2 * pl + 1],\n coords[2 * p1], coords[2 * p1 + 1]);\n\n if (illegal) {\n triangles[a] = p1;\n triangles[b] = p0;\n\n var hbl = halfedges[bl];\n\n // edge swapped on the other side of the hull (rare); fix the halfedge reference\n if (hbl === -1) {\n var e = this._hullStart;\n do {\n if (this._hullTri[e] === bl) {\n this._hullTri[e] = a;\n break;\n }\n e = this._hullPrev[e];\n } while (e !== this._hullStart);\n }\n this._link(a, hbl);\n this._link(b, halfedges[ar]);\n this._link(ar, bl);\n\n var br = b0 + (b + 1) % 3;\n\n // don't worry about hitting the cap: it can only happen on extremely degenerate input\n if (i < EDGE_STACK.length) {\n EDGE_STACK[i++] = br;\n }\n } else {\n if (i === 0) { break; }\n a = EDGE_STACK[--i];\n }\n }\n\n return ar;\n };\n\n Delaunator.prototype._link = function _link (a, b) {\n this._halfedges[a] = b;\n if (b !== -1) { this._halfedges[b] = a; }\n };\n\n // add a new triangle given vertex indices and adjacent half-edge ids\n Delaunator.prototype._addTriangle = function _addTriangle (i0, i1, i2, a, b, c) {\n var t = this.trianglesLen;\n\n this._triangles[t] = i0;\n this._triangles[t + 1] = i1;\n this._triangles[t + 2] = i2;\n\n this._link(t, a);\n this._link(t + 1, b);\n this._link(t + 2, c);\n\n this.trianglesLen += 3;\n\n return t;\n };\n\n // monotonically increases with real angle, but doesn't need expensive trigonometry\n function pseudoAngle(dx, dy) {\n var p = dx / (Math.abs(dx) + Math.abs(dy));\n return (dy > 0 ? 3 - p : 1 + p) / 4; // [0..1]\n }\n\n function dist(ax, ay, bx, by) {\n var dx = ax - bx;\n var dy = ay - by;\n return dx * dx + dy * dy;\n }\n\n // return 2d orientation sign if we're confident in it through J. Shewchuk's error bound check\n function orientIfSure(px, py, rx, ry, qx, qy) {\n var l = (ry - py) * (qx - px);\n var r = (rx - px) * (qy - py);\n return Math.abs(l - r) >= 3.3306690738754716e-16 * Math.abs(l + r) ? l - r : 0;\n }\n\n // a more robust orientation test that's stable in a given triangle (to fix robustness issues)\n function orient(rx, ry, qx, qy, px, py) {\n var sign = orientIfSure(px, py, rx, ry, qx, qy) ||\n orientIfSure(rx, ry, qx, qy, px, py) ||\n orientIfSure(qx, qy, px, py, rx, ry);\n return sign < 0;\n }\n\n function inCircle(ax, ay, bx, by, cx, cy, px, py) {\n var dx = ax - px;\n var dy = ay - py;\n var ex = bx - px;\n var ey = by - py;\n var fx = cx - px;\n var fy = cy - py;\n\n var ap = dx * dx + dy * dy;\n var bp = ex * ex + ey * ey;\n var cp = fx * fx + fy * fy;\n\n return dx * (ey * cp - bp * fy) -\n dy * (ex * cp - bp * fx) +\n ap * (ex * fy - ey * fx) < 0;\n }\n\n function circumradius(ax, ay, bx, by, cx, cy) {\n var dx = bx - ax;\n var dy = by - ay;\n var ex = cx - ax;\n var ey = cy - ay;\n\n var bl = dx * dx + dy * dy;\n var cl = ex * ex + ey * ey;\n var d = 0.5 / (dx * ey - dy * ex);\n\n var x = (ey * bl - dy * cl) * d;\n var y = (dx * cl - ex * bl) * d;\n\n return x * x + y * y;\n }\n\n function circumcenter(ax, ay, bx, by, cx, cy) {\n var dx = bx - ax;\n var dy = by - ay;\n var ex = cx - ax;\n var ey = cy - ay;\n\n var bl = dx * dx + dy * dy;\n var cl = ex * ex + ey * ey;\n var d = 0.5 / (dx * ey - dy * ex);\n\n var x = ax + (ey * bl - dy * cl) * d;\n var y = ay + (dx * cl - ex * bl) * d;\n\n return {x: x, y: y};\n }\n\n function quicksort(ids, dists, left, right) {\n if (right - left <= 20) {\n for (var i = left + 1; i <= right; i++) {\n var temp = ids[i];\n var tempDist = dists[temp];\n var j = i - 1;\n while (j >= left && dists[ids[j]] > tempDist) { ids[j + 1] = ids[j--]; }\n ids[j + 1] = temp;\n }\n } else {\n var median = (left + right) >> 1;\n var i$1 = left + 1;\n var j$1 = right;\n swap(ids, median, i$1);\n if (dists[ids[left]] > dists[ids[right]]) { swap(ids, left, right); }\n if (dists[ids[i$1]] > dists[ids[right]]) { swap(ids, i$1, right); }\n if (dists[ids[left]] > dists[ids[i$1]]) { swap(ids, left, i$1); }\n\n var temp$1 = ids[i$1];\n var tempDist$1 = dists[temp$1];\n while (true) {\n do { i$1++; } while (dists[ids[i$1]] < tempDist$1);\n do { j$1--; } while (dists[ids[j$1]] > tempDist$1);\n if (j$1 < i$1) { break; }\n swap(ids, i$1, j$1);\n }\n ids[left + 1] = ids[j$1];\n ids[j$1] = temp$1;\n\n if (right - i$1 + 1 >= j$1 - left) {\n quicksort(ids, dists, i$1, right);\n quicksort(ids, dists, left, j$1 - 1);\n } else {\n quicksort(ids, dists, left, j$1 - 1);\n quicksort(ids, dists, i$1, right);\n }\n }\n }\n\n function swap(arr, i, j) {\n var tmp = arr[i];\n arr[i] = arr[j];\n arr[j] = tmp;\n }\n\n function defaultGetX(p) {\n return p[0];\n }\n function defaultGetY(p) {\n return p[1];\n }\n\n return Delaunator;\n\n}));\n","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _delaunator = _interopRequireDefault(require(\"delaunator/delaunator.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\n// From https://github.com/d3/d3-delaunay/blob/master/src/delaunay.js\nfunction pointX(p) {\n return p[0];\n}\n\nfunction pointY(p) {\n return p[1];\n} // A triangulation is collinear if all its triangles have a non-null area\n\n\nfunction collinear(d) {\n var triangles = d.triangles,\n coords = d.coords;\n\n for (var i = 0; i < triangles.length; i += 3) {\n var a = 2 * triangles[i];\n var b = 2 * triangles[i + 1];\n var c = 2 * triangles[i + 2];\n var cross = (coords[c] - coords[a]) * (coords[b + 1] - coords[a + 1]) - (coords[b] - coords[a]) * (coords[c + 1] - coords[a + 1]); // eslint-disable-next-line no-magic-numbers\n\n if (cross > 1e-10) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction jitter(x, y, r) {\n return [x + Math.sin(x + y) * r, y + Math.cos(x - y) * r];\n} // eslint-disable-next-line max-params\n\n\nfunction flatArray(points, fx, fy, that) {\n var n = points.length;\n var array = new Float64Array(n * 2);\n\n for (var i = 0; i < n; ++i) {\n var p = points[i];\n array[i * 2] = fx.call(that, p, i, points);\n array[i * 2 + 1] = fy.call(that, p, i, points);\n }\n\n return array;\n}\n\nvar Delaunay =\n/*#__PURE__*/\nfunction () {\n function Delaunay(points) {\n var delaunator = new _delaunator[\"default\"](points);\n this.inedges = new Int32Array(points.length / 2);\n this._hullIndex = new Int32Array(points.length / 2);\n this.points = delaunator.coords;\n\n this._init(delaunator);\n } // eslint-disable-next-line max-statements, complexity\n\n\n var _proto = Delaunay.prototype;\n\n _proto._init = function _init(delaunator) {\n var d = delaunator;\n var points = this.points; // check for collinear\n // eslint-disable-next-line no-magic-numbers\n\n if (d.hull && d.hull.length > 2 && collinear(d)) {\n this.collinear = Int32Array.from({\n length: points.length / 2\n }, function (_, i) {\n return i;\n }).sort(function (i, j) {\n return points[2 * i] - points[2 * j] || points[2 * i + 1] - points[2 * j + 1];\n }); // for exact neighbors\n\n var e = this.collinear[0];\n var f = this.collinear[this.collinear.length - 1];\n var bounds = [points[2 * e], points[2 * e + 1], points[2 * f], points[2 * f + 1]];\n var r = 1e-8 * // eslint-disable-line no-magic-numbers\n Math.sqrt(Math.pow(bounds[3] - bounds[1], 2) + Math.pow(bounds[2] - bounds[0], 2));\n\n for (var i = 0, n = points.length / 2; i < n; ++i) {\n var p = jitter(points[2 * i], points[2 * i + 1], r);\n points[2 * i] = p[0];\n points[2 * i + 1] = p[1];\n }\n\n delaunator = new _delaunator[\"default\"](points);\n }\n\n var halfedges = this.halfedges = delaunator.halfedges;\n var hull = this.hull = delaunator.hull;\n var triangles = this.triangles = delaunator.triangles;\n var inedges = this.inedges.fill(-1);\n\n var hullIndex = this._hullIndex.fill(-1); // Compute an index from each point to an (arbitrary) incoming halfedge\n // Used to give the first neighbor of each point; for this reason,\n // on the hull we give priority to exterior halfedges\n\n\n for (var _e = 0, _n = halfedges.length; _e < _n; ++_e) {\n var _p = triangles[_e % 3 === 2 ? _e - 2 : _e + 1];\n if (halfedges[_e] === -1 || inedges[_p] === -1) inedges[_p] = _e;\n }\n\n for (var _i = 0, _n2 = hull.length; _i < _n2; ++_i) {\n hullIndex[hull[_i]] = _i;\n } // degenerate case: 1 or 2 (distinct) points\n\n\n if (hull.length <= 2 && hull.length > 0) {\n this.triangles = new Int32Array(3).fill(-1);\n this.halfedges = new Int32Array(3).fill(-1);\n this.triangles[0] = hull[0];\n this.triangles[1] = hull[1];\n this.triangles[2] = hull[1];\n inedges[hull[0]] = 1;\n if (hull.length === 2) inedges[hull[1]] = 0;\n }\n } // eslint-disable-next-line max-statements\n ;\n\n _proto.neighbors = function neighbors(i) {\n var results = [];\n var inedges = this.inedges,\n hull = this.hull,\n _hullIndex = this._hullIndex,\n halfedges = this.halfedges,\n triangles = this.triangles;\n var e0 = inedges[i];\n if (e0 === -1) return results; // coincident point\n\n var e = e0;\n var p0 = -1;\n\n do {\n p0 = triangles[e];\n results.push(p0);\n e = e % 3 === 2 ? e - 2 : e + 1;\n if (triangles[e] !== i) break; // bad triangulation\n\n e = halfedges[e];\n\n if (e === -1) {\n var p = hull[(_hullIndex[i] + 1) % hull.length];\n if (p !== p0) results.push(p);\n break;\n }\n } while (e !== e0);\n\n return results;\n };\n\n _proto.find = function find(x, y, i) {\n if (i === void 0) {\n i = 0;\n }\n\n // eslint-disable-next-line no-self-compare\n if ((x = +x, x !== x) || (y = +y, y !== y)) return -1;\n var i0 = i;\n var c;\n\n while ((c = this._step(i, x, y)) >= 0 && c !== i && c !== i0) {\n i = c;\n }\n\n return c;\n };\n\n _proto._step = function _step(i, x, y) {\n var inedges = this.inedges,\n points = this.points;\n if (inedges[i] === -1 || !points.length) return (i + 1) % (points.length >> 1);\n var c = i;\n var dc = Math.pow(x - points[i * 2], 2) + Math.pow(y - points[i * 2 + 1], 2);\n\n for (var _iterator = this.neighbors(i), _isArray = Array.isArray(_iterator), _i2 = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {\n var _ref;\n\n if (_isArray) {\n if (_i2 >= _iterator.length) break;\n _ref = _iterator[_i2++];\n } else {\n _i2 = _iterator.next();\n if (_i2.done) break;\n _ref = _i2.value;\n }\n\n var t = _ref;\n var dt = Math.pow(x - points[t * 2], 2) + Math.pow(y - points[t * 2 + 1], 2);\n\n if (dt < dc) {\n dc = dt;\n c = t;\n }\n }\n\n return c;\n };\n\n return Delaunay;\n}(); // eslint-disable-next-line max-params\n\n\nexports[\"default\"] = Delaunay;\n\nDelaunay.from = function (points, fx, fy, that) {\n if (fx === void 0) {\n fx = pointX;\n }\n\n if (fy === void 0) {\n fy = pointY;\n }\n\n return new Delaunay(flatArray(points, fx, fy, that));\n}; // only public methods will be .from and .find","exports = module.exports = stringify\nexports.getSerialize = serializer\n\nfunction stringify(obj, replacer, spaces, cycleReplacer) {\n return JSON.stringify(obj, serializer(replacer, cycleReplacer), spaces)\n}\n\nfunction serializer(replacer, cycleReplacer) {\n var stack = [], keys = []\n\n if (cycleReplacer == null) cycleReplacer = function(key, value) {\n if (stack[0] === value) return \"[Circular ~]\"\n return \"[Circular ~.\" + keys.slice(0, stack.indexOf(value)).join(\".\") + \"]\"\n }\n\n return function(key, value) {\n if (stack.length > 0) {\n var thisPos = stack.indexOf(this)\n ~thisPos ? stack.splice(thisPos + 1) : stack.push(this)\n ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key)\n if (~stack.indexOf(value)) value = cycleReplacer.call(this, key, value)\n }\n else stack.push(value)\n\n return replacer == null ? value : replacer.call(this, key, value)\n }\n}\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","/**\n * A specialized version of `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 == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayAggregator;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","var baseIndexOf = require('./_baseIndexOf');\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nmodule.exports = arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arraySome;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var 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 baseEach = require('./_baseEach');\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\nmodule.exports = baseAggregator;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var 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/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\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 filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseDifference;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nmodule.exports = baseEach;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = baseFindIndex;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var createBaseFor = require('./_createBaseFor');\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nmodule.exports = baseForOwn;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nmodule.exports = baseHasIn;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nmodule.exports = baseIndexOf;\n","var baseForOwn = require('./_baseForOwn');\n\n/**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n}\n\nmodule.exports = baseInverter;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar dateTag = '[object Date]';\n\n/**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\nfunction baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n}\n\nmodule.exports = baseIsDate;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nmodule.exports = baseIsEqualDeep;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nmodule.exports = baseIsMatch;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nmodule.exports = baseIsNaN;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar regexpTag = '[object RegExp]';\n\n/**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\nfunction baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n}\n\nmodule.exports = baseIsRegExp;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","var baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nmodule.exports = baseMatchesProperty;\n","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\n","var basePickBy = require('./_basePickBy'),\n hasIn = require('./hasIn');\n\n/**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\nfunction basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n}\n\nmodule.exports = basePick;\n","var baseGet = require('./_baseGet'),\n baseSet = require('./_baseSet'),\n castPath = require('./_castPath');\n\n/**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\nfunction basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n}\n\nmodule.exports = basePickBy;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nmodule.exports = basePropertyDeep;\n","/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nmodule.exports = baseRange;\n","var identity = require('./identity'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var assignValue = require('./_assignValue'),\n castPath = require('./_castPath'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\nfunction baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n}\n\nmodule.exports = baseSet;\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","var baseEach = require('./_baseEach');\n\n/**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n}\n\nmodule.exports = baseSome;\n","/**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\n","var eq = require('./eq');\n\n/**\n * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n * 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 * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseSortedUniq(array, iteratee) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result[resIndex++] = value === 0 ? 0 : value;\n }\n }\n return result;\n}\n\nmodule.exports = baseSortedUniq;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","var arrayMap = require('./_arrayMap');\n\n/**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\nfunction baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n}\n\nmodule.exports = baseValues;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nmodule.exports = cacheHas;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var arrayAggregator = require('./_arrayAggregator'),\n baseAggregator = require('./_baseAggregator'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray');\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\nmodule.exports = createAggregator;\n","var baseRest = require('./_baseRest'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var isArrayLike = require('./isArrayLike');\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nmodule.exports = createBaseEach;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var 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 baseInverter = require('./_baseInverter');\n\n/**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\nfunction createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n}\n\nmodule.exports = createInverter;\n","var baseRange = require('./_baseRange'),\n isIterateeCall = require('./_isIterateeCall'),\n toFinite = require('./toFinite');\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nmodule.exports = createRange;\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nmodule.exports = equalObjects;\n","var flatten = require('./flatten'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nmodule.exports = flatRest;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nmodule.exports = hasPath;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nmodule.exports = isStrictComparable;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nmodule.exports = mapToArray;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nmodule.exports = setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nmodule.exports = setCacheHas;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nmodule.exports = setToArray;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nmodule.exports = strictIndexOf;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var assignValue = require('./_assignValue'),\n copyObject = require('./_copyObject'),\n createAssigner = require('./_createAssigner'),\n isArrayLike = require('./isArrayLike'),\n isPrototype = require('./_isPrototype'),\n keys = require('./keys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\nvar assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n});\n\nmodule.exports = assign;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var baseRest = require('./_baseRest'),\n eq = require('./eq'),\n isIterateeCall = require('./_isIterateeCall'),\n keysIn = require('./keysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n});\n\nmodule.exports = defaults;\n","var baseDifference = require('./_baseDifference'),\n baseFlatten = require('./_baseFlatten'),\n baseRest = require('./_baseRest'),\n isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Creates an array of `array` values not included in the other 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 * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\nvar difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n});\n\nmodule.exports = difference;\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 createFind = require('./_createFind'),\n findIndex = require('./findIndex');\n\n/**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\nvar find = createFind(findIndex);\n\nmodule.exports = find;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\nfunction findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index);\n}\n\nmodule.exports = findIndex;\n","var baseFlatten = require('./_baseFlatten');\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n","/**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['a', 1], ['b', 2]]);\n * // => { 'a': 1, 'b': 2 }\n */\nfunction fromPairs(pairs) {\n var index = -1,\n length = pairs == null ? 0 : pairs.length,\n result = {};\n\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n return result;\n}\n\nmodule.exports = fromPairs;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","var baseAssignValue = require('./_baseAssignValue'),\n createAggregator = require('./_createAggregator');\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 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] 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 baseAssignValue(result, key, [value]);\n }\n});\n\nmodule.exports = groupBy;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nmodule.exports = hasIn;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var baseIndexOf = require('./_baseIndexOf'),\n isArrayLike = require('./isArrayLike'),\n isString = require('./isString'),\n toInteger = require('./toInteger'),\n values = require('./values');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\nfunction includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n}\n\nmodule.exports = includes;\n","var constant = require('./constant'),\n createInverter = require('./_createInverter'),\n identity = require('./identity');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\nvar invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n}, constant(identity));\n\nmodule.exports = invert;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var 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 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 baseIsDate = require('./_baseIsDate'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsDate = nodeUtil && nodeUtil.isDate;\n\n/**\n * Checks if `value` is classified as a `Date` 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 date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\nvar isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\nmodule.exports = isDate;\n","var baseKeys = require('./_baseKeys'),\n getTag = require('./_getTag'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLike = require('./isArrayLike'),\n isBuffer = require('./isBuffer'),\n isPrototype = require('./_isPrototype'),\n isTypedArray = require('./isTypedArray');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\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 `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\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 empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = isEmpty;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\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 * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var baseIsRegExp = require('./_baseIsRegExp'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsRegExp = nodeUtil && nodeUtil.isRegExp;\n\n/**\n * Checks if `value` is classified as a `RegExp` 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 regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\nvar isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\nmodule.exports = isRegExp;\n","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","/**\n * Checks if `value` is `undefined`.\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 `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\nfunction isUndefined(value) {\n return value === undefined;\n}\n\nmodule.exports = isUndefined;\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 arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","/**\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 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","/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\nfunction negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n}\n\nmodule.exports = negate;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nmodule.exports = noop;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var baseIteratee = require('./_baseIteratee'),\n negate = require('./negate'),\n pickBy = require('./pickBy');\n\n/**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\nfunction omitBy(object, predicate) {\n return pickBy(object, negate(baseIteratee(predicate)));\n}\n\nmodule.exports = omitBy;\n","var baseOrderBy = require('./_baseOrderBy'),\n isArray = require('./isArray');\n\n/**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\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 {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\nfunction orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n}\n\nmodule.exports = orderBy;\n","var basePick = require('./_basePick'),\n flatRest = require('./_flatRest');\n\n/**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\nvar pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n});\n\nmodule.exports = pick;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n basePickBy = require('./_basePickBy'),\n getAllKeysIn = require('./_getAllKeysIn');\n\n/**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\nfunction pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = baseIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n}\n\nmodule.exports = pickBy;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nmodule.exports = property;\n","var createRange = require('./_createRange');\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nmodule.exports = range;\n","var arraySome = require('./_arraySome'),\n baseIteratee = require('./_baseIteratee'),\n baseSome = require('./_baseSome'),\n isArray = require('./isArray'),\n isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\nfunction some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, baseIteratee(predicate, 3));\n}\n\nmodule.exports = some;\n","var baseSortedUniq = require('./_baseSortedUniq');\n\n/**\n * This method is like `_.uniq` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniq([1, 1, 2]);\n * // => [1, 2]\n */\nfunction sortedUniq(array) {\n return (array && array.length)\n ? baseSortedUniq(array)\n : [];\n}\n\nmodule.exports = sortedUniq;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n","var baseUniq = require('./_baseUniq');\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n}\n\nmodule.exports = uniq;\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 toString = require('./toString');\n\n/** Used to generate unique IDs. */\nvar idCounter = 0;\n\n/**\n * Generates a unique ID. If `prefix` is given, the ID is appended to it.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {string} [prefix=''] The value to prefix the ID with.\n * @returns {string} Returns the unique ID.\n * @example\n *\n * _.uniqueId('contact_');\n * // => 'contact_104'\n *\n * _.uniqueId();\n * // => '105'\n */\nfunction uniqueId(prefix) {\n var id = ++idCounter;\n return toString(prefix) + id;\n}\n\nmodule.exports = uniqueId;\n","var baseValues = require('./_baseValues'),\n keys = require('./keys');\n\n/**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\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 values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\nfunction values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n}\n\nmodule.exports = values;\n","var baseDifference = require('./_baseDifference'),\n baseRest = require('./_baseRest'),\n isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\nvar without = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, values)\n : [];\n});\n\nmodule.exports = without;\n","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has<Type> &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","import _isNil from \"lodash/isNil\";\nimport _assign from \"lodash/assign\";\nimport { Helpers, LabelHelpers, Data, Domain, Scale, Collection } from \"victory-core\";\nexport var getDataWithBaseline = function (props, scale) {\n var data = Data.getData(props);\n\n if (data.length < 2) {\n data = [];\n }\n\n var getDefaultMin = function (axis) {\n var defaultZero = Scale.getType(scale[axis]) === \"log\" ? 1 / Number.MAX_SAFE_INTEGER : 0;\n var domain = scale[axis].domain();\n var minY = Collection.getMinValue(domain);\n var maxY = Collection.getMaxValue(domain);\n var defaultMin = defaultZero;\n\n if (minY < 0 && maxY <= 0) {\n defaultMin = maxY;\n } else if (minY >= 0 && maxY > 0) {\n defaultMin = minY;\n }\n\n return Collection.containsDates(domain) ? new Date(defaultMin) : defaultMin;\n };\n\n return data.map(function (datum) {\n var _y1 = datum._y1 !== undefined ? datum._y1 : datum._y;\n\n var _y0 = datum._y0 !== undefined ? datum._y0 : getDefaultMin(\"y\");\n\n var _x1 = datum._x1 !== undefined ? datum._x1 : datum._x;\n\n var _x0 = datum._x0 !== undefined ? datum._x0 : getDefaultMin(\"x\");\n\n return _assign({}, datum, {\n _y0: _y0,\n _y1: _y1,\n _x0: _x0,\n _x1: _x1\n });\n });\n};\n\nvar getCalculatedValues = function (props) {\n var polar = props.polar;\n var defaultStyles = Helpers.getDefaultStyles(props, \"area\");\n var style = Helpers.getStyles(props.style, defaultStyles);\n var range = {\n x: Helpers.getRange(props, \"x\"),\n y: Helpers.getRange(props, \"y\")\n };\n var domain = {\n x: Domain.getDomainWithZero(props, \"x\"),\n y: Domain.getDomainWithZero(props, \"y\")\n };\n var scale = {\n x: Scale.getBaseScale(props, \"x\").domain(domain.x).range(props.horizontal ? range.y : range.x),\n y: Scale.getBaseScale(props, \"y\").domain(domain.y).range(props.horizontal ? range.x : range.y)\n };\n var origin = polar ? props.origin || Helpers.getPolarOrigin(props) : undefined;\n var data = getDataWithBaseline(props, scale);\n return {\n style: style,\n data: data,\n scale: scale,\n domain: domain,\n origin: origin\n };\n};\n\nexport var getBaseProps = function (props, fallbackProps) {\n var modifiedProps = Helpers.modifyProps(props, fallbackProps, \"area\");\n props = _assign({}, modifiedProps, getCalculatedValues(modifiedProps));\n var _props = props,\n data = _props.data,\n domain = _props.domain,\n events = _props.events,\n groupComponent = _props.groupComponent,\n height = _props.height,\n horizontal = _props.horizontal,\n interpolation = _props.interpolation,\n origin = _props.origin,\n padding = _props.padding,\n polar = _props.polar,\n scale = _props.scale,\n sharedEvents = _props.sharedEvents,\n standalone = _props.standalone,\n style = _props.style,\n theme = _props.theme,\n width = _props.width,\n labels = _props.labels,\n name = _props.name,\n disableInlineStyles = _props.disableInlineStyles;\n var initialChildProps = {\n parent: {\n style: style.parent,\n width: width,\n height: height,\n scale: scale,\n data: data,\n domain: domain,\n standalone: standalone,\n theme: theme,\n polar: polar,\n origin: origin,\n padding: padding,\n name: name,\n horizontal: horizontal\n },\n all: {\n data: {\n horizontal: horizontal,\n polar: polar,\n origin: origin,\n scale: scale,\n data: data,\n interpolation: interpolation,\n groupComponent: groupComponent,\n style: disableInlineStyles ? {} : style.data,\n disableInlineStyles: disableInlineStyles\n }\n }\n };\n return data.reduce(function (childProps, datum, index) {\n var text = LabelHelpers.getText(props, datum, index);\n\n if (text !== undefined && text !== null || labels && (events || sharedEvents)) {\n var eventKey = !_isNil(datum.eventKey) ? datum.eventKey : index;\n childProps[eventKey] = {\n labels: LabelHelpers.getProps(props, index)\n };\n }\n\n return childProps;\n }, initialChildProps);\n};","import _assign from \"lodash/assign\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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-magic-numbers: [\"error\", { \"ignore\": [-1, 0, 1, 2] }]*/\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport * as d3Shape from \"victory-vendor/d3-shape\";\nimport { Helpers, CommonProps, Path, UserProps, LineHelpers } from \"victory-core\";\n\nvar defined = function (d) {\n var y = d._y1 !== undefined ? d._y1 : d._y;\n return y !== null && y !== undefined && d._y0 !== null;\n};\n\nvar getXAccessor = function (scale) {\n return function (d) {\n return scale.x(d._x1 !== undefined ? d._x1 : d._x);\n };\n};\n\nvar getYAccessor = function (scale) {\n return function (d) {\n return scale.y(d._y1 !== undefined ? d._y1 : d._y);\n };\n};\n\nvar getY0Accessor = function (scale) {\n return function (d) {\n return scale.y(d._y0);\n };\n};\n\nvar getAngleAccessor = function (scale) {\n return function (d) {\n var x = scale.x(d._x1 !== undefined ? d._x1 : d._x);\n return -1 * x + Math.PI / 2;\n };\n};\n\nvar getCartesianArea = function (props) {\n var horizontal = props.horizontal,\n scale = props.scale;\n var interpolationFunction = LineHelpers.getInterpolationFunction(props);\n return horizontal ? d3Shape.area().defined(defined).curve(interpolationFunction).x0(getY0Accessor(scale)).x1(getYAccessor(scale)).y(getXAccessor(scale)) : d3Shape.area().defined(defined).curve(interpolationFunction).x(getXAccessor(scale)).y1(getYAccessor(scale)).y0(getY0Accessor(scale));\n};\n\nvar getAreaFunction = function (props) {\n var polar = props.polar,\n scale = props.scale;\n var interpolationFunction = LineHelpers.getInterpolationFunction(props);\n return polar ? d3Shape.radialArea().defined(defined).curve(interpolationFunction).angle(getAngleAccessor(scale)).outerRadius(getYAccessor(scale)).innerRadius(getY0Accessor(scale)) : getCartesianArea(props);\n};\n\nvar evaluateProps = function (props) {\n /**\n * Potential evaluated props are:\n * `ariaLabel`\n * `desc`\n * `id`\n * `style`\n * `tabIndex`\n */\n var ariaLabel = Helpers.evaluateProp(props.ariaLabel, props);\n var desc = Helpers.evaluateProp(props.desc, props);\n var id = Helpers.evaluateProp(props.id, props);\n var style = Helpers.evaluateStyle(_assign({\n fill: \"black\"\n }, props.style), props);\n var tabIndex = Helpers.evaluateProp(props.tabIndex, props);\n return _assign({}, props, {\n ariaLabel: ariaLabel,\n desc: desc,\n id: id,\n style: style,\n tabIndex: tabIndex\n });\n};\n/**\n * The area primitive used by VictoryArea\n */\n\n\nexport var Area = function (props) {\n props = evaluateProps(props);\n var _props = props,\n ariaLabel = _props.ariaLabel,\n role = _props.role,\n shapeRendering = _props.shapeRendering,\n className = _props.className,\n polar = _props.polar,\n origin = _props.origin,\n data = _props.data,\n pathComponent = _props.pathComponent,\n events = _props.events,\n groupComponent = _props.groupComponent,\n clipPath = _props.clipPath,\n id = _props.id,\n style = _props.style,\n desc = _props.desc,\n tabIndex = _props.tabIndex;\n var userProps = UserProps.getSafeUserProps(props);\n var defaultTransform = polar && origin ? \"translate(\".concat(origin.x, \", \").concat(origin.y, \")\") : undefined;\n var transform = props.transform || defaultTransform;\n var renderLine = style.stroke && style.stroke !== \"none\" && style.stroke !== \"transparent\";\n var areaFunction = getAreaFunction(props);\n var lineFunction = renderLine && LineHelpers.getLineFunction(props);\n var areaStroke = style.stroke ? \"none\" : style.fill;\n\n var sharedProps = _objectSpread(_objectSpread({\n \"aria-label\": ariaLabel,\n className: className,\n role: role,\n shapeRendering: shapeRendering,\n transform: transform\n }, events), {}, {\n clipPath: clipPath,\n tabIndex: tabIndex\n });\n\n var area = /*#__PURE__*/React.cloneElement(pathComponent, _assign({\n key: \"\".concat(id, \"-area\"),\n style: _assign({}, style, {\n stroke: areaStroke\n }),\n d: areaFunction(data),\n desc: desc,\n tabIndex: tabIndex\n }, sharedProps, userProps));\n var line = renderLine ? /*#__PURE__*/React.cloneElement(pathComponent, _assign({\n key: \"\".concat(id, \"-area-stroke\"),\n style: _assign({}, style, {\n fill: \"none\"\n }),\n d: lineFunction(data)\n }, sharedProps)) : null;\n return renderLine ? /*#__PURE__*/React.cloneElement(groupComponent, userProps, [area, line]) : area;\n};\nArea.propTypes = _objectSpread(_objectSpread({}, CommonProps.primitiveProps), {}, {\n groupComponent: PropTypes.element,\n interpolation: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n pathComponent: PropTypes.element\n});\nArea.defaultProps = {\n groupComponent: /*#__PURE__*/React.createElement(\"g\", null),\n pathComponent: /*#__PURE__*/React.createElement(Path, null),\n role: \"presentation\",\n shapeRendering: \"auto\"\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\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 } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\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 _possibleConstructorReturn(self, call) { if (call && (typeof call === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\nimport { getBaseProps } from \"./helper-methods\";\nimport { Area } from \"./area\";\nimport { PropTypes as CustomPropTypes, Helpers, VictoryLabel, VictoryContainer, CommonProps, DefaultTransitions, VictoryClipContainer, addEvents, VictoryTheme, Data, Domain, UserProps } from \"victory-core\";\nvar fallbackProps = {\n width: 450,\n height: 300,\n padding: 50,\n interpolation: \"linear\"\n};\nvar options = {\n components: [{\n name: \"parent\",\n index: \"parent\"\n }, {\n name: \"data\",\n index: \"all\"\n }, {\n name: \"labels\"\n }]\n};\n\n/**\n * Draw area charts with React. VictoryArea is a composable component, so it doesn't include axes.\n * Add VictoryArea as a child of VictoryChart for a complete chart.\n */\nvar VictoryAreaBase = /*#__PURE__*/function (_React$Component) {\n _inherits(VictoryAreaBase, _React$Component);\n\n var _super = _createSuper(VictoryAreaBase);\n\n function VictoryAreaBase() {\n _classCallCheck(this, VictoryAreaBase);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(VictoryAreaBase, [{\n key: \"shouldAnimate\",\n value: // Overridden in native versions\n function shouldAnimate() {\n return !!this.props.animate;\n }\n }, {\n key: \"render\",\n value: function render() {\n var animationWhitelist = VictoryAreaBase.animationWhitelist,\n role = VictoryAreaBase.role;\n var props = Helpers.modifyProps(this.props, fallbackProps, role);\n\n if (this.shouldAnimate()) {\n return this.animateComponent(props, animationWhitelist);\n }\n\n var children = this.renderContinuousData(props);\n var component = props.standalone ? this.renderContainer(props.containerComponent, children) : children;\n return UserProps.withSafeUserProps(component, props);\n }\n }]);\n\n return VictoryAreaBase;\n}(React.Component);\n\nVictoryAreaBase.animationWhitelist = [\"data\", \"domain\", \"height\", \"padding\", \"style\", \"width\"];\nVictoryAreaBase.propTypes = _objectSpread(_objectSpread(_objectSpread({}, CommonProps.baseProps), CommonProps.dataProps), {}, {\n interpolation: PropTypes.oneOfType([PropTypes.oneOf([\"basis\", \"cardinal\", \"catmullRom\", \"linear\", \"monotoneX\", \"monotoneY\", \"natural\", \"step\", \"stepAfter\", \"stepBefore\"]), PropTypes.func]),\n label: CustomPropTypes.deprecated(PropTypes.string, \"Use `labels` instead for individual data labels\")\n});\nVictoryAreaBase.defaultProps = {\n containerComponent: /*#__PURE__*/React.createElement(VictoryContainer, null),\n dataComponent: /*#__PURE__*/React.createElement(Area, null),\n groupComponent: /*#__PURE__*/React.createElement(VictoryClipContainer, null),\n labelComponent: /*#__PURE__*/React.createElement(VictoryLabel, {\n renderInPortal: true\n }),\n samples: 50,\n sortKey: \"x\",\n sortOrder: \"ascending\",\n standalone: true,\n theme: VictoryTheme.grayscale\n};\nVictoryAreaBase.displayName = \"VictoryArea\";\nVictoryAreaBase.role = \"area\";\nVictoryAreaBase.continuous = true;\nVictoryAreaBase.defaultTransitions = DefaultTransitions.continuousTransitions();\nVictoryAreaBase.defaultPolarTransitions = DefaultTransitions.continuousPolarTransitions();\nVictoryAreaBase.getDomain = Domain.getDomainWithZero;\nVictoryAreaBase.getData = Data.getData;\n\nVictoryAreaBase.getBaseProps = function (props) {\n return getBaseProps(props, fallbackProps);\n};\n\nVictoryAreaBase.expectedComponents = [\"dataComponent\", \"labelComponent\", \"groupComponent\", \"containerComponent\"];\nexport var VictoryArea = addEvents(VictoryAreaBase, options);","import _defaults from \"lodash/defaults\";\nimport _assign from \"lodash/assign\";\n\nfunction _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\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) 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\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 { Helpers, Scale, Axis } from \"victory-core\";\nvar orientationSign = {\n top: -1,\n left: -1,\n right: 1,\n bottom: 1\n};\n\nvar exists = function (val) {\n return val !== null && val !== undefined;\n};\n\nvar getCurrentAxis = function (props, axis) {\n var orientation = props.orientation,\n horizontal = props.horizontal;\n\n if (orientation) {\n var dimensions = {\n top: \"x\",\n bottom: \"x\",\n left: \"y\",\n right: \"y\"\n };\n return dimensions[orientation];\n }\n\n var otherAxis = axis === \"x\" ? \"y\" : \"x\";\n return horizontal ? otherAxis : axis;\n};\n\nvar getScale = function (props) {\n var axis = Axis.getAxis(props);\n var currentAxis = getCurrentAxis(props, axis);\n var scale = Scale.getBaseScale(props, axis);\n var propsDomain = props.domain && props.domain[axis];\n var domain = propsDomain || Axis.getDomain(props) || scale.domain();\n scale.range(Helpers.getRange(props, currentAxis));\n scale.domain(domain);\n return scale;\n};\n\nvar getStyleObject = function (props) {\n var theme = props.theme,\n dependentAxis = props.dependentAxis;\n var generalAxisStyle = theme && theme.axis && theme.axis.style;\n var axisType = dependentAxis ? \"dependentAxis\" : \"independentAxis\";\n var specificAxisStyle = theme && theme[axisType] && theme[axisType].style;\n\n var mergeStyles = function () {\n var styleNamespaces = [\"axis\", \"axisLabel\", \"grid\", \"parent\", \"tickLabels\", \"ticks\"];\n return styleNamespaces.reduce(function (memo, curr) {\n memo[curr] = _defaults({}, specificAxisStyle[curr], generalAxisStyle[curr]);\n return memo;\n }, {});\n };\n\n return generalAxisStyle && specificAxisStyle ? mergeStyles() : specificAxisStyle || generalAxisStyle;\n};\n\nexport var getStyles = function (props, styleObject) {\n var style = props.style || {};\n styleObject = styleObject || {};\n var parentStyleProps = {\n height: \"100%\",\n width: \"100%\"\n };\n return {\n parent: _defaults(style.parent, styleObject.parent, parentStyleProps),\n axis: _defaults({}, style.axis, styleObject.axis),\n axisLabel: _defaults({}, style.axisLabel, styleObject.axisLabel),\n grid: _defaults({}, style.grid, styleObject.grid),\n ticks: _defaults({}, style.ticks, styleObject.ticks),\n tickLabels: _defaults({}, style.tickLabels, styleObject.tickLabels)\n };\n};\n\nvar getTickProps = function (layout, style, datum) {\n var position = layout.position,\n transform = layout.transform;\n return {\n x1: transform.x,\n y1: transform.y,\n x2: transform.x + position.x2,\n y2: transform.y + position.y2,\n style: style,\n datum: datum\n };\n}; // eslint-disable-next-line max-params\n\n\nvar getTickLabelProps = function (layout, style, anchors, datum, text) {\n var position = layout.position,\n transform = layout.transform;\n return {\n style: style,\n x: transform.x + position.x,\n y: transform.y + position.y,\n verticalAnchor: anchors.verticalAnchor,\n textAnchor: anchors.textAnchor,\n angle: style.angle,\n text: text,\n datum: datum\n };\n};\n\nvar getGridProps = function (layout, style, datum) {\n var edge = layout.edge,\n transform = layout.transform;\n return {\n x1: transform.x,\n y1: transform.y,\n x2: edge.x + transform.x,\n y2: edge.y + transform.y,\n style: style,\n datum: datum\n };\n};\n\nvar getAxisProps = function (modifiedProps, calculatedValues, globalTransform) {\n var style = calculatedValues.style,\n padding = calculatedValues.padding,\n isVertical = calculatedValues.isVertical;\n var width = modifiedProps.width,\n height = modifiedProps.height;\n return {\n style: style.axis,\n x1: isVertical ? globalTransform.x : padding.left + globalTransform.x,\n x2: isVertical ? globalTransform.x : width - padding.right + globalTransform.x,\n y1: isVertical ? padding.top + globalTransform.y : globalTransform.y,\n y2: isVertical ? height - padding.bottom + globalTransform.y : globalTransform.y\n };\n};\n\nvar getEvaluatedStyles = function (style, props) {\n return {\n tickStyle: Helpers.evaluateStyle(style.ticks, props),\n labelStyle: Helpers.evaluateStyle(style.tickLabels, props),\n gridStyle: Helpers.evaluateStyle(style.grid, props)\n };\n};\n\nvar getAxisLabelProps = function (props, calculatedValues, globalTransform) {\n var style = calculatedValues.style,\n orientation = calculatedValues.orientation,\n padding = calculatedValues.padding,\n labelPadding = calculatedValues.labelPadding,\n isVertical = calculatedValues.isVertical;\n var sign = orientationSign[orientation];\n var hPadding = padding.left + padding.right;\n var vPadding = padding.top + padding.bottom;\n var verticalAnchor = sign < 0 ? \"end\" : \"start\";\n var labelStyle = style.axisLabel;\n var angle = isVertical ? -90 : 0; // eslint-disable-line no-magic-numbers\n\n var x = isVertical ? globalTransform.x + sign * labelPadding : (props.width - hPadding) / 2 + padding.left + globalTransform.x;\n var y = isVertical ? (props.height - vPadding) / 2 + padding.top + globalTransform.y : sign * labelPadding + globalTransform.y;\n return {\n x: x,\n y: y,\n verticalAnchor: labelStyle.verticalAnchor || verticalAnchor,\n textAnchor: labelStyle.textAnchor || \"middle\",\n angle: labelStyle.angle === undefined ? angle : labelStyle.angle,\n style: labelStyle,\n text: props.label\n };\n};\n\nvar getAnchors = function (orientation, isVertical) {\n var anchorOrientation = {\n top: \"end\",\n left: \"end\",\n right: \"start\",\n bottom: \"start\"\n };\n var anchor = anchorOrientation[orientation];\n return {\n textAnchor: isVertical ? anchor : \"middle\",\n verticalAnchor: isVertical ? \"middle\" : anchor\n };\n};\n\nvar getLabelPadding = function (props, style) {\n var labelStyle = style.axisLabel || {};\n\n if (labelStyle.padding !== undefined && labelStyle.padding !== null) {\n return labelStyle.padding;\n }\n\n var isVertical = Axis.isVertical(props); // TODO: magic numbers\n\n /* eslint-disable no-magic-numbers*/\n\n var fontSize = labelStyle.fontSize || 14;\n return props.label ? fontSize * (isVertical ? 2.3 : 1.6) : 0;\n /* eslint-enable no-magic-numbers*/\n};\n\nvar getDefaultOrientations = function (axis, originSign, horizontal) {\n var sign = originSign || \"positive\";\n var orientations = {\n positive: {\n x: \"bottom\",\n y: \"left\"\n },\n negative: {\n x: \"top\",\n y: \"right\"\n }\n };\n var horizontalOrientations = {\n positive: {\n x: \"left\",\n y: \"bottom\"\n },\n negative: {\n x: \"right\",\n y: \"top\"\n }\n };\n return horizontal ? horizontalOrientations[sign][axis] : orientations[sign][axis];\n};\n\nvar getStandaloneOffset = function (props, calculatedValues) {\n var style = calculatedValues.style,\n scale = calculatedValues.scale,\n orientation = calculatedValues.orientation,\n padding = calculatedValues.padding,\n axis = calculatedValues.axis,\n ticks = calculatedValues.ticks,\n stringTicks = calculatedValues.stringTicks,\n isVertical = calculatedValues.isVertical,\n labelPadding = calculatedValues.labelPadding;\n var polar = props.polar,\n horizontal = props.horizontal;\n var sharedProps = {\n scale: _defineProperty({}, axis, scale),\n polar: polar,\n horizontal: horizontal,\n ticks: ticks,\n stringTicks: stringTicks\n };\n var xPadding = orientation === \"right\" ? padding.right : padding.left;\n var yPadding = orientation === \"top\" ? padding.top : padding.bottom;\n var offsetX = props.offsetX !== null && props.offsetX !== undefined ? props.offsetX : xPadding;\n var offsetY = props.offsetY !== null && props.offsetY !== undefined ? props.offsetY : yPadding;\n var fontSize = style.axisLabel.fontSize || 14; // eslint-disable-line no-magic-numbers\n\n var tickSizes = ticks.map(function (data, index) {\n var tick = stringTicks ? props.tickValues[data - 1] : data;\n var tickStyle = Helpers.evaluateStyle(style.ticks, _assign({}, sharedProps, {\n tick: tick,\n index: index\n }));\n return tickStyle.size || 0;\n });\n var totalPadding = fontSize + 2 * Math.max.apply(Math, _toConsumableArray(tickSizes)) + labelPadding;\n var minimumPadding = 1.2 * fontSize; // eslint-disable-line no-magic-numbers\n\n var x = isVertical ? totalPadding : minimumPadding;\n var y = isVertical ? minimumPadding : totalPadding;\n return {\n x: offsetX !== null && offsetX !== undefined ? offsetX : x,\n y: offsetY !== null && offsetY !== undefined ? offsetY : y\n };\n}; // eslint-disable-next-line complexity\n\n\nvar getOffset = function (props, calculatedValues) {\n var scale = calculatedValues.scale,\n origin = calculatedValues.origin,\n orientation = calculatedValues.orientation,\n orientations = calculatedValues.orientations,\n domain = calculatedValues.domain,\n padding = calculatedValues.padding;\n var top = padding.top,\n bottom = padding.bottom,\n left = padding.left,\n right = padding.right;\n var calculatedOrientation = {\n x: orientation === \"bottom\" || orientation === \"top\" ? orientation : orientations.x,\n y: orientation === \"left\" || orientation === \"right\" ? orientation : orientations.y\n }; // make the axes line up, and cross when appropriate\n\n var orientationOffset = {\n x: calculatedOrientation.y === \"left\" ? left : right,\n y: calculatedOrientation.x === \"bottom\" ? bottom : top\n };\n var originOffset = {\n x: calculatedOrientation.y === \"left\" ? 0 : props.width,\n y: calculatedOrientation.x === \"bottom\" ? props.height : 0\n };\n var originPosition = {\n x: origin.x === domain.x[0] || origin.x === domain.x[1] ? 0 : scale.x(origin.x),\n y: origin.y === domain.y[0] || origin.y === domain.y[1] ? 0 : scale.y(origin.y)\n };\n var x = originPosition.x ? Math.abs(originOffset.x - originPosition.x) : orientationOffset.x;\n var y = originPosition.y ? Math.abs(originOffset.y - originPosition.y) : orientationOffset.y;\n var offsetX = exists(props.offsetX) ? props.offsetX : x;\n var offsetY = exists(props.offsetY) ? props.offsetY : y;\n return {\n x: offsetX,\n y: offsetY\n };\n}; // eslint-disable-next-line complexity\n\n\nvar getHorizontalOffset = function (props, calculatedValues) {\n var scale = calculatedValues.scale,\n origin = calculatedValues.origin,\n orientation = calculatedValues.orientation,\n orientations = calculatedValues.orientations,\n domain = calculatedValues.domain,\n padding = calculatedValues.padding;\n var top = padding.top,\n bottom = padding.bottom,\n left = padding.left,\n right = padding.right;\n var calculatedOrientation = {\n y: orientation === \"bottom\" || orientation === \"top\" ? orientation : orientations.x,\n x: orientation === \"left\" || orientation === \"right\" ? orientation : orientations.y\n }; // make the axes line up, and cross when appropriate\n\n var orientationOffset = {\n x: calculatedOrientation.y === \"bottom\" ? bottom : top,\n y: calculatedOrientation.x === \"left\" ? left : right\n };\n var originOffset = {\n y: calculatedOrientation.x === \"left\" ? 0 : props.width,\n x: calculatedOrientation.y === \"bottom\" ? props.height : 0\n };\n var originPosition = {\n x: origin.x === domain.x[0] || origin.x === domain.x[1] ? 0 : scale.x(origin.x),\n y: origin.y === domain.y[0] || origin.y === domain.y[1] ? 0 : scale.y(origin.y)\n };\n var y = originPosition.x ? Math.abs(originOffset.x - originPosition.x) : orientationOffset.x;\n var x = originPosition.y ? Math.abs(originOffset.y - originPosition.y) : orientationOffset.y;\n var offsetX = exists(props.offsetX) ? props.offsetX : x;\n var offsetY = exists(props.offsetY) ? props.offsetY : y;\n return {\n x: offsetX,\n y: offsetY\n };\n};\n\nvar getTransform = function (props, calculatedValues, offset) {\n var orientation = calculatedValues.orientation,\n axis = calculatedValues.axis;\n var axisValue = Axis.getAxisValue(props, axis);\n return {\n top: {\n x: 0,\n y: axisValue !== undefined ? axisValue : offset.y\n },\n bottom: {\n x: 0,\n y: axisValue !== undefined ? axisValue : props.height - offset.y\n },\n left: {\n x: axisValue !== undefined ? axisValue : offset.x,\n y: 0\n },\n right: {\n x: axisValue !== undefined ? axisValue : props.width - offset.x,\n y: 0\n }\n }[orientation];\n};\n\nvar getTickPosition = function (style, orientation, isVertical) {\n var tickStyle = style.tickStyle,\n labelStyle = style.labelStyle;\n var size = tickStyle.size || 0;\n var tickPadding = tickStyle.padding || 0;\n var labelPadding = labelStyle.padding || 0;\n var tickSpacing = size + tickPadding + labelPadding;\n var sign = orientationSign[orientation];\n return {\n x: isVertical ? sign * tickSpacing : 0,\n x2: isVertical ? sign * size : 0,\n y: isVertical ? 0 : sign * tickSpacing,\n y2: isVertical ? 0 : sign * size\n };\n};\n\nvar getTickTransform = function (tick, globalTransform, isVertical) {\n return {\n x: isVertical ? globalTransform.x : tick + globalTransform.x,\n y: isVertical ? tick + globalTransform.y : globalTransform.y\n };\n};\n\nvar getGridEdge = function (props, calculatedValues) {\n var orientation = calculatedValues.orientation,\n padding = calculatedValues.padding,\n isVertical = calculatedValues.isVertical;\n var sign = -orientationSign[orientation];\n var x = isVertical ? sign * (props.width - (padding.left + padding.right)) : 0;\n var y = isVertical ? 0 : sign * (props.height - (padding.top + padding.bottom));\n return {\n x: x,\n y: y\n };\n};\n\nvar getGridOffset = function (calculatedValues, offset) {\n var padding = calculatedValues.padding,\n orientation = calculatedValues.orientation,\n crossAxis = calculatedValues.crossAxis;\n var xPadding = orientation === \"right\" ? padding.right : padding.left;\n var yPadding = orientation === \"top\" ? padding.top : padding.bottom;\n return {\n x: crossAxis ? offset.x - xPadding : 0,\n y: crossAxis ? offset.y - yPadding : 0\n };\n};\n\nvar getLayoutProps = function (modifiedProps, calculatedValues) {\n var offset;\n\n if (calculatedValues.domain.x && calculatedValues.domain.y) {\n offset = modifiedProps.horizontal ? getHorizontalOffset(modifiedProps, calculatedValues) : getOffset(modifiedProps, calculatedValues);\n } else {\n offset = getStandaloneOffset(modifiedProps, calculatedValues);\n }\n\n return {\n globalTransform: getTransform(modifiedProps, calculatedValues, offset),\n gridOffset: getGridOffset(calculatedValues, offset),\n gridEdge: getGridEdge(modifiedProps, calculatedValues)\n };\n};\n\nvar getOrientation = function (props) {\n if (props.orientation) {\n return props.orientation;\n }\n\n var defaultOrientations = {\n dependent: props.horizontal ? \"bottom\" : \"left\",\n independent: props.horizontal ? \"left\" : \"bottom\"\n };\n return props.dependentAxis ? defaultOrientations.dependent : defaultOrientations.independent;\n}; // eslint-disable-next-line complexity\n\n\nvar getCalculatedValues = function (props) {\n var defaultStyles = getStyleObject(props);\n var style = getStyles(props, defaultStyles);\n var padding = Helpers.getPadding(props);\n var labelPadding = getLabelPadding(props, style);\n var stringTicks = Axis.stringTicks(props) ? props.tickValues : undefined;\n var axis = Axis.getAxis(props);\n var axisDomain = Axis.getDomain(props);\n var axisScale = getScale(props);\n var xAxisDomain = axis === \"x\" ? axisDomain : undefined;\n var yAxisDomain = axis === \"y\" ? axisDomain : undefined;\n var xAxisScale = axis === \"x\" ? axisScale : undefined;\n var yAxisScale = axis === \"y\" ? axisScale : undefined;\n var crossAxis = !(props.crossAxis === false || props.standalone === true);\n var ticks = Axis.getTicks(props, axisScale, crossAxis);\n var tickFormat = Axis.getTickFormat(props, axisScale);\n var range = {\n x: Helpers.getRange(props, \"x\"),\n y: Helpers.getRange(props, \"y\")\n }; // use full domain if passed in from parent,\n // otherwise use the just the one axis available\n\n var domain = {\n x: props.domain && props.domain.x ? props.domain.x : xAxisDomain,\n y: props.domain && props.domain.y ? props.domain.y : yAxisDomain\n }; // use full scale if passed in from parent,\n // otherwise use the just the one axis available\n\n var scale = {\n x: props.domain && props.domain.x ? Scale.getBaseScale(props, \"x\").domain(props.domain.x).range(props.horizontal ? range.y : range.x) : xAxisScale,\n y: props.domain && props.domain.y ? Scale.getBaseScale(props, \"y\").domain(props.domain.y).range(props.horizontal ? range.x : range.y) : yAxisScale\n };\n var origin = domain.x && domain.y ? Axis.getOrigin(domain) : undefined;\n var originSign = origin ? {\n x: Axis.getOriginSign(origin.x, domain.x),\n y: Axis.getOriginSign(origin.y, domain.y)\n } : undefined;\n var orientations = originSign ? {\n x: getDefaultOrientations(\"x\", originSign.y, props.horizontal),\n y: getDefaultOrientations(\"y\", originSign.x, props.horizontal)\n } : undefined;\n var orientation = orientations ? props.orientation || orientations[axis] : getOrientation(props);\n var isVertical = Axis.isVertical(Object.assign({}, props, {\n orientation: orientation\n }));\n var anchors = getAnchors(orientation, isVertical);\n return {\n anchors: anchors,\n axis: axis,\n crossAxis: crossAxis,\n domain: domain,\n isVertical: isVertical,\n labelPadding: labelPadding,\n orientation: orientation,\n orientations: orientations,\n origin: origin,\n padding: padding,\n scale: scale,\n stringTicks: stringTicks,\n style: style,\n tickFormat: tickFormat,\n ticks: ticks\n };\n};\n\nexport var getBaseProps = function (props, fallbackProps) {\n props = Axis.modifyProps(props, fallbackProps);\n var calculatedValues = getCalculatedValues(props);\n var axis = calculatedValues.axis,\n style = calculatedValues.style,\n orientation = calculatedValues.orientation,\n isVertical = calculatedValues.isVertical,\n scale = calculatedValues.scale,\n ticks = calculatedValues.ticks,\n tickFormat = calculatedValues.tickFormat,\n anchors = calculatedValues.anchors,\n domain = calculatedValues.domain,\n stringTicks = calculatedValues.stringTicks;\n var otherAxis = axis === \"x\" ? \"y\" : \"x\";\n var _props = props,\n width = _props.width,\n height = _props.height,\n standalone = _props.standalone,\n theme = _props.theme,\n polar = _props.polar,\n padding = _props.padding,\n horizontal = _props.horizontal;\n\n var _getLayoutProps = getLayoutProps(props, calculatedValues),\n globalTransform = _getLayoutProps.globalTransform,\n gridOffset = _getLayoutProps.gridOffset,\n gridEdge = _getLayoutProps.gridEdge;\n\n var sharedProps = {\n scale: _defineProperty({}, axis, scale[axis]),\n polar: polar,\n horizontal: horizontal,\n ticks: ticks,\n stringTicks: stringTicks\n };\n var axisProps = getAxisProps(props, calculatedValues, globalTransform);\n var axisLabelProps = getAxisLabelProps(props, calculatedValues, globalTransform);\n var initialChildProps = {\n parent: _assign({\n style: style.parent,\n ticks: ticks,\n standalone: standalone,\n theme: theme,\n width: width,\n height: height,\n padding: padding,\n domain: domain\n }, sharedProps)\n };\n var gridProps = {\n dimension: otherAxis,\n range: _defineProperty({}, otherAxis, Helpers.getRange(props, otherAxis)),\n scale: props.scale && props.scale[otherAxis] ? _defineProperty({}, otherAxis, props.scale[otherAxis]) : undefined\n };\n return ticks.reduce(function (childProps, tickValue, index) {\n var _scale$axis, _scale$axis2, _scale$axis3;\n\n var tick = stringTicks ? stringTicks[index] : tickValue;\n var text = tickFormat(tickValue, index, ticks);\n var styles = getEvaluatedStyles(style, _assign({}, sharedProps, {\n tick: tick,\n tickValue: tickValue,\n index: index,\n text: text\n }));\n var tickLayout = {\n position: getTickPosition(styles, orientation, isVertical),\n transform: getTickTransform((_scale$axis = scale[axis]) === null || _scale$axis === void 0 ? void 0 : _scale$axis.call(scale, tickValue), globalTransform, isVertical)\n };\n var gridLayout = {\n edge: gridEdge,\n transform: {\n x: isVertical ? -gridOffset.x + globalTransform.x : ((_scale$axis2 = scale[axis]) === null || _scale$axis2 === void 0 ? void 0 : _scale$axis2.call(scale, tickValue)) + globalTransform.x,\n y: isVertical ? ((_scale$axis3 = scale[axis]) === null || _scale$axis3 === void 0 ? void 0 : _scale$axis3.call(scale, tickValue)) + globalTransform.y : gridOffset.y + globalTransform.y\n }\n };\n childProps[index] = {\n axis: _assign({\n dimension: axis\n }, sharedProps, axisProps),\n axisLabel: _assign({}, sharedProps, axisLabelProps),\n ticks: _assign({}, sharedProps, getTickProps(tickLayout, styles.tickStyle, tickValue)),\n tickLabels: _assign({}, sharedProps, getTickLabelProps(tickLayout, styles.labelStyle, anchors, tickValue, text)),\n grid: _assign({}, sharedProps, gridProps, getGridProps(gridLayout, styles.gridStyle, tickValue))\n };\n return childProps;\n }, initialChildProps);\n};","import _isEmpty from \"lodash/isEmpty\";\nimport _assign from \"lodash/assign\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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) || _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\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) 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\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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\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 } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\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 _possibleConstructorReturn(self, call) { if (call && (typeof call === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\nimport { PropTypes as CustomPropTypes, VictoryLabel, CommonProps, VictoryContainer, VictoryTheme, LineSegment, TextSize, addEvents, Axis, UserProps } from \"victory-core\";\nimport { getBaseProps, getStyles } from \"./helper-methods\";\nvar fallbackProps = {\n width: 450,\n height: 300,\n padding: 50\n};\nvar options = {\n components: [{\n name: \"axis\",\n index: 0\n }, {\n name: \"axisLabel\",\n index: 0\n }, {\n name: \"grid\"\n }, {\n name: \"parent\",\n index: \"parent\"\n }, {\n name: \"ticks\"\n }, {\n name: \"tickLabels\"\n }]\n};\n\nvar VictoryAxisBase = /*#__PURE__*/function (_React$Component) {\n _inherits(VictoryAxisBase, _React$Component);\n\n var _super = _createSuper(VictoryAxisBase);\n\n function VictoryAxisBase() {\n _classCallCheck(this, VictoryAxisBase);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(VictoryAxisBase, [{\n key: \"renderLine\",\n value: function renderLine(props) {\n var axisComponent = props.axisComponent;\n var axisProps = this.getComponentProps(axisComponent, \"axis\", 0);\n return /*#__PURE__*/React.cloneElement(axisComponent, axisProps);\n }\n }, {\n key: \"renderLabel\",\n value: function renderLabel(props) {\n var axisLabelComponent = props.axisLabelComponent,\n label = props.label;\n\n if (!label) {\n return null;\n }\n\n var axisLabelProps = this.getComponentProps(axisLabelComponent, \"axisLabel\", 0);\n return /*#__PURE__*/React.cloneElement(axisLabelComponent, axisLabelProps);\n }\n }, {\n key: \"renderGridAndTicks\",\n value: function renderGridAndTicks(props) {\n var _this = this;\n\n var tickComponent = props.tickComponent,\n tickLabelComponent = props.tickLabelComponent,\n gridComponent = props.gridComponent,\n name = props.name;\n\n var shouldRender = function (componentProps) {\n var _componentProps$style = componentProps.style,\n style = _componentProps$style === void 0 ? {} : _componentProps$style,\n _componentProps$event = componentProps.events,\n events = _componentProps$event === void 0 ? {} : _componentProps$event;\n var visible = style.stroke !== \"transparent\" && style.stroke !== \"none\" && style.strokeWidth !== 0;\n return visible || !_isEmpty(events);\n };\n\n return this.dataKeys.map(function (key, index) {\n var tickProps = _this.getComponentProps(tickComponent, \"ticks\", index);\n\n var BaseTickComponent = /*#__PURE__*/React.cloneElement(tickComponent, tickProps);\n var TickComponent = shouldRender(BaseTickComponent.props) ? BaseTickComponent : undefined;\n\n var gridProps = _this.getComponentProps(gridComponent, \"grid\", index);\n\n var BaseGridComponent = /*#__PURE__*/React.cloneElement(gridComponent, gridProps);\n var GridComponent = shouldRender(BaseGridComponent.props) ? BaseGridComponent : undefined;\n\n var tickLabelProps = _this.getComponentProps(tickLabelComponent, \"tickLabels\", index);\n\n var TickLabel = /*#__PURE__*/React.cloneElement(tickLabelComponent, tickLabelProps);\n var children = [GridComponent, TickComponent, TickLabel].filter(Boolean);\n return /*#__PURE__*/React.cloneElement(props.groupComponent, {\n key: \"\".concat(name, \"-tick-group-\").concat(key)\n }, children);\n });\n }\n }, {\n key: \"fixLabelOverlap\",\n value: function fixLabelOverlap(gridAndTicks, props) {\n var isVertical = Axis.isVertical(props);\n var size = isVertical ? props.height : props.width;\n\n var isVictoryLabel = function (child) {\n return child.type && child.type.role === \"label\";\n };\n\n var labels = gridAndTicks.map(function (gridAndTick) {\n return gridAndTick.props.children;\n }).reduce(function (accumulator, childArr) {\n return accumulator.concat(childArr);\n }, []).filter(isVictoryLabel).map(function (child) {\n return child.props;\n });\n\n var paddingToObject = function (padding) {\n return typeof padding === \"object\" ? _assign({}, {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }, padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n };\n\n var labelsSumSize = labels.reduce(function (sum, label) {\n var padding = paddingToObject(label.style.padding);\n var labelSize = TextSize.approximateTextSize(label.text, {\n angle: label.angle,\n fontSize: label.style.fontSize,\n letterSpacing: label.style.letterSpacing,\n fontFamily: label.style.fontFamily\n });\n return sum + (isVertical ? labelSize.height + padding.top + padding.bottom : labelSize.width + padding.right + padding.left);\n }, 0);\n var availiableLabelCount = Math.floor(size * gridAndTicks.length / labelsSumSize);\n var divider = Math.ceil(gridAndTicks.length / availiableLabelCount) || 1;\n\n var getLabelCoord = function (gridAndTick) {\n return gridAndTick.props.children.filter(isVictoryLabel).reduce(function (prev, child) {\n return (isVertical ? child.props.y : child.props.x) || 0;\n }, 0);\n };\n\n var sorted = gridAndTicks.sort(function (a, b) {\n return isVertical ? getLabelCoord(b) - getLabelCoord(a) // ordinary axis has top-bottom orientation\n : getLabelCoord(a) - getLabelCoord(b);\n } // ordinary axis has left-right orientation\n );\n return sorted.filter(function (gridAndTick, index) {\n return index % divider === 0;\n });\n } // Overridden in native versions\n\n }, {\n key: \"shouldAnimate\",\n value: function shouldAnimate() {\n return !!this.props.animate;\n }\n }, {\n key: \"render\",\n value: function render() {\n var animationWhitelist = VictoryAxis.animationWhitelist;\n var props = Axis.modifyProps(this.props, fallbackProps);\n var userProps = UserProps.getSafeUserProps(this.props);\n\n if (this.shouldAnimate()) {\n return this.animateComponent(props, animationWhitelist);\n }\n\n var gridAndTicks = this.renderGridAndTicks(props);\n var modifiedGridAndTicks = props.fixLabelOverlap ? this.fixLabelOverlap(gridAndTicks, props) : gridAndTicks;\n var children = [this.renderLine(props), this.renderLabel(props)].concat(_toConsumableArray(modifiedGridAndTicks));\n var container = /*#__PURE__*/React.cloneElement(props.containerComponent, userProps);\n return props.standalone ? this.renderContainer(container, children) : /*#__PURE__*/React.cloneElement(props.groupComponent, userProps, children);\n }\n }]);\n\n return VictoryAxisBase;\n}(React.Component);\n\nVictoryAxisBase.animationWhitelist = [\"style\", \"domain\", \"range\", \"tickCount\", \"tickValues\", \"offsetX\", \"offsetY\", \"padding\", \"width\", \"height\"];\nVictoryAxisBase.displayName = \"VictoryAxis\";\nVictoryAxisBase.role = \"axis\";\nVictoryAxisBase.defaultTransitions = {\n onExit: {\n duration: 500\n },\n onEnter: {\n duration: 500\n }\n};\nVictoryAxisBase.propTypes = _objectSpread(_objectSpread({}, CommonProps.baseProps), {}, {\n axisComponent: PropTypes.element,\n axisLabelComponent: PropTypes.element,\n axisValue: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.object]),\n categories: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.shape({\n x: PropTypes.arrayOf(PropTypes.string),\n y: PropTypes.arrayOf(PropTypes.string)\n })]),\n crossAxis: PropTypes.bool,\n dependentAxis: PropTypes.bool,\n events: PropTypes.arrayOf(PropTypes.shape({\n target: PropTypes.oneOf([\"axis\", \"axisLabel\", \"grid\", \"ticks\", \"tickLabels\"]),\n eventKey: PropTypes.oneOfType([PropTypes.array, CustomPropTypes.allOfType([CustomPropTypes.integer, CustomPropTypes.nonNegative]), PropTypes.string]),\n eventHandlers: PropTypes.object\n })),\n fixLabelOverlap: PropTypes.bool,\n gridComponent: PropTypes.element,\n groupComponent: PropTypes.element,\n invertAxis: PropTypes.bool,\n label: PropTypes.any,\n offsetX: PropTypes.number,\n offsetY: PropTypes.number,\n orientation: PropTypes.oneOf([\"top\", \"bottom\", \"left\", \"right\"]),\n origin: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n stringMap: PropTypes.object,\n style: PropTypes.shape({\n parent: PropTypes.object,\n axis: PropTypes.object,\n axisLabel: PropTypes.object,\n grid: PropTypes.object,\n ticks: PropTypes.object,\n tickLabels: PropTypes.object\n }),\n tickComponent: PropTypes.element,\n tickCount: CustomPropTypes.allOfType([CustomPropTypes.integer, CustomPropTypes.greaterThanZero]),\n tickFormat: PropTypes.oneOfType([PropTypes.func, CustomPropTypes.homogeneousArray]),\n tickLabelComponent: PropTypes.element,\n tickValues: CustomPropTypes.homogeneousArray\n});\nVictoryAxisBase.defaultProps = {\n axisComponent: /*#__PURE__*/React.createElement(LineSegment, null),\n axisLabelComponent: /*#__PURE__*/React.createElement(VictoryLabel, null),\n tickLabelComponent: /*#__PURE__*/React.createElement(VictoryLabel, null),\n tickComponent: /*#__PURE__*/React.createElement(LineSegment, null),\n gridComponent: /*#__PURE__*/React.createElement(LineSegment, null),\n standalone: true,\n theme: VictoryTheme.grayscale,\n containerComponent: /*#__PURE__*/React.createElement(VictoryContainer, null),\n groupComponent: /*#__PURE__*/React.createElement(\"g\", {\n role: \"presentation\"\n }),\n fixLabelOverlap: false\n};\nVictoryAxisBase.getDomain = Axis.getDomain;\nVictoryAxisBase.getAxis = Axis.getAxis;\n\nVictoryAxisBase.getStyles = function (props) {\n return getStyles(props);\n};\n\nVictoryAxisBase.getBaseProps = function (props) {\n return getBaseProps(props, fallbackProps);\n};\n\nVictoryAxisBase.expectedComponents = [\"axisComponent\", \"axisLabelComponent\", \"groupComponent\", \"containerComponent\", \"tickComponent\", \"tickLabelComponent\", \"gridComponent\"];\nexport var VictoryAxis = addEvents(VictoryAxisBase, options);","import _isNil from \"lodash/isNil\";\nimport _assign from \"lodash/assign\";\nimport { Collection, Data, Domain, Helpers, LabelHelpers, Scale } from \"victory-core\";\nexport var getBarPosition = function (props, datum) {\n var getDefaultMin = function (axis) {\n var defaultZero = Scale.getType(props.scale[axis]) === \"log\" ? 1 / Number.MAX_SAFE_INTEGER : 0;\n var defaultMin = defaultZero;\n var minY = Collection.getMinValue(props.domain[axis]);\n var maxY = Collection.getMaxValue(props.domain[axis]);\n\n if (minY < 0 && maxY <= 0) {\n defaultMin = maxY;\n } else if (minY >= 0 && maxY > 0) {\n defaultMin = minY;\n }\n\n return datum[\"_\".concat(axis)] instanceof Date ? new Date(defaultMin) : defaultMin;\n };\n\n var _y0 = datum._y0 !== undefined ? datum._y0 : getDefaultMin(\"y\");\n\n var _x0 = datum._x0 !== undefined ? datum._x0 : getDefaultMin(\"x\");\n\n return Helpers.scalePoint(props, _assign({}, datum, {\n _y0: _y0,\n _x0: _x0\n }));\n};\n\nvar getCalculatedValues = function (props) {\n var polar = props.polar;\n var defaultStyles = Helpers.getDefaultStyles(props, \"bar\");\n var style = !props.disableInlineStyles ? Helpers.getStyles(props.style, defaultStyles) : {};\n var range = props.range || {\n x: Helpers.getRange(props, \"x\"),\n y: Helpers.getRange(props, \"y\")\n };\n var domain = {\n x: Domain.getDomainWithZero(props, \"x\"),\n y: Domain.getDomainWithZero(props, \"y\")\n };\n var scale = {\n x: Scale.getBaseScale(props, \"x\").domain(domain.x).range(props.horizontal ? range.y : range.x),\n y: Scale.getBaseScale(props, \"y\").domain(domain.y).range(props.horizontal ? range.x : range.y)\n };\n var origin = polar ? props.origin || Helpers.getPolarOrigin(props) : undefined;\n var data = Data.getData(props);\n data = Data.formatDataFromDomain(data, domain, 0);\n return {\n style: style,\n data: data,\n scale: scale,\n domain: domain,\n origin: origin\n };\n};\n\nexport var getBaseProps = function (props, fallbackProps) {\n var modifiedProps = Helpers.modifyProps(props, fallbackProps, \"bar\");\n props = _assign({}, modifiedProps, getCalculatedValues(modifiedProps));\n var _props = props,\n alignment = _props.alignment,\n barRatio = _props.barRatio,\n cornerRadius = _props.cornerRadius,\n data = _props.data,\n disableInlineStyles = _props.disableInlineStyles,\n domain = _props.domain,\n events = _props.events,\n height = _props.height,\n horizontal = _props.horizontal,\n origin = _props.origin,\n padding = _props.padding,\n polar = _props.polar,\n scale = _props.scale,\n sharedEvents = _props.sharedEvents,\n standalone = _props.standalone,\n style = _props.style,\n theme = _props.theme,\n width = _props.width,\n labels = _props.labels,\n name = _props.name,\n barWidth = _props.barWidth,\n getPath = _props.getPath;\n var initialChildProps = {\n parent: {\n horizontal: horizontal,\n domain: domain,\n scale: scale,\n width: width,\n height: height,\n data: data,\n standalone: standalone,\n name: name,\n theme: theme,\n polar: polar,\n origin: origin,\n padding: padding,\n style: style.parent\n }\n };\n return data.reduce(function (childProps, datum, index) {\n var eventKey = !_isNil(datum.eventKey) ? datum.eventKey : index;\n\n var _getBarPosition = getBarPosition(props, datum),\n x = _getBarPosition.x,\n y = _getBarPosition.y,\n y0 = _getBarPosition.y0,\n x0 = _getBarPosition.x0;\n\n var dataProps = {\n alignment: alignment,\n barRatio: barRatio,\n barWidth: barWidth,\n cornerRadius: cornerRadius,\n data: data,\n datum: datum,\n disableInlineStyles: disableInlineStyles,\n getPath: getPath,\n horizontal: horizontal,\n index: index,\n polar: polar,\n origin: origin,\n scale: scale,\n style: style.data,\n width: width,\n height: height,\n x: x,\n y: y,\n y0: y0,\n x0: x0\n };\n childProps[eventKey] = {\n data: dataProps\n };\n var text = LabelHelpers.getText(props, datum, index);\n\n if (text !== undefined && text !== null || labels && (events || sharedEvents)) {\n childProps[eventKey].labels = LabelHelpers.getProps(props, index);\n }\n\n return childProps;\n }, initialChildProps);\n};","import _isPlainObject from \"lodash/isPlainObject\";\nimport _isNil from \"lodash/isNil\";\nimport _assign from \"lodash/assign\";\nimport { Helpers } from \"victory-core\";\nexport var getBarWidth = function (barWidth, props) {\n var scale = props.scale,\n data = props.data,\n defaultBarWidth = props.defaultBarWidth,\n style = props.style;\n\n if (barWidth) {\n return Helpers.evaluateProp(barWidth, props);\n } else if (style.width) {\n return style.width;\n }\n\n var range = scale.x.range();\n var extent = Math.abs(range[1] - range[0]);\n var bars = data.length + 2;\n var barRatio = props.barRatio || 0.5;\n var defaultWidth = barRatio * (data.length < 2 ? defaultBarWidth : extent / bars);\n return Math.max(1, defaultWidth);\n};\n\nvar getCornerRadiusFromObject = function (cornerRadius, props) {\n var realCornerRadius = {\n topLeft: 0,\n topRight: 0,\n bottomLeft: 0,\n bottomRight: 0\n };\n\n var updateCornerRadius = function (corner, fallback) {\n if (!_isNil(cornerRadius[corner])) {\n realCornerRadius[corner] = Helpers.evaluateProp(cornerRadius[corner], props);\n } else if (!_isNil(cornerRadius[fallback])) {\n realCornerRadius[corner] = Helpers.evaluateProp(cornerRadius[fallback], props);\n }\n };\n\n updateCornerRadius(\"topLeft\", \"top\");\n updateCornerRadius(\"topRight\", \"top\");\n updateCornerRadius(\"bottomLeft\", \"bottom\");\n updateCornerRadius(\"bottomRight\", \"bottom\");\n return realCornerRadius;\n};\n\nexport var getCornerRadius = function (cornerRadius, props) {\n var realCornerRadius = {\n topLeft: 0,\n topRight: 0,\n bottomLeft: 0,\n bottomRight: 0\n };\n\n if (!cornerRadius) {\n return realCornerRadius;\n }\n\n if (_isPlainObject(cornerRadius)) {\n return getCornerRadiusFromObject(cornerRadius, props);\n }\n\n realCornerRadius.topLeft = Helpers.evaluateProp(cornerRadius, props);\n realCornerRadius.topRight = Helpers.evaluateProp(cornerRadius, props);\n return realCornerRadius;\n};\nexport var getStyle = function () {\n var style = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var props = arguments.length > 1 ? arguments[1] : undefined;\n\n if (props.disableInlineStyles) {\n return {};\n }\n\n var stroke = style.fill || \"black\";\n var baseStyle = {\n fill: \"black\",\n stroke: stroke\n };\n return Helpers.evaluateStyle(_assign(baseStyle, style), props);\n};","/**\n * A point in the 2d plane\n * @param {number} x - x coordinate\n * @param {number} y - y coordinate\n * @returns {object} - point object\n */\nvar point = function (x, y) {\n return {\n x: x,\n y: y,\n distance: function (p1) {\n return Math.sqrt(Math.pow(this.x - p1.x, 2) + Math.pow(this.y - p1.y, 2));\n },\n // vector addition in 2d plane\n add: function (p1) {\n return point(this.x + p1.x, this.y + p1.y);\n },\n // vector subtraction in 2d\n // returns p0 - p1\n subtract: function (p1) {\n return point(this.x - p1.x, this.y - p1.y);\n },\n // multiply a 2d point by a scalar\n scalarMult: function (n) {\n return point(this.x * n, this.y * n);\n },\n scalarDivide: function (n) {\n if (n === 0) {\n throw new Error(\"Division by 0 error\");\n }\n\n return point(this.x / n, this.y / n);\n },\n equals: function (p1) {\n return this.x === p1.x && this.y === p1.y;\n }\n };\n};\n/**\n * A circle in the 2d plane\n * @param {point} center - center of circle\n * @param {number} radius - radius of circle\n * @returns {object} - point object\n */\n\n\nvar circle = function (center, radius) {\n return {\n center: center,\n radius: radius,\n hasIntersection: function (circle1) {\n var P0 = this.center;\n var P1 = circle1.center;\n var r0 = this.radius;\n var r1 = circle1.radius;\n var d = P0.distance(P1);\n\n if (d > r0 + r1) {\n return false; // separate circles\n }\n\n if (d < Math.abs(r0 - r1)) {\n return false; // one circle contains another\n }\n\n return true;\n },\n equals: function (circle1) {\n var P0 = this.center;\n var P1 = circle1.center;\n var r0 = this.radius;\n var r1 = circle1.radius;\n return r0 === r1 && P0.equals(P1);\n },\n // Source: http://paulbourke.net/geometry/circlesphere/\n // \"Intersection of two circles\" by Paul Bourke\n // Left-most point is returned as 0th element of array\n // Right-most point is returned as 1st elemennt of array\n intersection: function (circle1) {\n // eslint-disable-line max-statements\n var P0 = this.center;\n var P1 = circle1.center;\n var r0 = this.radius;\n var r1 = circle1.radius;\n var d = P0.distance(P1);\n\n if (!this.hasIntersection(circle1) || this.equals(circle1)) {\n return [];\n }\n\n var a = (Math.pow(r0, 2) - Math.pow(r1, 2) + Math.pow(d, 2)) / (2 * d);\n var h = Math.sqrt(Math.pow(r0, 2) - Math.pow(a, 2));\n var P2 = P0.add(P1.subtract(P0).scalarMult(a).scalarDivide(d));\n var x0 = P0.x,\n y0 = P0.y;\n var x1 = P1.x,\n y1 = P1.y;\n var x2 = P2.x,\n y2 = P2.y;\n var P3s = [point(x2 - h * (y1 - y0) / d, y2 + h * (x1 - x0) / d), point(x2 + h * (y1 - y0) / d, y2 - h * (x1 - x0) / d)];\n P3s.sort(function (Point1, Point2) {\n return Point1.x - Point2.x;\n });\n return P3s;\n },\n solveX: function (y) {\n var sqrt = Math.sqrt(Math.pow(this.radius, 2) - Math.pow(y - this.center.y, 2));\n return [this.center.x - sqrt, this.center.x + sqrt];\n },\n solveY: function (x) {\n var sqrt = Math.sqrt(Math.pow(this.radius, 2) - Math.pow(x - this.center.x, 2));\n return [this.center.y - sqrt, this.center.y + sqrt];\n }\n };\n};\n\nexport { circle, point };","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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) || _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\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) 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\nimport * as d3Shape from \"victory-vendor/d3-shape\";\nimport { circle, point } from \"./geometry-helper-methods\";\n\nvar getPosition = function (props, width) {\n var x = props.x,\n x0 = props.x0,\n y = props.y,\n y0 = props.y0,\n horizontal = props.horizontal;\n var alignment = props.alignment || \"middle\";\n var size = alignment === \"middle\" ? width / 2 : width;\n var sign = horizontal ? -1 : 1;\n\n if (horizontal) {\n return {\n x0: x0,\n x1: x,\n y0: alignment === \"start\" ? y : y - sign * size,\n y1: alignment === \"end\" ? y : y + sign * size\n };\n }\n\n return {\n x0: alignment === \"start\" ? x : x - sign * size,\n x1: alignment === \"end\" ? x : x + sign * size,\n y0: y0,\n y1: y\n };\n};\n\nvar getAngle = function (props, index) {\n var data = props.data,\n scale = props.scale;\n var x = data[index]._x1 === undefined ? \"_x\" : \"_x1\";\n return scale.x(data[index][x]);\n};\n\nvar getAngularWidth = function (props, width) {\n var scale = props.scale;\n var range = scale.y.range();\n var r = Math.max.apply(Math, _toConsumableArray(range));\n var angularRange = Math.abs(scale.x.range()[1] - scale.x.range()[0]);\n return width / (2 * Math.PI * r) * angularRange;\n};\n\nvar transformAngle = function (angle) {\n return -1 * angle + Math.PI / 2;\n};\n\nexport var getCustomBarPath = function (props, width) {\n var getPath = props.getPath;\n\n var propsWithCalculatedValues = _objectSpread(_objectSpread({}, props), getPosition(props, width));\n\n return getPath(propsWithCalculatedValues);\n};\n\nvar getStartAngle = function (props, index) {\n var data = props.data,\n scale = props.scale,\n alignment = props.alignment;\n var currentAngle = getAngle(props, index);\n var angularRange = Math.abs(scale.x.range()[1] - scale.x.range()[0]);\n var previousAngle = index === 0 ? getAngle(props, data.length - 1) - Math.PI * 2 : getAngle(props, index - 1);\n\n if (index === 0 && angularRange < 2 * Math.PI) {\n return scale.x.range()[0];\n } else if (alignment === \"start\" || alignment === \"end\") {\n return alignment === \"start\" ? previousAngle : currentAngle;\n }\n\n return (currentAngle + previousAngle) / 2;\n};\n\nvar getEndAngle = function (props, index) {\n var data = props.data,\n scale = props.scale,\n alignment = props.alignment;\n var currentAngle = getAngle(props, index);\n var angularRange = Math.abs(scale.x.range()[1] - scale.x.range()[0]);\n var lastAngle = scale.x.range()[1] === 2 * Math.PI ? getAngle(props, 0) + Math.PI * 2 : scale.x.range()[1];\n var nextAngle = index === data.length - 1 ? getAngle(props, 0) + Math.PI * 2 : getAngle(props, index + 1);\n\n if (index === data.length - 1 && angularRange < 2 * Math.PI) {\n return lastAngle;\n } else if (alignment === \"start\" || alignment === \"end\") {\n return alignment === \"start\" ? currentAngle : nextAngle;\n }\n\n return (currentAngle + nextAngle) / 2;\n};\n\nvar mapPointsToPath = function (coords, cornerRadius, direction) {\n var topLeftPath = \"\".concat(cornerRadius.topLeft, \" \").concat(cornerRadius.topLeft, \" \").concat(direction);\n var topRightPath = \"\".concat(cornerRadius.topRight, \" \").concat(cornerRadius.topRight, \" \").concat(direction);\n var bottomLeftPath = \"\".concat(cornerRadius.bottomLeft, \" \").concat(cornerRadius.bottomLeft, \" \").concat(direction);\n var bottomRightPath = \"\".concat(cornerRadius.bottomRight, \" \").concat(cornerRadius.bottomRight, \" \").concat(direction);\n var commands = [\"M\", \"A \".concat(bottomLeftPath, \",\"), \"L\", \"A \".concat(topLeftPath, \",\"), \"L\", \"A \".concat(topRightPath, \",\"), \"L\", \"A \".concat(bottomRightPath, \",\")];\n var path = commands.reduce(function (acc, command, i) {\n acc += \"\".concat(command, \" \").concat(coords[i].x, \", \").concat(coords[i].y, \" \\n\");\n return acc;\n }, \"\");\n return \"\".concat(path, \" z\");\n};\n\nvar getVerticalBarPoints = function (position, sign, cr) {\n var x0 = position.x0,\n x1 = position.x1,\n y0 = position.y0,\n y1 = position.y1; // eslint-disable-next-line max-statements, max-len\n\n var getHalfPoints = function (side) {\n var isLeft = side === \"Left\";\n var signL = isLeft ? 1 : -1;\n var x = isLeft ? x0 : x1;\n var bottomPoint = {\n x: x + signL * cr[\"bottom\".concat(side)],\n y: y0\n };\n var bottomMiddlePoint = {\n x: x,\n y: y0 - sign * cr[\"bottom\".concat(side)]\n };\n var topMiddlePoint = {\n x: x,\n y: y1 + sign * cr[\"top\".concat(side)]\n };\n var topPoint = {\n x: x + signL * cr[\"top\".concat(side)],\n y: y1\n };\n var hasIntersection = sign === 1 ? y0 - cr[\"bottom\".concat(side)] < y1 + cr[\"top\".concat(side)] : y0 + cr[\"bottom\".concat(side)] > y1 - cr[\"top\".concat(side)];\n\n if (hasIntersection) {\n var topCenter = point(x + signL * cr[\"top\".concat(side)], y1 + sign * cr[\"top\".concat(side)]);\n var topCircle = circle(topCenter, cr[\"top\".concat(side)]);\n var bottomCenter = point(x + signL * cr[\"bottom\".concat(side)], y0 - sign * cr[\"bottom\".concat(side)]);\n var bottomCircle = circle(bottomCenter, cr[\"bottom\".concat(side)]);\n var circleIntersection = topCircle.intersection(bottomCircle);\n var hasArcIntersection = circleIntersection.length > 0;\n\n if (hasArcIntersection) {\n var arcIntersection = circleIntersection[isLeft ? 0 : 1];\n bottomMiddlePoint = {\n x: arcIntersection.x,\n y: arcIntersection.y\n };\n topMiddlePoint = {\n x: arcIntersection.x,\n y: arcIntersection.y\n };\n } else {\n var hasBottomLineTopArcIntersection = cr[\"top\".concat(side)] > cr[\"bottom\".concat(side)];\n\n if (hasBottomLineTopArcIntersection) {\n var newX = topCircle.solveX(y0)[isLeft ? 0 : 1];\n bottomPoint = {\n x: newX,\n y: y0\n };\n bottomMiddlePoint = {\n x: newX,\n y: y0\n };\n topMiddlePoint = {\n x: newX,\n y: y0\n };\n } else {\n var _newX = bottomCircle.solveX(y1)[isLeft ? 0 : 1];\n bottomMiddlePoint = {\n x: _newX,\n y: y1\n };\n topMiddlePoint = {\n x: _newX,\n y: y1\n };\n topPoint = {\n x: _newX,\n y: y1\n };\n }\n }\n }\n\n var points = [bottomPoint, bottomMiddlePoint, topMiddlePoint, topPoint];\n return isLeft ? points : points.reverse();\n };\n\n return getHalfPoints(\"Left\").concat(getHalfPoints(\"Right\"));\n};\n\nvar getHorizontalBarPoints = function (position, sign, cr) {\n var y0 = position.y0,\n y1 = position.y1;\n var x0 = position.x0 < position.x1 ? position.x0 : position.x1;\n var x1 = position.x0 < position.x1 ? position.x1 : position.x0; // eslint-disable-next-line max-statements, max-len\n\n var getHalfPoints = function (side) {\n var isTop = side === \"top\";\n var signL = isTop ? -1 : 1;\n var y = isTop ? y1 : y0;\n var leftPoint = {\n x: x0,\n y: y - signL * cr[\"\".concat(side, \"Left\")]\n };\n var leftMiddlePoint = {\n x: x0 + cr[\"\".concat(side, \"Left\")],\n y: y\n };\n var rightMiddlePoint = {\n x: x1 - cr[\"\".concat(side, \"Right\")],\n y: y\n };\n var rightPoint = {\n x: x1,\n y: y - signL * cr[\"\".concat(side, \"Right\")]\n };\n var hasIntersection = leftMiddlePoint.x > rightMiddlePoint.x;\n\n if (hasIntersection) {\n var leftCenter = point(x0 + cr[\"\".concat(side, \"Left\")], y - signL * cr[\"\".concat(side, \"Left\")]);\n var leftCircle = circle(leftCenter, cr[\"\".concat(side, \"Left\")]);\n var rightCenter = point(x1 - cr[\"\".concat(side, \"Right\")], y - signL * cr[\"\".concat(side, \"Right\")]);\n var rightCircle = circle(rightCenter, cr[\"\".concat(side, \"Right\")]);\n var circleIntersection = leftCircle.intersection(rightCircle);\n var hasArcIntersection = circleIntersection.length > 0;\n\n if (hasArcIntersection) {\n var arcIntersection = circleIntersection[sign > 0 ? 1 : 0];\n leftMiddlePoint = {\n x: arcIntersection.x,\n y: arcIntersection.y\n };\n rightMiddlePoint = {\n x: arcIntersection.x,\n y: arcIntersection.y\n };\n } else {\n var hasLeftLineRightArcIntersection = cr[\"\".concat(side, \"Right\")] > cr[\"\".concat(side, \"Left\")];\n\n if (hasLeftLineRightArcIntersection) {\n var newY = rightCircle.solveY(x0)[isTop ? 0 : 1];\n leftPoint = {\n x: x0,\n y: newY\n };\n leftMiddlePoint = {\n x: x0,\n y: newY\n };\n rightMiddlePoint = {\n x: x0,\n y: newY\n };\n } else {\n var _newY = leftCircle.solveY(x1)[isTop ? 0 : 1];\n rightPoint = {\n x: x1,\n y: _newY\n };\n rightMiddlePoint = {\n x: x1,\n y: _newY\n };\n leftMiddlePoint = {\n x: x1,\n y: _newY\n };\n }\n }\n }\n\n return [leftPoint, leftMiddlePoint, rightMiddlePoint, rightPoint];\n };\n\n var topPoints = getHalfPoints(\"top\");\n var bottomPoints = getHalfPoints(\"bottom\");\n return [bottomPoints[1], bottomPoints[0]].concat(_toConsumableArray(topPoints), [// eslint-disable-next-line no-magic-numbers\n bottomPoints[3], bottomPoints[2]]);\n}; // eslint-disable-next-line max-params\n\n\nexport var getVerticalBarPath = function (props, width, cornerRadius) {\n var position = getPosition(props, width);\n var sign = position.y0 > position.y1 ? 1 : -1;\n var direction = sign > 0 ? \"0 0 1\" : \"0 0 0\";\n var points = getVerticalBarPoints(position, sign, cornerRadius);\n return mapPointsToPath(points, cornerRadius, direction);\n}; // eslint-disable-next-line max-params\n\nexport var getHorizontalBarPath = function (props, width, cornerRadius) {\n var position = getPosition(props, width);\n var sign = position.x0 < position.x1 ? 1 : -1;\n var direction = \"0 0 1\";\n var cr = {\n topRight: sign > 0 ? cornerRadius.topLeft : cornerRadius.bottomLeft,\n bottomRight: sign > 0 ? cornerRadius.topRight : cornerRadius.bottomRight,\n bottomLeft: sign > 0 ? cornerRadius.bottomRight : cornerRadius.topRight,\n topLeft: sign > 0 ? cornerRadius.bottomLeft : cornerRadius.topLeft\n };\n var points = getHorizontalBarPoints(position, sign, cr);\n return mapPointsToPath(points, cr, direction);\n};\nexport var getVerticalPolarBarPath = function (props, cornerRadius) {\n var datum = props.datum,\n scale = props.scale,\n index = props.index,\n alignment = props.alignment,\n style = props.style;\n var r1 = scale.y(datum._y0 || 0);\n var r2 = scale.y(datum._y1 !== undefined ? datum._y1 : datum._y);\n var currentAngle = scale.x(datum._x1 !== undefined ? datum._x1 : datum._x);\n var start;\n var end;\n\n if (style.width) {\n var width = getAngularWidth(props, style.width);\n var size = alignment === \"middle\" ? width / 2 : width;\n start = alignment === \"start\" ? currentAngle : currentAngle - size;\n end = alignment === \"end\" ? currentAngle : currentAngle + size;\n } else {\n start = getStartAngle(props, index);\n end = getEndAngle(props, index);\n }\n\n var getPath = function (edge) {\n var pathFunction = d3Shape.arc().innerRadius(r1).outerRadius(r2).startAngle(transformAngle(start)).endAngle(transformAngle(end)).cornerRadius(cornerRadius[edge]);\n return pathFunction();\n };\n\n var getPathData = function (edge) {\n var rightPath = getPath(\"\".concat(edge, \"Right\"));\n var rightMoves = rightPath.match(/[A-Z]/g);\n var rightCoords = rightPath.split(/[A-Z]/).slice(1);\n var rightMiddle = rightMoves.indexOf(\"L\");\n var leftPath = getPath(\"\".concat(edge, \"Left\"));\n var leftMoves = leftPath.match(/[A-Z]/g);\n var leftCoords = leftPath.split(/[A-Z]/).slice(1);\n var leftMiddle = leftMoves.indexOf(\"L\");\n return {\n rightMoves: rightMoves,\n rightCoords: rightCoords,\n rightMiddle: rightMiddle,\n leftMoves: leftMoves,\n leftCoords: leftCoords,\n leftMiddle: leftMiddle\n };\n }; // eslint-disable-next-line max-statements\n\n\n var getTopPath = function () {\n var topRight = cornerRadius.topRight,\n topLeft = cornerRadius.topLeft;\n var arcLength = r2 * Math.abs(end - start);\n\n var _getPathData = getPathData(\"top\"),\n rightMoves = _getPathData.rightMoves,\n rightCoords = _getPathData.rightCoords,\n rightMiddle = _getPathData.rightMiddle,\n leftMoves = _getPathData.leftMoves,\n leftCoords = _getPathData.leftCoords,\n leftMiddle = _getPathData.leftMiddle;\n\n var moves;\n var coords;\n\n if (topRight === topLeft || arcLength < 2 * topRight + 2 * topLeft) {\n moves = topRight > topLeft ? rightMoves : leftMoves;\n coords = topRight > topLeft ? rightCoords : leftCoords;\n } else {\n // eslint-disable-next-line no-magic-numbers\n var isShort = function (middle) {\n return middle < 3;\n };\n\n var rightOffset = topLeft > topRight && isShort(rightMiddle) ? 1 : 2;\n var leftOffset;\n\n if (topRight > topLeft) {\n var defaultOffset = isShort(rightMiddle) ? leftMiddle : leftMiddle - 2;\n leftOffset = isShort(leftMiddle) ? leftMiddle - 1 : defaultOffset;\n } else {\n var _defaultOffset = isShort(leftMiddle) ? 1 : 2;\n\n leftOffset = isShort(rightMiddle) ? _defaultOffset : leftMiddle - 2;\n }\n\n moves = [].concat(_toConsumableArray(rightMoves.slice(0, rightOffset)), _toConsumableArray(leftMoves.slice(leftOffset)));\n coords = [].concat(_toConsumableArray(rightCoords.slice(0, rightOffset)), _toConsumableArray(leftCoords.slice(leftOffset)));\n }\n\n var middle = moves.indexOf(\"L\");\n var subMoves = moves.slice(0, middle);\n var subCoords = coords.slice(0, middle);\n return subMoves.map(function (m, i) {\n return {\n command: m,\n coords: subCoords[i].split(\",\")\n };\n });\n }; // eslint-disable-next-line max-statements\n\n\n var getBottomPath = function () {\n var bottomRight = cornerRadius.bottomRight,\n bottomLeft = cornerRadius.bottomLeft;\n var arcLength = r1 * Math.abs(end - start);\n\n var _getPathData2 = getPathData(\"bottom\"),\n rightMoves = _getPathData2.rightMoves,\n rightCoords = _getPathData2.rightCoords,\n rightMiddle = _getPathData2.rightMiddle,\n leftMoves = _getPathData2.leftMoves,\n leftCoords = _getPathData2.leftCoords,\n leftMiddle = _getPathData2.leftMiddle;\n\n var moves;\n var coords;\n\n if (bottomRight === bottomLeft || arcLength < 2 * bottomRight + 2 * bottomLeft) {\n moves = bottomRight > bottomLeft ? rightMoves : leftMoves;\n coords = bottomRight > bottomLeft ? rightCoords : leftCoords;\n } else {\n // eslint-disable-next-line no-magic-numbers\n var isShort = function (m, middle) {\n return m.length - middle < 4;\n };\n\n var shortPath = bottomRight > bottomLeft ? isShort(rightMoves, rightMiddle) : isShort(leftMoves, leftMiddle); // eslint-disable-next-line no-magic-numbers\n\n var rightOffset = shortPath ? -1 : -3;\n moves = [].concat(_toConsumableArray(leftMoves.slice(0, leftMiddle + 2)), _toConsumableArray(rightMoves.slice(rightOffset)));\n coords = [].concat(_toConsumableArray(leftCoords.slice(0, leftMiddle + 2)), _toConsumableArray(rightCoords.slice(rightOffset)));\n }\n\n var middle = moves.indexOf(\"L\");\n var subMoves = moves.slice(middle, -1);\n var subCoords = coords.slice(middle, -1);\n return subMoves.map(function (m, i) {\n return {\n command: m,\n coords: subCoords[i].split(\",\")\n };\n });\n };\n\n var topPath = getTopPath();\n var bottomPath = getBottomPath();\n var moves = [].concat(_toConsumableArray(topPath), _toConsumableArray(bottomPath));\n var path = moves.reduce(function (memo, move) {\n memo += \"\".concat(move.command, \" \").concat(move.coords.join());\n return memo;\n }, \"\");\n return \"\".concat(path, \" z\");\n};\nexport var getBarPath = function (props, width, cornerRadius) {\n if (props.getPath) {\n return getCustomBarPath(props, width);\n }\n\n return props.horizontal ? getHorizontalBarPath(props, width, cornerRadius) : getVerticalBarPath(props, width, cornerRadius);\n};\nexport var getPolarBarPath = function (props, cornerRadius) {\n // TODO Radial bars\n return getVerticalPolarBarPath(props, cornerRadius);\n};","import _assign from \"lodash/assign\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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 PropTypes from \"prop-types\";\nimport React from \"react\";\nimport { CommonProps, Helpers, Path } from \"victory-core\";\nimport { getStyle, getBarWidth, getCornerRadius } from \"./bar-helper-methods\";\nimport { getPolarBarPath, getBarPath } from \"./path-helper-methods\";\n\nvar evaluateProps = function (props) {\n /**\n * Potential evaluated props of following must be evaluated in this order:\n * 1) `style`\n * 2) `barWidth`\n * 3) `cornerRadius`\n *\n * Everything else does not have to be evaluated in a particular order:\n * `ariaLabel`\n * `desc`\n * `id`\n * `tabIndex`\n */\n var style = getStyle(props.style, props);\n var barWidth = getBarWidth(props.barWidth, _assign({}, props, {\n style: style\n }));\n var cornerRadius = getCornerRadius(props.cornerRadius, _assign({}, props, {\n style: style,\n barWidth: barWidth\n }));\n var ariaLabel = Helpers.evaluateProp(props.ariaLabel, props);\n var desc = Helpers.evaluateProp(props.desc, props);\n var id = Helpers.evaluateProp(props.id, props);\n var tabIndex = Helpers.evaluateProp(props.tabIndex, props);\n return _assign({}, props, {\n ariaLabel: ariaLabel,\n style: style,\n barWidth: barWidth,\n cornerRadius: cornerRadius,\n desc: desc,\n id: id,\n tabIndex: tabIndex\n });\n};\n\nvar Bar = function (props) {\n props = evaluateProps(props);\n var _props = props,\n polar = _props.polar,\n origin = _props.origin,\n style = _props.style,\n barWidth = _props.barWidth,\n cornerRadius = _props.cornerRadius;\n var path = polar ? getPolarBarPath(props, cornerRadius) : getBarPath(props, barWidth, cornerRadius);\n var defaultTransform = polar && origin ? \"translate(\".concat(origin.x, \", \").concat(origin.y, \")\") : undefined;\n return /*#__PURE__*/React.cloneElement(props.pathComponent, _objectSpread(_objectSpread({}, props.events), {}, {\n \"aria-label\": props.ariaLabel,\n style: style,\n d: path,\n className: props.className,\n clipPath: props.clipPath,\n desc: props.desc,\n index: props.index,\n role: props.role,\n shapeRendering: props.shapeRendering,\n transform: props.transform || defaultTransform,\n tabIndex: props.tabIndex\n }));\n};\n\nBar.propTypes = _objectSpread(_objectSpread({}, CommonProps.primitiveProps), {}, {\n alignment: PropTypes.oneOf([\"start\", \"middle\", \"end\"]),\n barRatio: PropTypes.number,\n barWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n cornerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.func, PropTypes.shape({\n top: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n topLeft: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n topRight: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n bottom: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n bottomLeft: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n bottomRight: PropTypes.oneOfType([PropTypes.number, PropTypes.func])\n })]),\n datum: PropTypes.object,\n getPath: PropTypes.func,\n horizontal: PropTypes.bool,\n pathComponent: PropTypes.element,\n width: PropTypes.number,\n x: PropTypes.number,\n y: PropTypes.number,\n y0: PropTypes.number\n});\nBar.defaultProps = {\n defaultBarWidth: 8,\n pathComponent: /*#__PURE__*/React.createElement(Path, null),\n role: \"presentation\",\n shapeRendering: \"auto\"\n};\nexport default Bar;","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\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 } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\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 _possibleConstructorReturn(self, call) { if (call && (typeof call === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\nimport { getBaseProps } from \"./helper-methods\";\nimport Bar from \"./bar\";\nimport { Helpers, VictoryLabel, VictoryContainer, VictoryTheme, CommonProps, addEvents, Data, Domain, UserProps } from \"victory-core\";\nvar fallbackProps = {\n width: 450,\n height: 300,\n padding: 50\n};\nvar defaultData = [{\n x: 1,\n y: 1\n}, {\n x: 2,\n y: 2\n}, {\n x: 3,\n y: 3\n}, {\n x: 4,\n y: 4\n}];\n\nvar VictoryBar = /*#__PURE__*/function (_React$Component) {\n _inherits(VictoryBar, _React$Component);\n\n var _super = _createSuper(VictoryBar);\n\n function VictoryBar() {\n _classCallCheck(this, VictoryBar);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(VictoryBar, [{\n key: \"shouldAnimate\",\n value: // Overridden in native versions\n function shouldAnimate() {\n return !!this.props.animate;\n }\n }, {\n key: \"render\",\n value: function render() {\n var animationWhitelist = VictoryBar.animationWhitelist,\n role = VictoryBar.role;\n var props = Helpers.modifyProps(this.props, fallbackProps, role);\n\n if (this.shouldAnimate()) {\n return this.animateComponent(props, animationWhitelist);\n }\n\n var children = this.renderData(props);\n var component = props.standalone ? this.renderContainer(props.containerComponent, children) : children;\n return UserProps.withSafeUserProps(component, props);\n }\n }]);\n\n return VictoryBar;\n}(React.Component);\n\nVictoryBar.animationWhitelist = [\"data\", \"domain\", \"height\", \"padding\", \"style\", \"width\"];\nVictoryBar.displayName = \"VictoryBar\";\nVictoryBar.role = \"bar\";\nVictoryBar.defaultTransitions = {\n onLoad: {\n duration: 2000,\n before: function () {\n return {\n _y: 0,\n _y1: 0,\n _y0: 0\n };\n },\n after: function (datum) {\n return {\n _y: datum._y,\n _y1: datum._y1,\n _y0: datum._y0\n };\n }\n },\n onExit: {\n duration: 500,\n before: function () {\n return {\n _y: 0,\n yOffset: 0\n };\n }\n },\n onEnter: {\n duration: 500,\n before: function () {\n return {\n _y: 0,\n _y1: 0,\n _y0: 0\n };\n },\n after: function (datum) {\n return {\n _y: datum._y,\n _y1: datum._y1,\n _y0: datum._y0\n };\n }\n }\n};\nVictoryBar.propTypes = _objectSpread(_objectSpread(_objectSpread({}, CommonProps.baseProps), CommonProps.dataProps), {}, {\n alignment: PropTypes.oneOf([\"start\", \"middle\", \"end\"]),\n barRatio: PropTypes.number,\n barWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n cornerRadius: PropTypes.oneOfType([PropTypes.number, PropTypes.func, PropTypes.shape({\n top: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n topLeft: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n topRight: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n bottom: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n bottomLeft: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n bottomRight: PropTypes.oneOfType([PropTypes.number, PropTypes.func])\n })]),\n getPath: PropTypes.func,\n horizontal: PropTypes.bool\n});\nVictoryBar.defaultProps = {\n containerComponent: /*#__PURE__*/React.createElement(VictoryContainer, null),\n data: defaultData,\n dataComponent: /*#__PURE__*/React.createElement(Bar, null),\n groupComponent: /*#__PURE__*/React.createElement(\"g\", {\n role: \"presentation\"\n }),\n labelComponent: /*#__PURE__*/React.createElement(VictoryLabel, null),\n samples: 50,\n sortOrder: \"ascending\",\n standalone: true,\n theme: VictoryTheme.grayscale\n};\nVictoryBar.getDomain = Domain.getDomainWithZero;\nVictoryBar.getData = Data.getData;\n\nVictoryBar.getBaseProps = function (props) {\n return getBaseProps(props, fallbackProps);\n};\n\nVictoryBar.expectedComponents = [\"dataComponent\", \"labelComponent\", \"groupComponent\", \"containerComponent\"];\nexport default addEvents(VictoryBar);","import _assign from \"lodash/assign\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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 from \"react\";\nimport PropTypes from \"prop-types\";\nimport * as Helpers from \"../victory-util/helpers\";\nimport { CommonProps } from \"../victory-util/common-props\";\nimport { Rect } from \"./rect\";\nimport { Circle } from \"./circle\";\n\nvar evaluateProps = function (props) {\n /**\n * Potential evaluated prop is:\n * `id`\n */\n var id = Helpers.evaluateProp(props.id, props);\n return _assign({}, props, {\n id: id\n });\n};\n\nexport var Background = function (props) {\n props = evaluateProps(props);\n return props.polar ? /*#__PURE__*/React.cloneElement(props.circleComponent, _objectSpread(_objectSpread({}, props.events), {}, {\n style: props.style,\n role: props.role,\n shapeRendering: props.shapeRendering,\n cx: props.x,\n cy: props.y,\n r: props.height,\n className: props.className\n })) : /*#__PURE__*/React.cloneElement(props.rectComponent, _objectSpread(_objectSpread({}, props.events), {}, {\n style: props.style,\n role: props.role,\n shapeRendering: props.shapeRendering,\n x: props.x,\n y: props.y,\n rx: props.rx,\n ry: props.ry,\n width: props.width,\n height: props.height,\n className: props.className\n }));\n};\nBackground.propTypes = _objectSpread(_objectSpread({}, CommonProps.primitiveProps), {}, {\n circleComponent: PropTypes.element,\n height: PropTypes.number,\n rectComponent: PropTypes.element,\n rx: PropTypes.number,\n ry: PropTypes.number,\n width: PropTypes.number,\n x: PropTypes.number,\n y: PropTypes.number\n});\nBackground.defaultProps = {\n circleComponent: /*#__PURE__*/React.createElement(Circle, null),\n rectComponent: /*#__PURE__*/React.createElement(Rect, null),\n role: \"presentation\",\n shapeRendering: \"auto\"\n};","import _assign from \"lodash/assign\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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-magic-numbers: [\"error\", { \"ignore\": [0, 1, 2, 180] }]*/\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport * as Helpers from \"../victory-util/helpers\";\nimport { CommonProps } from \"../victory-util/common-props\";\nimport { Path } from \"./path\";\n\nvar getArcPath = function (props) {\n var cx = props.cx,\n cy = props.cy,\n r = props.r,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n closedPath = props.closedPath; // Always draw the path as two arcs so that complete circles may be rendered.\n\n var halfAngle = Math.abs(endAngle - startAngle) / 2 + startAngle;\n var x1 = cx + r * Math.cos(Helpers.degreesToRadians(startAngle));\n var y1 = cy - r * Math.sin(Helpers.degreesToRadians(startAngle));\n var x2 = cx + r * Math.cos(Helpers.degreesToRadians(halfAngle));\n var y2 = cy - r * Math.sin(Helpers.degreesToRadians(halfAngle));\n var x3 = cx + r * Math.cos(Helpers.degreesToRadians(endAngle));\n var y3 = cy - r * Math.sin(Helpers.degreesToRadians(endAngle));\n var largerArcFlag1 = halfAngle - startAngle <= 180 ? 0 : 1;\n var largerArcFlag2 = endAngle - halfAngle <= 180 ? 0 : 1;\n var arcStart = closedPath ? \" M \".concat(cx, \", \").concat(cy, \" L \").concat(x1, \", \").concat(y1) : \"M \".concat(x1, \", \").concat(y1);\n var arc1 = \"A \".concat(r, \", \").concat(r, \", 0, \").concat(largerArcFlag1, \", 0, \").concat(x2, \", \").concat(y2);\n var arc2 = \"A \".concat(r, \", \").concat(r, \", 0, \").concat(largerArcFlag2, \", 0, \").concat(x3, \", \").concat(y3);\n var arcEnd = closedPath ? \"Z\" : \"\";\n return \"\".concat(arcStart, \" \").concat(arc1, \" \").concat(arc2, \" \").concat(arcEnd);\n};\n\nvar evaluateProps = function (props) {\n /**\n * Potential evaluated props are:\n * `ariaLabel`\n * `desc`\n * `id`\n * `style`\n * `tabIndex`\n */\n var ariaLabel = Helpers.evaluateProp(props.ariaLabel, props);\n var desc = Helpers.evaluateProp(props.desc, props);\n var id = Helpers.evaluateProp(props.id, props);\n var style = Helpers.evaluateStyle(_assign({\n stroke: \"black\",\n fill: \"none\"\n }, props.style), props);\n var tabIndex = Helpers.evaluateProp(props.tabIndex, props);\n return _assign({}, props, {\n ariaLabel: ariaLabel,\n desc: desc,\n id: id,\n style: style,\n tabIndex: tabIndex\n });\n};\n\nexport var Arc = function (props) {\n props = evaluateProps(props);\n return /*#__PURE__*/React.cloneElement(props.pathComponent, _objectSpread(_objectSpread({}, props.events), {}, {\n \"aria-label\": props.ariaLabel,\n d: getArcPath(props),\n style: props.style,\n desc: props.desc,\n tabIndex: props.tabIndex,\n className: props.className,\n role: props.role,\n shapeRendering: props.shapeRendering,\n transform: props.transform,\n clipPath: props.clipPath\n }));\n};\nArc.propTypes = _objectSpread(_objectSpread({}, CommonProps.primitiveProps), {}, {\n closedPath: PropTypes.bool,\n cx: PropTypes.number,\n cy: PropTypes.number,\n datum: PropTypes.any,\n endAngle: PropTypes.number,\n pathComponent: PropTypes.element,\n r: PropTypes.number,\n startAngle: PropTypes.number\n});\nArc.defaultProps = {\n pathComponent: /*#__PURE__*/React.createElement(Path, null),\n role: \"presentation\",\n shapeRendering: \"auto\"\n};","import _defaults from \"lodash/defaults\";\nimport _uniqBy from \"lodash/uniqBy\";\nimport _assign from \"lodash/assign\";\nimport { Helpers, LabelHelpers, Scale, Axis } from \"victory-core\";\n\nvar getPosition = function (r, angle, axis) {\n return axis === \"x\" ? r * Math.cos(angle) : -r * Math.sin(angle);\n};\n\nvar getAxisType = function (props) {\n var typicalType = props.dependentAxis ? \"radial\" : \"angular\";\n var invertedType = typicalType === \"angular\" ? \"radial\" : \"angular\";\n return props.horizontal ? invertedType : typicalType;\n};\n\nvar filterTicks = function (ticks, scale) {\n var compareTicks = function (t) {\n return scale(t) % (2 * Math.PI);\n };\n\n return _uniqBy(ticks, compareTicks);\n};\n\nvar getEvaluatedStyles = function (style, props) {\n return {\n tickStyle: Helpers.evaluateStyle(style.ticks, props),\n labelStyle: Helpers.evaluateStyle(style.tickLabels, props),\n gridStyle: Helpers.evaluateStyle(style.grid, props)\n };\n};\n\nvar getStyleObject = function (props) {\n var _props$theme = props.theme,\n theme = _props$theme === void 0 ? {} : _props$theme,\n dependentAxis = props.dependentAxis;\n var generalAxisStyle = theme.polarAxis && theme.polarAxis.style || theme.axis && theme.axis.style;\n var polarAxisType = dependentAxis ? \"polarDependentAxis\" : \"polarIndependentAxis\";\n var standardAxisType = dependentAxis ? \"dependentAxis\" : \"independentAxis\";\n var specificAxisStyle = theme[polarAxisType] && theme[polarAxisType].style || theme[standardAxisType] && theme[standardAxisType].style;\n\n var mergeStyles = function () {\n var styleNamespaces = [\"axis\", \"axisLabel\", \"grid\", \"parent\", \"tickLabels\", \"ticks\"];\n return styleNamespaces.reduce(function (memo, curr) {\n memo[curr] = _defaults({}, specificAxisStyle[curr], generalAxisStyle[curr]);\n return memo;\n }, {});\n };\n\n return generalAxisStyle && specificAxisStyle ? mergeStyles() : specificAxisStyle || generalAxisStyle;\n};\n\nvar getRadius = function (props) {\n var _Helpers$getPadding = Helpers.getPadding(props),\n left = _Helpers$getPadding.left,\n right = _Helpers$getPadding.right,\n top = _Helpers$getPadding.top,\n bottom = _Helpers$getPadding.bottom;\n\n var width = props.width,\n height = props.height;\n return Math.min(width - left - right, height - top - bottom) / 2;\n};\n\nvar getRange = function (props, axis) {\n // Return the range from props if one is given.\n if (props.range && props.range[axis]) {\n return props.range[axis];\n } else if (props.range && Array.isArray(props.range)) {\n return props.range;\n }\n\n var axisType = getAxisType(props);\n\n if (axisType === \"angular\") {\n var startAngle = Helpers.degreesToRadians(props.startAngle);\n var endAngle = Helpers.degreesToRadians(props.endAngle);\n return [startAngle, endAngle];\n }\n\n var radius = getRadius(props);\n return [props.innerRadius || 0, radius];\n}; // exposed for use by VictoryChart (necessary?)\n\n\nexport var getScale = function (props) {\n var axis = Axis.getAxis(props);\n var scale = Scale.getBaseScale(props, axis);\n var domain = Axis.getDomain(props, axis) || scale.domain();\n var range = getRange(props, axis);\n scale.range(range);\n scale.domain(domain);\n return scale;\n};\nexport var getStyles = function (props, styleObject) {\n if (props.disableInlineStyles) {\n return {};\n }\n\n var style = props.style || {};\n styleObject = styleObject || {};\n var parentStyleProps = {\n height: \"auto\",\n width: \"100%\"\n };\n return {\n parent: _defaults(parentStyleProps, style.parent, styleObject.parent),\n axis: _defaults({}, style.axis, styleObject.axis),\n axisLabel: _defaults({}, style.axisLabel, styleObject.axisLabel),\n grid: _defaults({}, style.grid, styleObject.grid),\n ticks: _defaults({}, style.ticks, styleObject.ticks),\n tickLabels: _defaults({}, style.tickLabels, styleObject.tickLabels)\n };\n};\n\nvar getAxisAngle = function (props) {\n var axisAngle = props.axisAngle,\n startAngle = props.startAngle,\n dependentAxis = props.dependentAxis;\n var axis = Axis.getAxis(props);\n var axisValue = Axis.getAxisValue(props, axis);\n\n if (axisValue === undefined || !dependentAxis) {\n return axisAngle === undefined ? startAngle : axisAngle;\n }\n\n return Helpers.radiansToDegrees(axisValue);\n}; // eslint-disable-next-line max-params\n\n\nvar getTickProps = function (props, calculatedValues, tickValue, index) {\n var axisType = calculatedValues.axisType,\n radius = calculatedValues.radius,\n scale = calculatedValues.scale,\n style = calculatedValues.style,\n stringTicks = calculatedValues.stringTicks,\n ticks = calculatedValues.ticks,\n tickFormat = calculatedValues.tickFormat,\n origin = calculatedValues.origin;\n var text = tickFormat(tickValue, index, ticks);\n var tick = stringTicks ? stringTicks[index] : tickValue;\n\n var _getEvaluatedStyles = getEvaluatedStyles(style, {\n tick: tick,\n tickValue: tickValue,\n index: index,\n ticks: ticks,\n stringTicks: stringTicks,\n radius: radius,\n scale: scale,\n axisType: axisType,\n text: text\n }),\n tickStyle = _getEvaluatedStyles.tickStyle;\n\n var axisAngle = axisType === \"radial\" ? getAxisAngle(props, scale) : undefined;\n var tickPadding = tickStyle.padding || tickStyle.size || 0;\n var padAngle = Helpers.degreesToRadians(90 - axisAngle);\n var tickAngle = axisType === \"angular\" ? scale(tickValue) : Helpers.degreesToRadians(-1 * axisAngle);\n var tickRadius = axisType === \"angular\" ? radius : scale(tickValue);\n return axisType === \"angular\" ? {\n index: index,\n datum: tick,\n style: tickStyle,\n x1: getPosition(tickRadius, tickAngle, \"x\") + origin.x,\n y1: getPosition(tickRadius, tickAngle, \"y\") + origin.y,\n x2: getPosition(tickRadius + tickPadding, tickAngle, \"x\") + origin.x,\n y2: getPosition(tickRadius + tickPadding, tickAngle, \"y\") + origin.y\n } : {\n index: index,\n datum: tick,\n style: tickStyle,\n x1: tickRadius * Math.cos(tickAngle) + Math.cos(padAngle) * tickPadding + origin.x,\n x2: tickRadius * Math.cos(tickAngle) - Math.cos(padAngle) * tickPadding + origin.x,\n y1: tickRadius * Math.sin(tickAngle) + Math.sin(padAngle) * tickPadding + origin.y,\n y2: tickRadius * Math.sin(tickAngle) - Math.sin(padAngle) * tickPadding + origin.y\n };\n}; // eslint-disable-next-line max-params\n\n\nvar getTickLabelProps = function (props, calculatedValues, tickValue, index) {\n var axisType = calculatedValues.axisType,\n radius = calculatedValues.radius,\n tickFormat = calculatedValues.tickFormat,\n style = calculatedValues.style,\n scale = calculatedValues.scale,\n ticks = calculatedValues.ticks,\n stringTicks = calculatedValues.stringTicks,\n origin = calculatedValues.origin;\n var text = tickFormat(tickValue, index, ticks);\n var tick = stringTicks ? stringTicks[index] : tickValue;\n\n var _getEvaluatedStyles2 = getEvaluatedStyles(style, {\n text: text,\n tick: tick,\n tickValue: tickValue,\n index: index,\n ticks: ticks,\n stringTicks: stringTicks,\n radius: radius,\n scale: scale,\n axisType: axisType\n }),\n labelStyle = _getEvaluatedStyles2.labelStyle;\n\n var tickLabelComponent = props.tickLabelComponent;\n var labelPlacement = tickLabelComponent.props && tickLabelComponent.props.labelPlacement ? tickLabelComponent.props.labelPlacement : props.labelPlacement;\n var tickPadding = labelStyle.padding || 0;\n var angularPadding = 0; // TODO: do some geometry\n\n var axisAngle = axisType === \"radial\" ? getAxisAngle(props, scale) : undefined;\n var labelAngle = axisType === \"angular\" ? Helpers.radiansToDegrees(scale(tickValue)) : axisAngle + angularPadding;\n var textAngle = labelStyle.angle === undefined ? LabelHelpers.getPolarAngle(_assign({}, props, {\n labelPlacement: labelPlacement\n }), labelAngle) : labelStyle.angle;\n var labelRadius = axisType === \"angular\" ? radius + tickPadding : scale(tickValue);\n var textAnchor = labelStyle.textAnchor || LabelHelpers.getPolarTextAnchor(_assign({}, props, {\n labelPlacement: labelPlacement\n }), labelAngle);\n return {\n index: index,\n datum: tick,\n style: labelStyle,\n angle: textAngle,\n textAnchor: textAnchor,\n text: text,\n x: labelRadius * Math.cos(Helpers.degreesToRadians(labelAngle)) + origin.x,\n y: -labelRadius * Math.sin(Helpers.degreesToRadians(labelAngle)) + origin.y\n };\n}; // eslint-disable-next-line max-params\n\n\nvar getGridProps = function (props, calculatedValues, tickValue, index) {\n var axisType = calculatedValues.axisType,\n radius = calculatedValues.radius,\n style = calculatedValues.style,\n scale = calculatedValues.scale,\n stringTicks = calculatedValues.stringTicks,\n ticks = calculatedValues.ticks,\n tickFormat = calculatedValues.tickFormat,\n origin = calculatedValues.origin;\n var text = tickFormat(tickValue, index, ticks);\n var startAngle = props.startAngle,\n endAngle = props.endAngle,\n _props$innerRadius = props.innerRadius,\n innerRadius = _props$innerRadius === void 0 ? 0 : _props$innerRadius;\n var tick = stringTicks ? stringTicks[index] : tickValue;\n\n var _getEvaluatedStyles3 = getEvaluatedStyles(style, {\n tick: tick,\n tickValue: tickValue,\n index: index,\n ticks: ticks,\n stringTicks: stringTicks,\n radius: radius,\n scale: scale,\n axisType: axisType,\n text: text\n }),\n gridStyle = _getEvaluatedStyles3.gridStyle;\n\n var angle = scale(tickValue);\n return axisType === \"angular\" ? {\n index: index,\n datum: tick,\n style: gridStyle,\n x1: getPosition(radius, angle, \"x\") + origin.x,\n y1: getPosition(radius, angle, \"y\") + origin.y,\n x2: getPosition(innerRadius, angle, \"x\") + origin.x,\n y2: getPosition(innerRadius, angle, \"y\") + origin.y\n } : {\n style: gridStyle,\n index: index,\n datum: tick,\n cx: origin.x,\n cy: origin.y,\n r: scale(tickValue),\n startAngle: startAngle,\n endAngle: endAngle\n };\n};\n\nvar getAxisLabelProps = function (props, calculatedValues) {\n var axisType = calculatedValues.axisType,\n radius = calculatedValues.radius,\n style = calculatedValues.style,\n scale = calculatedValues.scale,\n origin = calculatedValues.origin;\n var axisLabelComponent = props.axisLabelComponent;\n\n if (axisType !== \"radial\") {\n return {};\n }\n\n var labelPlacement = axisLabelComponent.props && axisLabelComponent.props.labelPlacement ? axisLabelComponent.props.labelPlacement : props.labelPlacement;\n var labelStyle = style && style.axisLabel || {};\n var axisAngle = axisType === \"radial\" ? getAxisAngle(props, scale) : undefined;\n var textAngle = labelStyle.angle === undefined ? LabelHelpers.getPolarAngle(_assign({}, props, {\n labelPlacement: labelPlacement\n }), axisAngle) : labelStyle.angle;\n var labelRadius = radius + (labelStyle.padding || 0);\n var textAnchor = labelStyle.textAnchor || LabelHelpers.getPolarTextAnchor(_assign({}, props, {\n labelPlacement: labelPlacement\n }), axisAngle);\n var verticalAnchor = labelStyle.verticalAnchor || LabelHelpers.getPolarVerticalAnchor(_assign({}, props, {\n labelPlacement: labelPlacement\n }), axisAngle);\n return {\n style: labelStyle,\n angle: textAngle,\n textAnchor: textAnchor,\n verticalAnchor: verticalAnchor,\n text: props.label,\n x: getPosition(labelRadius, Helpers.degreesToRadians(axisAngle), \"x\") + origin.x,\n y: getPosition(labelRadius, Helpers.degreesToRadians(axisAngle), \"y\") + origin.y\n };\n};\n\nvar getAxisProps = function (modifiedProps, calculatedValues) {\n var style = calculatedValues.style,\n axisType = calculatedValues.axisType,\n radius = calculatedValues.radius,\n scale = calculatedValues.scale,\n origin = calculatedValues.origin;\n var startAngle = modifiedProps.startAngle,\n endAngle = modifiedProps.endAngle,\n _modifiedProps$innerR = modifiedProps.innerRadius,\n innerRadius = _modifiedProps$innerR === void 0 ? 0 : _modifiedProps$innerR;\n var axisAngle = axisType === \"radial\" ? Helpers.degreesToRadians(getAxisAngle(modifiedProps, scale)) : undefined;\n return axisType === \"radial\" ? {\n style: style.axis,\n x1: getPosition(innerRadius, axisAngle, \"x\") + origin.x,\n x2: getPosition(radius, axisAngle, \"x\") + origin.x,\n y1: getPosition(innerRadius, axisAngle, \"y\") + origin.y,\n y2: getPosition(radius, axisAngle, \"y\") + origin.y\n } : {\n style: style.axis,\n cx: origin.x,\n cy: origin.y,\n r: radius,\n startAngle: startAngle,\n endAngle: endAngle\n };\n};\n\nvar getCalculatedValues = function (props) {\n props = _assign({\n polar: true\n }, props);\n var defaultStyles = getStyleObject(props);\n var style = getStyles(props, defaultStyles);\n var padding = Helpers.getPadding(props);\n var axis = Axis.getAxis(props);\n var axisType = getAxisType(props);\n var stringTicks = Axis.stringTicks(props) ? props.tickValues : undefined;\n var domain = Axis.getDomain(props, axis);\n var range = getRange(props, axis);\n var scale = getScale(props);\n var initialTicks = Axis.getTicks(props, scale);\n var ticks = axisType === \"angular\" ? filterTicks(initialTicks, scale) : initialTicks;\n var tickFormat = Axis.getTickFormat(props, scale);\n var radius = getRadius(props);\n var origin = Helpers.getPolarOrigin(props);\n return {\n axis: axis,\n style: style,\n padding: padding,\n stringTicks: stringTicks,\n axisType: axisType,\n scale: scale,\n ticks: ticks,\n tickFormat: tickFormat,\n domain: domain,\n range: range,\n radius: radius,\n origin: origin\n };\n};\n\nexport var getBaseProps = function (props, fallbackProps) {\n props = Axis.modifyProps(props, fallbackProps);\n var calculatedValues = getCalculatedValues(props);\n var style = calculatedValues.style,\n scale = calculatedValues.scale,\n ticks = calculatedValues.ticks,\n domain = calculatedValues.domain;\n var _props = props,\n width = _props.width,\n height = _props.height,\n standalone = _props.standalone,\n theme = _props.theme,\n name = _props.name;\n var axisProps = getAxisProps(props, calculatedValues);\n var axisLabelProps = getAxisLabelProps(props, calculatedValues);\n var initialChildProps = {\n parent: {\n style: style.parent,\n ticks: ticks,\n scale: scale,\n width: width,\n height: height,\n domain: domain,\n standalone: standalone,\n theme: theme,\n name: name\n }\n };\n return ticks.reduce(function (childProps, tick, index) {\n childProps[index] = {\n axis: axisProps,\n axisLabel: axisLabelProps,\n ticks: getTickProps(props, calculatedValues, tick, index),\n tickLabels: getTickLabelProps(props, calculatedValues, tick, index),\n grid: getGridProps(props, calculatedValues, tick, index)\n };\n return childProps;\n }, initialChildProps);\n};","import _isEmpty from \"lodash/isEmpty\";\nimport _assign from \"lodash/assign\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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) || _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\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) 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\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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\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 } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\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 _possibleConstructorReturn(self, call) { if (call && (typeof call === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { PropTypes as CustomPropTypes, VictoryLabel, CommonProps, VictoryContainer, VictoryTheme, LineSegment, addEvents, Arc, Axis } from \"victory-core\";\nimport { getScale, getStyles, getBaseProps } from \"./helper-methods\";\nvar fallbackProps = {\n width: 450,\n height: 300,\n padding: 50\n};\nvar options = {\n components: [{\n name: \"axis\",\n index: 0\n }, {\n name: \"axisLabel\",\n index: 0\n }, {\n name: \"grid\"\n }, {\n name: \"parent\",\n index: \"parent\"\n }, {\n name: \"ticks\"\n }, {\n name: \"tickLabels\"\n }]\n};\n\nvar VictoryPolarAxis = /*#__PURE__*/function (_React$Component) {\n _inherits(VictoryPolarAxis, _React$Component);\n\n var _super = _createSuper(VictoryPolarAxis);\n\n function VictoryPolarAxis() {\n _classCallCheck(this, VictoryPolarAxis);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(VictoryPolarAxis, [{\n key: \"renderAxisLine\",\n value: function renderAxisLine(props) {\n var dependentAxis = props.dependentAxis;\n var axisComponent = dependentAxis ? props.axisComponent : props.circularAxisComponent;\n var axisProps = this.getComponentProps(axisComponent, \"axis\", 0);\n return /*#__PURE__*/React.cloneElement(axisComponent, axisProps);\n }\n }, {\n key: \"renderLabel\",\n value: function renderLabel(props) {\n var axisLabelComponent = props.axisLabelComponent,\n dependentAxis = props.dependentAxis,\n label = props.label;\n\n if (!label || !dependentAxis) {\n return null;\n }\n\n var axisLabelProps = this.getComponentProps(axisLabelComponent, \"axisLabel\", 0);\n return /*#__PURE__*/React.cloneElement(axisLabelComponent, axisLabelProps);\n }\n }, {\n key: \"renderAxis\",\n value: function renderAxis(props) {\n var _this = this;\n\n var tickComponent = props.tickComponent,\n tickLabelComponent = props.tickLabelComponent,\n name = props.name;\n\n var shouldRender = function (componentProps) {\n var _componentProps$style = componentProps.style,\n style = _componentProps$style === void 0 ? {} : _componentProps$style,\n _componentProps$event = componentProps.events,\n events = _componentProps$event === void 0 ? {} : _componentProps$event;\n var visible = style.stroke !== \"transparent\" && style.stroke !== \"none\" && style.strokeWidth !== 0;\n return visible || !_isEmpty(events);\n };\n\n var axisType = props.dependentAxis ? \"radial\" : \"angular\";\n var gridComponent = axisType === \"radial\" ? props.circularGridComponent : props.gridComponent;\n var tickComponents = this.dataKeys.map(function (key, index) {\n var tickProps = _assign({\n key: \"\".concat(name, \"-tick-\").concat(key)\n }, _this.getComponentProps(tickComponent, \"ticks\", index));\n\n var TickComponent = /*#__PURE__*/React.cloneElement(tickComponent, tickProps);\n return shouldRender(TickComponent.props) ? TickComponent : undefined;\n }).filter(Boolean);\n var gridComponents = this.dataKeys.map(function (key, index) {\n var gridProps = _assign({\n key: \"\".concat(name, \"-grid-\").concat(key)\n }, _this.getComponentProps(gridComponent, \"grid\", index));\n\n var GridComponent = /*#__PURE__*/React.cloneElement(gridComponent, gridProps);\n return shouldRender(GridComponent.props) ? GridComponent : undefined;\n }).filter(Boolean);\n var tickLabelComponents = this.dataKeys.map(function (key, index) {\n var tickLabelProps = _assign({\n key: \"\".concat(name, \"-tick-\").concat(key)\n }, _this.getComponentProps(tickLabelComponent, \"tickLabels\", index));\n\n return /*#__PURE__*/React.cloneElement(tickLabelComponent, tickLabelProps);\n });\n var axis = this.renderAxisLine(props);\n var axisLabel = this.renderLabel(props);\n var children = [axis, axisLabel].concat(_toConsumableArray(tickComponents), _toConsumableArray(gridComponents), _toConsumableArray(tickLabelComponents));\n return this.renderGroup(props, children);\n } // Overridden in victory-native\n\n }, {\n key: \"renderGroup\",\n value: function renderGroup(props, children) {\n var groupComponent = props.groupComponent;\n return /*#__PURE__*/React.cloneElement(groupComponent, {}, children);\n }\n }, {\n key: \"shouldAnimate\",\n value: function shouldAnimate() {\n return !!this.props.animate;\n }\n }, {\n key: \"render\",\n value: function render() {\n var animationWhitelist = VictoryPolarAxis.animationWhitelist;\n var props = Axis.modifyProps(this.props, fallbackProps);\n\n if (this.shouldAnimate()) {\n return this.animateComponent(props, animationWhitelist);\n }\n\n var children = this.renderAxis(props);\n return props.standalone ? this.renderContainer(props.containerComponent, children) : children;\n }\n }]);\n\n return VictoryPolarAxis;\n}(React.Component);\n\nVictoryPolarAxis.animationWhitelist = [\"style\", \"domain\", \"range\", \"tickCount\", \"tickValues\", \"padding\", \"width\", \"height\"];\nVictoryPolarAxis.displayName = \"VictoryAxis\";\nVictoryPolarAxis.role = \"axis\";\nVictoryPolarAxis.defaultTransitions = {\n onExit: {\n duration: 500\n },\n onEnter: {\n duration: 500\n }\n};\nVictoryPolarAxis.propTypes = _objectSpread(_objectSpread({}, CommonProps.baseProps), {}, {\n axisAngle: PropTypes.number,\n axisComponent: PropTypes.element,\n axisLabelComponent: PropTypes.element,\n axisValue: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.object]),\n categories: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.shape({\n x: PropTypes.arrayOf(PropTypes.string),\n y: PropTypes.arrayOf(PropTypes.string)\n })]),\n circularAxisComponent: PropTypes.element,\n circularGridComponent: PropTypes.element,\n containerComponent: PropTypes.element,\n dependentAxis: PropTypes.bool,\n disableInlineStyles: PropTypes.bool,\n endAngle: PropTypes.number,\n events: PropTypes.arrayOf(PropTypes.shape({\n target: PropTypes.oneOf([\"axis\", \"axisLabel\", \"grid\", \"ticks\", \"tickLabels\"]),\n eventKey: PropTypes.oneOfType([PropTypes.array, CustomPropTypes.allOfType([CustomPropTypes.integer, CustomPropTypes.nonNegative]), PropTypes.string]),\n eventHandlers: PropTypes.object\n })),\n gridComponent: PropTypes.element,\n innerRadius: CustomPropTypes.nonNegative,\n labelPlacement: PropTypes.oneOf([\"parallel\", \"perpendicular\", \"vertical\"]),\n startAngle: PropTypes.number,\n stringMap: PropTypes.object,\n style: PropTypes.shape({\n parent: PropTypes.object,\n axis: PropTypes.object,\n axisLabel: PropTypes.object,\n grid: PropTypes.object,\n ticks: PropTypes.object,\n tickLabels: PropTypes.object\n }),\n tickComponent: PropTypes.element,\n tickCount: CustomPropTypes.allOfType([CustomPropTypes.integer, CustomPropTypes.greaterThanZero]),\n tickFormat: PropTypes.oneOfType([PropTypes.func, CustomPropTypes.homogeneousArray]),\n tickLabelComponent: PropTypes.element,\n tickValues: CustomPropTypes.homogeneousArray\n});\nVictoryPolarAxis.defaultProps = {\n axisComponent: /*#__PURE__*/React.createElement(LineSegment, null),\n axisLabelComponent: /*#__PURE__*/React.createElement(VictoryLabel, null),\n circularAxisComponent: /*#__PURE__*/React.createElement(Arc, null),\n circularGridComponent: /*#__PURE__*/React.createElement(Arc, null),\n containerComponent: /*#__PURE__*/React.createElement(VictoryContainer, null),\n endAngle: 360,\n gridComponent: /*#__PURE__*/React.createElement(LineSegment, null),\n groupComponent: /*#__PURE__*/React.createElement(\"g\", {\n role: \"presentation\"\n }),\n labelPlacement: \"parallel\",\n startAngle: 0,\n standalone: true,\n theme: VictoryTheme.grayscale,\n tickComponent: /*#__PURE__*/React.createElement(LineSegment, null),\n tickLabelComponent: /*#__PURE__*/React.createElement(VictoryLabel, null)\n};\nVictoryPolarAxis.getDomain = Axis.getDomain;\nVictoryPolarAxis.getAxis = Axis.getAxis;\nVictoryPolarAxis.getScale = getScale;\n\nVictoryPolarAxis.getStyles = function (props) {\n return getStyles(props, fallbackProps.style);\n};\n\nVictoryPolarAxis.getBaseProps = function (props) {\n return getBaseProps(props, fallbackProps);\n};\n\nVictoryPolarAxis.expectedComponents = [\"axisComponent\", \"circularAxisComponent\", \"groupComponent\", \"containerComponent\", \"tickComponent\", \"tickLabelComponent\", \"gridComponent\", \"circularGridComponent\"];\nexport default addEvents(VictoryPolarAxis, options);","import _assign from \"lodash/assign\";\nimport _defaults from \"lodash/defaults\";\n\nfunction _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\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) 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\n/* eslint-disable no-use-before-define */\nimport React from \"react\";\nimport { Helpers, Scale, Axis, Wrapper } from \"victory-core\";\nvar fallbackProps = {\n width: 450,\n height: 300,\n padding: 50\n};\n\nfunction getAxisProps(child, props, calculatedProps) {\n var domain = calculatedProps.domain,\n scale = calculatedProps.scale,\n stringMap = calculatedProps.stringMap,\n categories = calculatedProps.categories,\n horizontal = calculatedProps.horizontal;\n return {\n stringMap: stringMap,\n horizontal: horizontal,\n categories: categories,\n startAngle: props.startAngle,\n endAngle: props.endAngle,\n innerRadius: props.innerRadius,\n domain: domain,\n scale: scale\n };\n}\n\nexport function getBackgroundWithProps(props, calculatedProps) {\n var backgroundElement = props.backgroundComponent;\n var height = props.polar ? calculatedProps.range.y[1] : calculatedProps.range.y[0] - calculatedProps.range.y[1];\n var width = calculatedProps.range.x[1] - calculatedProps.range.x[0];\n var xScale = props.horizontal ? calculatedProps.scale.y.range()[0] : calculatedProps.scale.x.range()[0];\n var yScale = props.horizontal ? calculatedProps.scale.x.range()[1] : calculatedProps.scale.y.range()[1];\n var xCoordinate = props.polar ? calculatedProps.origin.x : xScale;\n var yCoordinate = props.polar ? calculatedProps.origin.y : yScale;\n var parentName = props.name || \"chart\";\n var backgroundProps = {\n height: height,\n polar: props.polar,\n scale: calculatedProps.scale,\n style: props.style.background,\n x: xCoordinate,\n y: yCoordinate,\n key: \"\".concat(parentName, \"-background\"),\n width: width\n };\n return /*#__PURE__*/React.cloneElement(backgroundElement, _defaults({}, backgroundElement.props, backgroundProps));\n}\n\nfunction getChildProps(child, props, calculatedProps) {\n var axisChild = Axis.findAxisComponents([child]);\n\n if (axisChild.length > 0) {\n return getAxisProps(axisChild[0], props, calculatedProps);\n }\n\n var categories = calculatedProps.categories,\n domain = calculatedProps.domain,\n range = calculatedProps.range,\n scale = calculatedProps.scale,\n stringMap = calculatedProps.stringMap,\n horizontal = calculatedProps.horizontal;\n return {\n categories: categories,\n domain: domain,\n range: range,\n scale: scale,\n stringMap: stringMap,\n horizontal: horizontal\n };\n}\n\nfunction getStyles(props) {\n var styleProps = props.style && props.style.parent;\n return {\n parent: _defaults({}, styleProps, {\n height: \"100%\",\n width: \"100%\",\n userSelect: \"none\"\n })\n };\n}\n\nexport function getCalculatedProps(props, childComponents) {\n var style = getStyles(props);\n props = Helpers.modifyProps(props, fallbackProps, \"chart\");\n var _props = props,\n horizontal = _props.horizontal,\n polar = _props.polar;\n var allStrings = Wrapper.getStringsFromChildren(props, childComponents);\n var categories = Wrapper.getCategories(props, childComponents, allStrings);\n var stringMap = createStringMap(props, childComponents, allStrings);\n var domain = {\n x: getDomain(_assign({}, props, {\n categories: categories\n }), \"x\", childComponents),\n y: getDomain(_assign({}, props, {\n categories: categories\n }), \"y\", childComponents)\n };\n var range = {\n x: Helpers.getRange(props, \"x\"),\n y: Helpers.getRange(props, \"y\")\n };\n var baseScale = {\n x: Scale.getScaleFromProps(props, \"x\") || Wrapper.getScale(props, \"x\"),\n y: Scale.getScaleFromProps(props, \"y\") || Wrapper.getScale(props, \"y\")\n };\n var scale = {\n x: baseScale.x.domain(domain.x).range(horizontal ? range.y : range.x),\n y: baseScale.y.domain(domain.y).range(horizontal ? range.x : range.y)\n };\n var origin = polar ? Helpers.getPolarOrigin(props) : Axis.getOrigin(domain);\n var padding = Helpers.getPadding(props);\n return {\n categories: categories,\n domain: domain,\n range: range,\n horizontal: horizontal,\n scale: scale,\n stringMap: stringMap,\n style: style,\n origin: origin,\n padding: padding\n };\n}\nexport function getChildren(props, childComponents, calculatedProps) {\n childComponents = childComponents || getChildComponents(props);\n calculatedProps = calculatedProps || getCalculatedProps(props, childComponents);\n var baseStyle = calculatedProps.style.parent;\n var height = props.height,\n polar = props.polar,\n theme = props.theme,\n width = props.width;\n var _calculatedProps = calculatedProps,\n origin = _calculatedProps.origin,\n horizontal = _calculatedProps.horizontal;\n var parentName = props.name || \"chart\";\n return childComponents.map(function (child, index) {\n var role = child.type && child.type.role;\n var style = Array.isArray(child.props.style) ? child.props.style : _defaults({}, child.props.style, {\n parent: baseStyle\n });\n var childProps = getChildProps(child, props, calculatedProps);\n var name = child.props.name || \"\".concat(parentName, \"-\").concat(role, \"-\").concat(index);\n\n var newProps = _defaults({\n horizontal: horizontal,\n height: height,\n polar: polar,\n theme: theme,\n width: width,\n style: style,\n name: name,\n origin: polar ? origin : undefined,\n padding: calculatedProps.padding,\n key: \"\".concat(name, \"-key-\").concat(index),\n standalone: false\n }, childProps);\n\n return /*#__PURE__*/React.cloneElement(child, newProps);\n });\n}\nexport var getChildComponents = function (props, defaultAxes) {\n var childComponents = React.Children.toArray(props.children);\n\n var newChildComponents = _toConsumableArray(childComponents);\n\n if (childComponents.length === 0) {\n newChildComponents.push(defaultAxes.independent, defaultAxes.dependent);\n } else {\n var axisComponents = {\n dependent: Axis.getAxisComponentsWithParent(childComponents, \"dependent\"),\n independent: Axis.getAxisComponentsWithParent(childComponents, \"independent\")\n };\n\n if (axisComponents.dependent.length === 0 && axisComponents.independent.length === 0) {\n newChildComponents = props.prependDefaultAxes ? [defaultAxes.independent, defaultAxes.dependent].concat(newChildComponents) : newChildComponents.concat([defaultAxes.independent, defaultAxes.dependent]);\n }\n }\n\n return newChildComponents;\n};\n\nvar getDomain = function (props, axis, childComponents) {\n childComponents = childComponents || React.Children.toArray(props.children);\n var domain = Wrapper.getDomain(props, axis, childComponents);\n var axisComponent = Axis.getAxisComponent(childComponents, axis);\n var invertDomain = axisComponent && axisComponent.props && axisComponent.props.invertAxis;\n return invertDomain ? domain.concat().reverse() : domain;\n};\n\nvar createStringMap = function (props, childComponents, allStrings) {\n var x = !allStrings.x || allStrings.x.length === 0 ? null : allStrings.x.reduce(function (memo, string, index) {\n memo[string] = index + 1;\n return memo;\n }, {});\n var y = !allStrings.y || allStrings.y.length === 0 ? null : allStrings.y.reduce(function (memo, string, index) {\n memo[string] = index + 1;\n return memo;\n }, {});\n return {\n x: x,\n y: y\n };\n};","import _isEmpty from \"lodash/isEmpty\";\nimport _assign from \"lodash/assign\";\nimport _defaults from \"lodash/defaults\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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 PropTypes from \"prop-types\";\nimport React from \"react\";\nimport { Background, CommonProps, Helpers, Hooks, PropTypes as CustomPropTypes, UserProps, VictoryContainer, VictoryTheme, Wrapper } from \"victory-core\";\nimport { VictorySharedEvents } from \"victory-shared-events\";\nimport { VictoryAxis } from \"victory-axis\";\nimport { VictoryPolarAxis } from \"victory-polar-axis\";\nimport { getBackgroundWithProps, getChildComponents, getCalculatedProps, getChildren } from \"./helper-methods\";\nimport isEqual from \"react-fast-compare\";\nvar fallbackProps = {\n width: 450,\n height: 300,\n padding: 50\n};\n\nvar VictoryChartImpl = function (initialProps) {\n var role = \"chart\";\n\n var _Hooks$useAnimationSt = Hooks.useAnimationState(),\n getAnimationProps = _Hooks$useAnimationSt.getAnimationProps,\n setAnimationState = _Hooks$useAnimationSt.setAnimationState,\n getProps = _Hooks$useAnimationSt.getProps;\n\n var props = getProps(initialProps);\n var modifiedProps = Helpers.modifyProps(props, fallbackProps, role);\n var desc = modifiedProps.desc,\n eventKey = modifiedProps.eventKey,\n containerComponent = modifiedProps.containerComponent,\n standalone = modifiedProps.standalone,\n groupComponent = modifiedProps.groupComponent,\n externalEventMutations = modifiedProps.externalEventMutations,\n width = modifiedProps.width,\n height = modifiedProps.height,\n theme = modifiedProps.theme,\n polar = modifiedProps.polar,\n name = modifiedProps.name,\n title = modifiedProps.title;\n var axes = props.polar ? modifiedProps.defaultPolarAxes : modifiedProps.defaultAxes;\n var childComponents = React.useMemo(function () {\n return getChildComponents(modifiedProps, axes);\n }, [modifiedProps, axes]);\n var calculatedProps = React.useMemo(function () {\n return getCalculatedProps(modifiedProps, childComponents);\n }, [modifiedProps, childComponents]);\n var domain = calculatedProps.domain,\n scale = calculatedProps.scale,\n style = calculatedProps.style,\n origin = calculatedProps.origin,\n horizontal = calculatedProps.horizontal;\n var newChildren = React.useMemo(function () {\n var children = getChildren(props, childComponents, calculatedProps);\n var mappedChildren = children.map(function (child, index) {\n var childProps = _assign({\n animate: getAnimationProps(props, child, index)\n }, child.props);\n\n return /*#__PURE__*/React.cloneElement(child, childProps);\n });\n\n if (props.style && props.style.background) {\n var backgroundComponent = getBackgroundWithProps(props, calculatedProps);\n mappedChildren.unshift(backgroundComponent);\n }\n\n return mappedChildren;\n }, [getAnimationProps, childComponents, props, calculatedProps]);\n var containerProps = React.useMemo(function () {\n if (standalone) {\n return {\n desc: desc,\n domain: domain,\n width: width,\n height: height,\n horizontal: horizontal,\n name: name,\n origin: polar ? origin : undefined,\n polar: polar,\n theme: theme,\n title: title,\n scale: scale,\n standalone: standalone,\n style: style.parent\n };\n }\n\n return {};\n }, [desc, domain, height, horizontal, name, origin, polar, scale, standalone, style, title, theme, width]);\n var container = React.useMemo(function () {\n if (standalone) {\n var defaultContainerProps = _defaults({}, containerComponent.props, containerProps, UserProps.getSafeUserProps(initialProps));\n\n return /*#__PURE__*/React.cloneElement(containerComponent, defaultContainerProps);\n }\n\n return groupComponent;\n }, [groupComponent, standalone, containerComponent, containerProps, initialProps]);\n var events = React.useMemo(function () {\n return Wrapper.getAllEvents(props);\n }, [props]);\n var previousProps = Hooks.usePreviousProps(initialProps);\n React.useEffect(function () {\n // This is called before dismount to keep state in sync\n return function () {\n if (initialProps.animate) {\n setAnimationState(previousProps, initialProps);\n }\n };\n }, [setAnimationState, previousProps, initialProps]);\n\n if (!_isEmpty(events)) {\n return /*#__PURE__*/React.createElement(VictorySharedEvents, {\n container: container,\n eventKey: eventKey,\n events: events,\n externalEventMutations: externalEventMutations\n }, newChildren);\n }\n\n return /*#__PURE__*/React.cloneElement(container, container.props, newChildren);\n};\n\nVictoryChartImpl.propTypes = _objectSpread(_objectSpread({}, CommonProps.baseProps), {}, {\n backgroundComponent: PropTypes.element,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultAxes: PropTypes.shape({\n independent: PropTypes.element,\n dependent: PropTypes.element\n }),\n defaultPolarAxes: PropTypes.shape({\n independent: PropTypes.element,\n dependent: PropTypes.element\n }),\n endAngle: PropTypes.number,\n innerRadius: CustomPropTypes.nonNegative,\n prependDefaultAxes: PropTypes.bool,\n startAngle: PropTypes.number\n});\nVictoryChartImpl.defaultProps = {\n backgroundComponent: /*#__PURE__*/React.createElement(Background, null),\n containerComponent: /*#__PURE__*/React.createElement(VictoryContainer, null),\n defaultAxes: {\n independent: /*#__PURE__*/React.createElement(VictoryAxis, null),\n dependent: /*#__PURE__*/React.createElement(VictoryAxis, {\n dependentAxis: true\n })\n },\n defaultPolarAxes: {\n independent: /*#__PURE__*/React.createElement(VictoryPolarAxis, null),\n dependent: /*#__PURE__*/React.createElement(VictoryPolarAxis, {\n dependentAxis: true\n })\n },\n groupComponent: /*#__PURE__*/React.createElement(\"g\", null),\n standalone: true,\n theme: VictoryTheme.grayscale\n};\nexport var VictoryChart = /*#__PURE__*/React.memo(VictoryChartImpl, isEqual);\nVictoryChart.displayName = \"VictoryChart\"; // @ts-expect-error FIXME: Does this \"expectedComponents\" do anything?\n\nVictoryChart.expectedComponents = [\"groupComponent\", \"containerComponent\"];","import React from \"react\";\nimport PropTypes from \"prop-types\";\nexport var ClipPath = function (props) {\n return /*#__PURE__*/React.createElement(\"defs\", null,\n /*#__PURE__*/\n // @ts-expect-error FIXME: \"id cannot be a number\"\n React.createElement(\"clipPath\", {\n id: props.clipId\n }, props.children));\n};\nClipPath.propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n clipId: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n};","import _uniqueId from \"lodash/uniqueId\";\nimport _isObject from \"lodash/isObject\";\nimport _defaults from \"lodash/defaults\";\nimport _assign from \"lodash/assign\";\n\nfunction _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\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) 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\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\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 } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\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 _possibleConstructorReturn(self, call) { if (call && (typeof call === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport * as CustomPropTypes from \"../victory-util/prop-types\";\nimport * as Helpers from \"../victory-util/helpers\";\nimport * as UserProps from \"../victory-util/user-props\";\nimport { ClipPath } from \"../victory-primitives/clip-path\";\nimport { Circle } from \"../victory-primitives/circle\";\nimport { Rect } from \"../victory-primitives/rect\";\nexport var VictoryClipContainer = /*#__PURE__*/function (_React$Component) {\n _inherits(VictoryClipContainer, _React$Component);\n\n var _super = _createSuper(VictoryClipContainer);\n\n function VictoryClipContainer(props) {\n var _this;\n\n _classCallCheck(this, VictoryClipContainer);\n\n _this = _super.call(this, props);\n _this.clipId = void 0;\n _this.clipId = !_isObject(props) || props.clipId === undefined ? _uniqueId(\"victory-clip-\") : props.clipId;\n return _this;\n }\n\n _createClass(VictoryClipContainer, [{\n key: \"calculateAttributes\",\n value: function calculateAttributes(props) {\n var polar = props.polar,\n origin = props.origin,\n _props$clipWidth = props.clipWidth,\n clipWidth = _props$clipWidth === void 0 ? 0 : _props$clipWidth,\n _props$clipHeight = props.clipHeight,\n clipHeight = _props$clipHeight === void 0 ? 0 : _props$clipHeight,\n _props$translateX = props.translateX,\n translateX = _props$translateX === void 0 ? 0 : _props$translateX,\n _props$translateY = props.translateY,\n translateY = _props$translateY === void 0 ? 0 : _props$translateY;\n var clipPadding = Helpers.getPadding({\n padding: props.clipPadding\n });\n var radius = props.radius || Helpers.getRadius(props);\n return {\n x: (polar ? origin.x : translateX) - clipPadding.left,\n y: (polar ? origin.y : translateY) - clipPadding.top,\n width: Math.max((polar ? radius : clipWidth) + clipPadding.left + clipPadding.right, 0),\n height: Math.max((polar ? radius : clipHeight) + clipPadding.top + clipPadding.bottom, 0)\n };\n }\n }, {\n key: \"renderClippedGroup\",\n value: function renderClippedGroup(props, clipId) {\n var userProps = UserProps.getSafeUserProps(props);\n var style = props.style,\n events = props.events,\n transform = props.transform,\n children = props.children,\n className = props.className,\n groupComponent = props.groupComponent,\n tabIndex = props.tabIndex;\n var clipComponent = this.renderClipComponent(props, clipId);\n\n var groupProps = _assign({\n className: className,\n style: style,\n transform: transform,\n key: \"clipped-group-\".concat(clipId),\n clipPath: \"url(#\".concat(clipId, \")\")\n }, events);\n\n return /*#__PURE__*/React.cloneElement(groupComponent, _objectSpread(_objectSpread({}, groupProps), {}, {\n tabIndex: tabIndex\n }, userProps), [clipComponent].concat(_toConsumableArray(React.Children.toArray(children))));\n }\n }, {\n key: \"renderGroup\",\n value: function renderGroup(props) {\n var style = props.style,\n events = props.events,\n transform = props.transform,\n children = props.children,\n className = props.className,\n groupComponent = props.groupComponent,\n tabIndex = props.tabIndex;\n return /*#__PURE__*/React.cloneElement(groupComponent, _assign({\n className: className,\n style: style,\n transform: transform,\n \"aria-label\": props[\"aria-label\"],\n tabIndex: tabIndex\n }, events), children);\n }\n }, {\n key: \"renderClipComponent\",\n value: function renderClipComponent(props, clipId) {\n var polar = props.polar,\n origin = props.origin,\n _props$clipWidth2 = props.clipWidth,\n clipWidth = _props$clipWidth2 === void 0 ? 0 : _props$clipWidth2,\n _props$clipHeight2 = props.clipHeight,\n clipHeight = _props$clipHeight2 === void 0 ? 0 : _props$clipHeight2,\n _props$translateX2 = props.translateX,\n translateX = _props$translateX2 === void 0 ? 0 : _props$translateX2,\n _props$translateY2 = props.translateY,\n translateY = _props$translateY2 === void 0 ? 0 : _props$translateY2,\n circleComponent = props.circleComponent,\n rectComponent = props.rectComponent,\n clipPathComponent = props.clipPathComponent;\n\n var _Helpers$getPadding = Helpers.getPadding({\n padding: props.clipPadding\n }),\n top = _Helpers$getPadding.top,\n bottom = _Helpers$getPadding.bottom,\n left = _Helpers$getPadding.left,\n right = _Helpers$getPadding.right;\n\n var child;\n\n if (polar) {\n var radius = props.radius || Helpers.getRadius(props);\n var circleProps = {\n r: Math.max(radius + left + right, radius + top + bottom, 0),\n cx: origin.x - left,\n cy: origin.y - top\n };\n child = /*#__PURE__*/React.cloneElement(circleComponent, circleProps);\n } else {\n var rectProps = {\n x: translateX - left,\n y: translateY - top,\n width: Math.max(clipWidth + left + right, 0),\n height: Math.max(clipHeight + top + bottom, 0)\n };\n child = /*#__PURE__*/React.cloneElement(rectComponent, rectProps);\n }\n\n return /*#__PURE__*/React.cloneElement(clipPathComponent, _assign({\n key: \"clip-path-\".concat(clipId)\n }, props, {\n clipId: clipId\n }), child);\n }\n }, {\n key: \"getClipValue\",\n value: function getClipValue(props, axis) {\n var clipValues = {\n x: props.clipWidth,\n y: props.clipHeight\n };\n\n if (clipValues[axis] !== undefined) {\n return clipValues[axis];\n }\n\n var range = Helpers.getRange(props, axis);\n return range ? Math.abs(range[0] - range[1]) || undefined : undefined;\n }\n }, {\n key: \"getTranslateValue\",\n value: function getTranslateValue(props, axis) {\n var translateValues = {\n x: props.translateX,\n y: props.translateY\n };\n\n if (translateValues[axis] !== undefined) {\n return translateValues[axis];\n }\n\n var range = Helpers.getRange(props, axis);\n return range ? Math.min.apply(Math, _toConsumableArray(range)) : undefined;\n }\n }, {\n key: \"render\",\n value: function render() {\n var clipHeight = this.getClipValue(this.props, \"y\");\n var clipWidth = this.getClipValue(this.props, \"x\");\n\n if (clipWidth === undefined || clipHeight === undefined) {\n return this.renderGroup(this.props);\n }\n\n var translateX = this.getTranslateValue(this.props, \"x\");\n var translateY = this.getTranslateValue(this.props, \"y\");\n\n var clipProps = _defaults({}, this.props, {\n clipHeight: clipHeight,\n clipWidth: clipWidth,\n translateX: translateX,\n translateY: translateY\n });\n\n return this.renderClippedGroup(clipProps, this.clipId);\n }\n }]);\n\n return VictoryClipContainer;\n}(React.Component);\nVictoryClipContainer.displayName = \"VictoryClipContainer\";\nVictoryClipContainer.role = \"container\";\nVictoryClipContainer.propTypes = {\n \"aria-label\": PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n circleComponent: PropTypes.element,\n className: PropTypes.string,\n clipHeight: CustomPropTypes.nonNegative,\n clipId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n clipPadding: PropTypes.shape({\n top: PropTypes.number,\n bottom: PropTypes.number,\n left: PropTypes.number,\n right: PropTypes.number\n }),\n clipPathComponent: PropTypes.element,\n clipWidth: CustomPropTypes.nonNegative,\n events: PropTypes.object,\n groupComponent: PropTypes.element,\n origin: PropTypes.shape({\n x: CustomPropTypes.nonNegative,\n y: CustomPropTypes.nonNegative\n }),\n polar: PropTypes.bool,\n radius: CustomPropTypes.nonNegative,\n style: PropTypes.object,\n tabIndex: PropTypes.number,\n transform: PropTypes.string,\n translateX: PropTypes.number,\n translateY: PropTypes.number\n};\nVictoryClipContainer.defaultProps = {\n circleComponent: /*#__PURE__*/React.createElement(Circle, null),\n rectComponent: /*#__PURE__*/React.createElement(Rect, null),\n clipPathComponent: /*#__PURE__*/React.createElement(ClipPath, null),\n groupComponent: /*#__PURE__*/React.createElement(\"g\", null)\n};","import _keys from \"lodash/keys\";\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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\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 } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\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 _possibleConstructorReturn(self, call) { if (call && (typeof call === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport * as CustomPropTypes from \"../victory-util/prop-types\";\nexport var Portal = /*#__PURE__*/function (_ref) {\n _inherits(Portal, _ref);\n\n var _super = _createSuper(Portal);\n\n function Portal(props) {\n var _this;\n\n _classCallCheck(this, Portal);\n\n _this = _super.call(this, props);\n _this.map = void 0;\n _this.index = void 0;\n\n _this.portalRegister = function () {\n return ++_this.index;\n };\n\n _this.portalUpdate = function (key, element) {\n _this.map[key] = element;\n\n _this.forceUpdate();\n };\n\n _this.portalDeregister = function (key) {\n delete _this.map[key];\n\n _this.forceUpdate();\n };\n\n _this.map = {};\n _this.index = 1;\n return _this;\n }\n\n _createClass(Portal, [{\n key: \"getChildren\",\n value: function getChildren() {\n var _this2 = this;\n\n return _keys(this.map).map(function (key) {\n var el = _this2.map[key];\n return el ? /*#__PURE__*/React.cloneElement(el, {\n key: key\n }) : el;\n });\n } // Overridden in victory-core-native\n\n }, {\n key: \"render\",\n value: function render() {\n return /*#__PURE__*/React.createElement(\"svg\", this.props, this.getChildren());\n }\n }]);\n\n return Portal;\n}(React.Component);\nPortal.displayName = \"Portal\";\nPortal.propTypes = {\n className: PropTypes.string,\n height: CustomPropTypes.nonNegative,\n style: PropTypes.object,\n viewBox: PropTypes.string,\n width: CustomPropTypes.nonNegative\n};","import _isFunction from \"lodash/isFunction\";\nimport _isObject from \"lodash/isObject\";\nimport _uniqueId from \"lodash/uniqueId\";\nimport _defaults from \"lodash/defaults\";\nimport _assign from \"lodash/assign\";\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\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 } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\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 _possibleConstructorReturn(self, call) { if (call && (typeof call === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport * as CustomPropTypes from \"../victory-util/prop-types\";\nimport { Portal } from \"../victory-portal/portal\";\nimport { PortalContext } from \"../victory-portal/portal-context\";\nimport TimerContext from \"../victory-util/timer-context\";\nimport * as Helpers from \"../victory-util/helpers\";\nimport * as UserProps from \"../victory-util/user-props\";\nexport var VictoryContainer = /*#__PURE__*/function (_React$Component) {\n _inherits(VictoryContainer, _React$Component);\n\n var _super = _createSuper(VictoryContainer);\n\n // @ts-expect-error Ref will be initialized on mount\n // @ts-expect-error Ref will be initialized on mount\n function VictoryContainer(props) {\n var _this;\n\n _classCallCheck(this, VictoryContainer);\n\n _this = _super.call(this, props);\n _this.containerId = void 0;\n _this.portalRef = void 0;\n _this.containerRef = void 0;\n _this.shouldHandleWheel = void 0;\n\n _this.savePortalRef = function (portal) {\n _this.portalRef = portal;\n return portal;\n };\n\n _this.portalUpdate = function (key, el) {\n return _this.portalRef.portalUpdate(key, el);\n };\n\n _this.portalRegister = function () {\n return _this.portalRef.portalRegister();\n };\n\n _this.portalDeregister = function (key) {\n return _this.portalRef.portalDeregister(key);\n };\n\n _this.saveContainerRef = function (container) {\n if (_isFunction(_this.props.containerRef)) {\n _this.props.containerRef(container);\n }\n\n _this.containerRef = container;\n return container;\n };\n\n _this.handleWheel = function (e) {\n return e.preventDefault();\n };\n\n _this.containerId = !_isObject(props) || props.containerId === undefined ? _uniqueId(\"victory-container-\") : props.containerId;\n _this.shouldHandleWheel = !!(props && props.events && props.events.onWheel);\n return _this;\n }\n\n _createClass(VictoryContainer, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (this.shouldHandleWheel && this.containerRef) {\n this.containerRef.addEventListener(\"wheel\", this.handleWheel);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.shouldHandleWheel && this.containerRef) {\n this.containerRef.removeEventListener(\"wheel\", this.handleWheel);\n }\n }\n }, {\n key: \"getIdForElement\",\n value: function getIdForElement(elementName) {\n return \"\".concat(this.containerId, \"-\").concat(elementName);\n } // overridden in custom containers\n\n }, {\n key: \"getChildren\",\n value: function getChildren(props) {\n return props.children;\n } // Get props defined by the Open UI Automation (OUIA) 1.0-RC spec\n // See https://ouia.readthedocs.io/en/latest/README.html#ouia-component\n\n }, {\n key: \"getOUIAProps\",\n value: function getOUIAProps(props) {\n var ouiaId = props.ouiaId,\n ouiaSafe = props.ouiaSafe,\n ouiaType = props.ouiaType;\n return _objectSpread(_objectSpread(_objectSpread({}, ouiaId && {\n \"data-ouia-component-id\": ouiaId\n }), ouiaType && {\n \"data-ouia-component-type\": ouiaType\n }), ouiaSafe !== undefined && {\n \"data-ouia-safe\": ouiaSafe\n });\n }\n }, {\n key: \"renderContainer\",\n value: function renderContainer(props, svgProps, style) {\n var title = props.title,\n desc = props.desc,\n portalComponent = props.portalComponent,\n className = props.className,\n width = props.width,\n height = props.height,\n portalZIndex = props.portalZIndex,\n responsive = props.responsive;\n var children = this.getChildren(props);\n var dimensions = responsive ? {\n width: \"100%\",\n height: \"100%\"\n } : {\n width: width,\n height: height\n };\n\n var divStyle = _assign({\n pointerEvents: \"none\",\n touchAction: \"none\",\n position: \"relative\"\n }, dimensions);\n\n var portalDivStyle = _assign({\n zIndex: portalZIndex,\n position: \"absolute\",\n top: 0,\n left: 0\n }, dimensions);\n\n var svgStyle = _assign({\n pointerEvents: \"all\"\n }, dimensions);\n\n var portalSvgStyle = _assign({\n overflow: \"visible\"\n }, dimensions);\n\n var portalProps = {\n width: width,\n height: height,\n viewBox: svgProps.viewBox,\n preserveAspectRatio: svgProps.preserveAspectRatio,\n style: portalSvgStyle\n };\n return /*#__PURE__*/React.createElement(PortalContext.Provider, {\n value: {\n portalUpdate: this.portalUpdate,\n portalRegister: this.portalRegister,\n portalDeregister: this.portalDeregister\n }\n }, /*#__PURE__*/React.createElement(\"div\", _extends({\n style: _defaults({}, style, divStyle),\n className: className,\n ref: this.saveContainerRef\n }, this.getOUIAProps(props)), /*#__PURE__*/React.createElement(\"svg\", _extends({}, svgProps, {\n style: svgStyle\n }), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: this.getIdForElement(\"title\")\n }, title) : null, desc ? /*#__PURE__*/React.createElement(\"desc\", {\n id: this.getIdForElement(\"desc\")\n }, desc) : null, children), /*#__PURE__*/React.createElement(\"div\", {\n style: portalDivStyle\n }, /*#__PURE__*/React.cloneElement(portalComponent, _objectSpread(_objectSpread({}, portalProps), {}, {\n ref: this.savePortalRef\n })))));\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n width = _this$props.width,\n height = _this$props.height,\n responsive = _this$props.responsive,\n events = _this$props.events,\n title = _this$props.title,\n desc = _this$props.desc,\n tabIndex = _this$props.tabIndex,\n preserveAspectRatio = _this$props.preserveAspectRatio,\n role = _this$props.role;\n var style = responsive ? this.props.style : Helpers.omit(this.props.style, [\"height\", \"width\"]);\n var userProps = UserProps.getSafeUserProps(this.props);\n\n var svgProps = _assign(_objectSpread({\n width: width,\n height: height,\n tabIndex: tabIndex,\n role: role,\n \"aria-labelledby\": [title && this.getIdForElement(\"title\"), this.props[\"aria-labelledby\"]].filter(Boolean).join(\" \") || undefined,\n \"aria-describedby\": [desc && this.getIdForElement(\"desc\"), this.props[\"aria-describedby\"]].filter(Boolean).join(\" \") || undefined,\n viewBox: responsive ? \"0 0 \".concat(width, \" \").concat(height) : undefined,\n preserveAspectRatio: responsive ? preserveAspectRatio : undefined\n }, userProps), events);\n\n return this.renderContainer(this.props, svgProps, style);\n }\n }]);\n\n return VictoryContainer;\n}(React.Component);\nVictoryContainer.displayName = \"VictoryContainer\";\nVictoryContainer.role = \"container\";\nVictoryContainer.propTypes = {\n \"aria-describedby\": PropTypes.string,\n \"aria-labelledby\": PropTypes.string,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n className: PropTypes.string,\n containerId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n containerRef: PropTypes.func,\n desc: PropTypes.string,\n events: PropTypes.object,\n height: CustomPropTypes.nonNegative,\n name: PropTypes.string,\n origin: PropTypes.shape({\n x: CustomPropTypes.nonNegative,\n y: CustomPropTypes.nonNegative\n }),\n ouiaId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n ouiaSafe: PropTypes.bool,\n ouiaType: PropTypes.string,\n polar: PropTypes.bool,\n portalComponent: PropTypes.element,\n portalZIndex: CustomPropTypes.integer,\n preserveAspectRatio: PropTypes.string,\n responsive: PropTypes.bool,\n role: PropTypes.string,\n style: PropTypes.object,\n tabIndex: PropTypes.number,\n theme: PropTypes.object,\n title: PropTypes.string,\n width: CustomPropTypes.nonNegative\n};\nVictoryContainer.defaultProps = {\n className: \"VictoryContainer\",\n portalComponent: /*#__PURE__*/React.createElement(Portal, null),\n portalZIndex: 99,\n responsive: true,\n role: \"img\"\n};\nVictoryContainer.contextType = TimerContext;","var _excluded = [\"children\", \"title\", \"desc\"];\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 from \"react\";\nimport PropTypes from \"prop-types\";\nexport var Text = function (props) {\n var children = props.children,\n title = props.title,\n desc = props.desc,\n rest = _objectWithoutProperties(props, _excluded);\n\n return (\n /*#__PURE__*/\n // @ts-expect-error FIXME: \"id cannot be a number\"\n React.createElement(\"text\", rest, title && /*#__PURE__*/React.createElement(\"title\", null, title), desc && /*#__PURE__*/React.createElement(\"desc\", null, desc), children)\n );\n};\nText.propTypes = {\n children: PropTypes.node,\n desc: PropTypes.string,\n title: PropTypes.string\n};","import React from \"react\";\nexport var TSpan = function (props) {\n return (\n /*#__PURE__*/\n // @ts-expect-error FIXME: \"id cannot be a number\"\n React.createElement(\"tspan\", props)\n );\n};","import _isEmpty from \"lodash/isEmpty\";\nimport _defaults from \"lodash/defaults\";\nimport _assign from \"lodash/assign\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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) || _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\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) 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\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\nimport { VictoryPortal } from \"../victory-portal/victory-portal\";\nimport { Rect } from \"../victory-primitives/rect\";\nimport { Text } from \"../victory-primitives/text\";\nimport { TSpan } from \"../victory-primitives/tspan\";\nimport * as Helpers from \"../victory-util/helpers\";\nimport * as LabelHelpers from \"../victory-util/label-helpers\";\nimport * as Log from \"../victory-util/log\";\nimport * as CustomPropTypes from \"../victory-util/prop-types\";\nimport * as Style from \"../victory-util/style\";\nimport * as TextSize from \"../victory-util/textsize\";\nimport * as UserProps from \"../victory-util/user-props\";\nvar defaultStyles = {\n fill: \"#252525\",\n fontSize: 14,\n fontFamily: \"'Gill Sans', 'Gill Sans MT', 'Ser­avek', 'Trebuchet MS', sans-serif\",\n stroke: \"transparent\"\n};\n\nvar getPosition = function (props, dimension) {\n if (!props.datum) {\n return 0;\n }\n\n var scaledPoint = Helpers.scalePoint(props, props.datum);\n return scaledPoint[dimension];\n};\n\nvar getFontSize = function (style) {\n var baseSize = style && style.fontSize;\n\n if (typeof baseSize === \"number\") {\n return baseSize;\n } else if (baseSize === undefined || baseSize === null) {\n return defaultStyles.fontSize;\n } else if (typeof baseSize === \"string\") {\n var fontSize = Number(baseSize.replace(\"px\", \"\"));\n\n if (!isNaN(fontSize)) {\n return fontSize;\n }\n\n Log.warn(\"fontSize should be expressed as a number of pixels\");\n return defaultStyles.fontSize;\n }\n\n return defaultStyles.fontSize;\n};\n\nvar getSingleValue = function (prop) {\n var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return Array.isArray(prop) ? prop[index] || prop[0] : prop;\n};\n\nvar shouldUseMultilineBackgrounds = function (props) {\n var backgroundStyle = props.backgroundStyle,\n backgroundPadding = props.backgroundPadding;\n return Array.isArray(backgroundStyle) && !_isEmpty(backgroundStyle) || Array.isArray(backgroundPadding) && !_isEmpty(backgroundPadding);\n};\n\nvar getStyles = function (style, props) {\n if (props.disableInlineStyles) {\n var baseStyles = Helpers.evaluateStyle(style, props);\n return {\n // Font size is necessary to calculate the y position of the label\n fontSize: getFontSize(baseStyles)\n };\n }\n\n var getSingleStyle = function (s) {\n s = s ? _defaults({}, s, defaultStyles) : defaultStyles;\n var baseStyles = Helpers.evaluateStyle(s, props);\n return _assign({}, baseStyles, {\n fontSize: getFontSize(baseStyles)\n });\n };\n\n return Array.isArray(style) && !_isEmpty(style) ? style.map(function (s) {\n return getSingleStyle(s);\n }) : getSingleStyle(style);\n};\n\nvar getBackgroundStyles = function (style, props) {\n if (!style) {\n return undefined;\n }\n\n return Array.isArray(style) && !_isEmpty(style) ? style.map(function (s) {\n return Helpers.evaluateStyle(s, props);\n }) : Helpers.evaluateStyle(style, props);\n};\n\nvar getBackgroundPadding = function (props) {\n if (props.backgroundPadding && Array.isArray(props.backgroundPadding)) {\n return props.backgroundPadding.map(function (backgroundPadding) {\n var padding = Helpers.evaluateProp(backgroundPadding, props);\n return Helpers.getPadding({\n padding: padding\n });\n });\n }\n\n var padding = Helpers.evaluateProp(props.backgroundPadding, props);\n return Helpers.getPadding({\n padding: padding\n });\n};\n\nvar getLineHeight = function (props) {\n var lineHeight = Helpers.evaluateProp(props.lineHeight, props);\n\n if (Array.isArray(lineHeight)) {\n return _isEmpty(lineHeight) ? [1] : lineHeight;\n }\n\n return lineHeight;\n};\n\nvar getContent = function (text, props) {\n if (text === undefined || text === null) {\n return undefined;\n }\n\n if (Array.isArray(text)) {\n return text.map(function (line) {\n return Helpers.evaluateProp(line, props);\n });\n }\n\n var child = Helpers.evaluateProp(text, props);\n\n if (child === undefined || child === null) {\n return undefined;\n }\n\n return Array.isArray(child) ? child : \"\".concat(child).split(\"\\n\");\n};\n\nvar getDy = function (props, verticalAnchor, lineHeight) {\n var dy = props.dy ? Helpers.evaluateProp(props.dy, props) : 0;\n var length = props.inline ? 1 : props.text.length;\n var capHeight = Helpers.evaluateProp(props.capHeight, props);\n var anchor = verticalAnchor ? Helpers.evaluateProp(verticalAnchor, props) : \"middle\";\n\n var fontSizes = _toConsumableArray(Array(length).keys()).map(function (i) {\n return getSingleValue(props.style, i).fontSize;\n });\n\n var lineHeights = _toConsumableArray(Array(length).keys()).map(function (i) {\n return getSingleValue(lineHeight, i);\n });\n\n if (anchor === \"start\") {\n return dy + (capHeight / 2 + lineHeights[0] / 2) * fontSizes[0];\n } else if (props.inline) {\n return anchor === \"end\" ? dy + (capHeight / 2 - lineHeights[0] / 2) * fontSizes[0] : dy + capHeight / 2 * fontSizes[0];\n } else if (length === 1) {\n return anchor === \"end\" ? dy + (capHeight / 2 + (0.5 - length) * lineHeights[0]) * fontSizes[0] : dy + (capHeight / 2 + (0.5 - length / 2) * lineHeights[0]) * fontSizes[0];\n }\n\n var allHeights = _toConsumableArray(Array(length).keys()).reduce(function (memo, i) {\n return memo + (capHeight / 2 + (0.5 - length) * lineHeights[i]) * fontSizes[i] / length;\n }, 0);\n\n return anchor === \"end\" ? dy + allHeights : dy + allHeights / 2 + capHeight / 2 * lineHeights[length - 1] * fontSizes[length - 1];\n};\n\nvar getTransform = function (props, x, y) {\n var polar = props.polar;\n var style = getSingleValue(props.style);\n var defaultAngle = polar ? LabelHelpers.getPolarAngle(props) : 0;\n var baseAngle = style.angle === undefined ? Helpers.evaluateProp(props.angle, props) : style.angle;\n var angle = baseAngle === undefined ? defaultAngle : baseAngle;\n var transform = props.transform || style.transform;\n var transformPart = transform && Helpers.evaluateProp(transform, props);\n var rotatePart = angle && {\n rotate: [angle, x, y]\n };\n return transformPart || angle ? Style.toTransformString(transformPart, rotatePart) : undefined;\n};\n\nvar getXCoordinate = function (calculatedProps, labelSizeWidth) {\n var direction = calculatedProps.direction,\n textAnchor = calculatedProps.textAnchor,\n x = calculatedProps.x,\n dx = calculatedProps.dx;\n\n if (direction === \"rtl\") {\n return x - labelSizeWidth;\n }\n\n switch (textAnchor) {\n case \"middle\":\n return Math.round(x - labelSizeWidth / 2);\n\n case \"end\":\n return Math.round(x - labelSizeWidth);\n\n default:\n // start\n return x + (dx || 0);\n }\n};\n\nvar getYCoordinate = function (calculatedProps, textHeight) {\n var verticalAnchor = calculatedProps.verticalAnchor,\n y = calculatedProps.y,\n _calculatedProps$orig = calculatedProps.originalDy,\n originalDy = _calculatedProps$orig === void 0 ? 0 : _calculatedProps$orig;\n var offset = y + originalDy;\n\n switch (verticalAnchor) {\n case \"start\":\n return Math.floor(offset);\n\n case \"end\":\n return Math.ceil(offset - textHeight);\n\n default:\n // middle\n return Math.floor(offset - textHeight / 2);\n }\n};\n\nvar getFullBackground = function (calculatedProps, tspanValues) {\n var _calculatedProps$dx = calculatedProps.dx,\n dx = _calculatedProps$dx === void 0 ? 0 : _calculatedProps$dx,\n transform = calculatedProps.transform,\n backgroundComponent = calculatedProps.backgroundComponent,\n backgroundStyle = calculatedProps.backgroundStyle,\n inline = calculatedProps.inline,\n backgroundPadding = calculatedProps.backgroundPadding,\n capHeight = calculatedProps.capHeight;\n var textSizes = tspanValues.map(function (tspan) {\n return tspan.textSize;\n });\n var height = inline ? Math.max.apply(Math, _toConsumableArray(textSizes.map(function (size) {\n return size.height;\n }))) : textSizes.reduce(function (memo, size, i) {\n var capHeightAdjustment = i ? 0 : capHeight / 2;\n return memo + size.height * (tspanValues[i].lineHeight - capHeightAdjustment);\n }, 0);\n var width = inline ? textSizes.reduce(function (memo, size, index) {\n var offset = index ? dx : 0;\n return memo + size.width + offset;\n }, 0) : Math.max.apply(Math, _toConsumableArray(textSizes.map(function (size) {\n return size.width;\n })));\n var xCoordinate = getXCoordinate(calculatedProps, width);\n var yCoordinate = getYCoordinate(calculatedProps, height);\n var backgroundProps = {\n key: \"background\",\n height: height + backgroundPadding.top + backgroundPadding.bottom,\n style: backgroundStyle,\n transform: transform,\n width: width + backgroundPadding.left + backgroundPadding.right,\n x: inline ? xCoordinate - backgroundPadding.left : xCoordinate + dx - backgroundPadding.left,\n y: yCoordinate\n };\n return /*#__PURE__*/React.cloneElement(backgroundComponent, _defaults({}, backgroundComponent.props, backgroundProps));\n};\n\nvar getInlineXOffset = function (calculatedProps, textElements, index) {\n var textAnchor = calculatedProps.textAnchor;\n var widths = textElements.map(function (t) {\n return t.widthWithPadding;\n });\n var totalWidth = widths.reduce(function (memo, width) {\n return memo + width;\n }, 0);\n var centerOffset = -totalWidth / 2;\n\n switch (textAnchor) {\n case \"start\":\n return widths.reduce(function (memo, width, i) {\n memo = i < index ? memo + width : memo;\n return memo;\n }, 0);\n\n case \"end\":\n return widths.reduce(function (memo, width, i) {\n memo = i > index ? memo - width : memo;\n return memo;\n }, 0);\n\n default:\n // middle\n return widths.reduce(function (memo, width, i) {\n var offsetWidth = i < index ? width : 0;\n memo = i === index ? memo + width / 2 : memo + offsetWidth;\n return memo;\n }, centerOffset);\n }\n};\n\nvar getChildBackgrounds = function (calculatedProps, tspanValues) {\n var dy = calculatedProps.dy,\n dx = calculatedProps.dx,\n transform = calculatedProps.transform,\n backgroundStyle = calculatedProps.backgroundStyle,\n backgroundPadding = calculatedProps.backgroundPadding,\n backgroundComponent = calculatedProps.backgroundComponent,\n inline = calculatedProps.inline,\n y = calculatedProps.y;\n var textElements = tspanValues.map(function (current, i) {\n var previous = getSingleValue(tspanValues, i - 1);\n var labelSize = current.textSize;\n var totalLineHeight = current.fontSize * current.lineHeight;\n var textHeight = Math.ceil(totalLineHeight);\n var padding = getSingleValue(backgroundPadding, i);\n var prevPadding = getSingleValue(backgroundPadding, i - 1);\n var xOffset = inline ? dx || 0 : 0;\n var childDy = i && !inline ? previous.fontSize * previous.lineHeight + prevPadding.top + prevPadding.bottom : dy - totalLineHeight * 0.5 - (current.fontSize - current.capHeight);\n return {\n textHeight: textHeight,\n labelSize: labelSize,\n heightWithPadding: textHeight + padding.top + padding.bottom,\n widthWithPadding: labelSize.width + padding.left + padding.right + xOffset,\n y: y,\n fontSize: current.fontSize,\n dy: childDy\n };\n });\n return textElements.map(function (textElement, i) {\n var xCoordinate = getXCoordinate(calculatedProps, textElement.labelSize.width);\n var yCoordinate = textElements.slice(0, i + 1).reduce(function (prev, curr) {\n return prev + curr.dy;\n }, y);\n var padding = getSingleValue(backgroundPadding, i);\n var height = textElement.heightWithPadding;\n var xCoord = inline ? getInlineXOffset(calculatedProps, textElements, i) + xCoordinate - padding.left : xCoordinate;\n var yCoord = inline ? getYCoordinate(calculatedProps, height) - padding.top : yCoordinate;\n var backgroundProps = {\n key: \"tspan-background-\".concat(i),\n height: height,\n style: getSingleValue(backgroundStyle, i),\n width: textElement.widthWithPadding,\n transform: transform,\n x: xCoord - padding.left,\n y: yCoord\n };\n return /*#__PURE__*/React.cloneElement(backgroundComponent, _defaults({}, backgroundComponent.props, backgroundProps));\n });\n};\n\nvar getBackgroundElement = function (calculatedProps, tspanValues) {\n return shouldUseMultilineBackgrounds(calculatedProps) ? getChildBackgrounds(calculatedProps, tspanValues) : getFullBackground(calculatedProps, tspanValues);\n};\n\nvar calculateSpanDy = function (tspanValues, i, calculatedProps) {\n var current = getSingleValue(tspanValues, i);\n var previous = getSingleValue(tspanValues, i - 1);\n var previousHeight = previous.fontSize * previous.lineHeight;\n var currentHeight = current.fontSize * current.lineHeight;\n var previousCaps = previous.fontSize - previous.capHeight;\n var currentCaps = current.fontSize - current.capHeight;\n var textHeight = previousHeight - previous.fontSize / 2 + current.fontSize / 2 - previousHeight / 2 + currentHeight / 2 - currentCaps / 2 + previousCaps / 2;\n return shouldUseMultilineBackgrounds(calculatedProps) ? textHeight + current.backgroundPadding.top + previous.backgroundPadding.bottom : textHeight;\n};\n\nvar getTSpanDy = function (tspanValues, calculatedProps, i) {\n var inline = calculatedProps.inline;\n var current = getSingleValue(tspanValues, i);\n\n if (i && !inline) {\n return calculateSpanDy(tspanValues, i, calculatedProps);\n } else if (inline) {\n return i === 0 ? current.backgroundPadding.top : undefined;\n }\n\n return current.backgroundPadding.top;\n};\n\nvar evaluateProps = function (props) {\n /* Potential evaluated props are\n 1) text\n 2) style\n 3) everything else\n */\n var text = getContent(props.text, props);\n var style = getStyles(props.style, _assign({}, props, {\n text: text\n }));\n var backgroundStyle = getBackgroundStyles(props.backgroundStyle, _assign({}, props, {\n text: text,\n style: style\n }));\n var backgroundPadding = getBackgroundPadding(_assign({}, props, {\n text: text,\n style: style,\n backgroundStyle: backgroundStyle\n }));\n var id = Helpers.evaluateProp(props.id, props);\n return _assign({}, props, {\n backgroundStyle: backgroundStyle,\n backgroundPadding: backgroundPadding,\n style: style,\n text: text,\n id: id\n });\n};\n\nvar getCalculatedProps = function (props) {\n var ariaLabel = Helpers.evaluateProp(props.ariaLabel, props);\n var style = getSingleValue(props.style);\n var lineHeight = getLineHeight(props);\n var direction = props.direction ? Helpers.evaluateProp(props.direction, props) : \"inherit\";\n var textAnchor = props.textAnchor ? Helpers.evaluateProp(props.textAnchor, props) : style.textAnchor || \"start\";\n var verticalAnchor = props.verticalAnchor ? Helpers.evaluateProp(props.verticalAnchor, props) : style.verticalAnchor || \"middle\";\n var dx = props.dx ? Helpers.evaluateProp(props.dx, props) : 0;\n var dy = getDy(props, verticalAnchor, lineHeight);\n var x = props.x !== undefined ? props.x : getPosition(props, \"x\");\n var y = props.y !== undefined ? props.y : getPosition(props, \"y\");\n var transform = getTransform(props, x, y);\n return _assign({}, props, {\n ariaLabel: ariaLabel,\n lineHeight: lineHeight,\n direction: direction,\n textAnchor: textAnchor,\n verticalAnchor: verticalAnchor,\n dx: dx,\n dy: dy,\n originalDy: props.dy,\n transform: transform,\n x: x,\n y: y\n });\n};\n\nvar renderLabel = function (calculatedProps, tspanValues) {\n var ariaLabel = calculatedProps.ariaLabel,\n inline = calculatedProps.inline,\n className = calculatedProps.className,\n title = calculatedProps.title,\n events = calculatedProps.events,\n direction = calculatedProps.direction,\n text = calculatedProps.text,\n textAnchor = calculatedProps.textAnchor,\n dx = calculatedProps.dx,\n dy = calculatedProps.dy,\n transform = calculatedProps.transform,\n x = calculatedProps.x,\n y = calculatedProps.y,\n desc = calculatedProps.desc,\n id = calculatedProps.id,\n tabIndex = calculatedProps.tabIndex,\n tspanComponent = calculatedProps.tspanComponent,\n textComponent = calculatedProps.textComponent;\n var userProps = UserProps.getSafeUserProps(calculatedProps);\n\n var textProps = _objectSpread(_objectSpread({\n \"aria-label\": ariaLabel,\n key: \"text\"\n }, events), {}, {\n direction: direction,\n dx: dx,\n x: x,\n y: y + dy,\n transform: transform,\n className: className,\n title: title,\n desc: Helpers.evaluateProp(desc, calculatedProps),\n tabIndex: Helpers.evaluateProp(tabIndex, calculatedProps),\n id: id\n }, userProps);\n\n var tspans = text.map(function (line, i) {\n var currentStyle = tspanValues[i].style;\n var tspanProps = {\n key: \"\".concat(id, \"-key-\").concat(i),\n x: !inline ? x : undefined,\n dx: inline ? dx + tspanValues[i].backgroundPadding.left : dx,\n dy: getTSpanDy(tspanValues, calculatedProps, i),\n textAnchor: currentStyle.textAnchor || textAnchor,\n style: currentStyle,\n children: line\n };\n return /*#__PURE__*/React.cloneElement(tspanComponent, tspanProps);\n });\n return /*#__PURE__*/React.cloneElement(textComponent, textProps, tspans);\n};\n\nexport var VictoryLabel = function (props) {\n props = evaluateProps(props);\n\n if (props.text === null || props.text === undefined) {\n return null;\n }\n\n var calculatedProps = getCalculatedProps(props);\n var text = calculatedProps.text,\n style = calculatedProps.style,\n capHeight = calculatedProps.capHeight,\n backgroundPadding = calculatedProps.backgroundPadding,\n lineHeight = calculatedProps.lineHeight;\n var tspanValues = text.map(function (line, i) {\n var currentStyle = getSingleValue(style, i);\n var capHeightPx = TextSize.convertLengthToPixels(\"\".concat(capHeight, \"em\"), currentStyle.fontSize);\n var currentLineHeight = getSingleValue(lineHeight, i);\n return {\n style: currentStyle,\n fontSize: currentStyle.fontSize || defaultStyles.fontSize,\n capHeight: capHeightPx,\n text: line,\n // @ts-expect-error TODO: This looks like a bug:\n textSize: TextSize.approximateTextSize(line, currentStyle),\n lineHeight: currentLineHeight,\n backgroundPadding: getSingleValue(backgroundPadding, i)\n };\n });\n var label = renderLabel(calculatedProps, tspanValues);\n\n if (props.backgroundStyle) {\n var backgroundElement = getBackgroundElement(calculatedProps, tspanValues);\n var children = [backgroundElement, label];\n var backgroundWithLabel = /*#__PURE__*/React.cloneElement(props.groupComponent, {}, children);\n return props.renderInPortal ? /*#__PURE__*/React.createElement(VictoryPortal, null, backgroundWithLabel) : backgroundWithLabel;\n }\n\n return props.renderInPortal ? /*#__PURE__*/React.createElement(VictoryPortal, null, label) : label;\n};\nVictoryLabel.displayName = \"VictoryLabel\";\nVictoryLabel.role = \"label\";\nVictoryLabel.defaultStyles = defaultStyles;\nVictoryLabel.propTypes = {\n active: PropTypes.bool,\n angle: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func]),\n ariaLabel: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n backgroundComponent: PropTypes.element,\n backgroundPadding: PropTypes.oneOfType([PropTypes.number, PropTypes.object, PropTypes.array]),\n backgroundStyle: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n capHeight: PropTypes.oneOfType([PropTypes.string, CustomPropTypes.nonNegative, PropTypes.func]),\n className: PropTypes.string,\n data: PropTypes.array,\n datum: PropTypes.any,\n // @ts-expect-error \"Function is not assignable to string\"\n desc: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n direction: PropTypes.oneOf([\"rtl\", \"ltr\", \"inherit\"]),\n dx: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.func]),\n dy: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.func]),\n events: PropTypes.object,\n groupComponent: PropTypes.element,\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.func]),\n index: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n inline: PropTypes.bool,\n labelPlacement: PropTypes.oneOf([\"parallel\", \"perpendicular\", \"vertical\"]),\n lineHeight: PropTypes.oneOfType([PropTypes.string, CustomPropTypes.nonNegative, PropTypes.func, PropTypes.array]),\n origin: PropTypes.shape({\n x: CustomPropTypes.nonNegative.isRequired,\n y: CustomPropTypes.nonNegative.isRequired\n }),\n polar: PropTypes.bool,\n renderInPortal: PropTypes.bool,\n scale: PropTypes.shape({\n x: CustomPropTypes.scale,\n y: CustomPropTypes.scale\n }),\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n text: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func, PropTypes.array]),\n // @ts-expect-error Function is not assignable to string\"\n textAnchor: PropTypes.oneOfType([PropTypes.oneOf([\"start\", \"middle\", \"end\", \"inherit\"]), PropTypes.func]),\n textComponent: PropTypes.element,\n title: PropTypes.string,\n transform: PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.func]),\n tspanComponent: PropTypes.element,\n // @ts-expect-error Function is not assignable to string\"\n verticalAnchor: PropTypes.oneOfType([PropTypes.oneOf([\"start\", \"middle\", \"end\"]), PropTypes.func]),\n // @ts-expect-error Number is not assignable to string\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n // @ts-expect-error Number is not assignable to string\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n};\nVictoryLabel.defaultProps = {\n backgroundComponent: /*#__PURE__*/React.createElement(Rect, null),\n groupComponent: /*#__PURE__*/React.createElement(\"g\", null),\n direction: \"inherit\",\n textComponent: /*#__PURE__*/React.createElement(Text, null),\n tspanComponent: /*#__PURE__*/React.createElement(TSpan, null),\n capHeight: 0.71,\n // Magic number from d3.\n lineHeight: 1\n};","import React from \"react\";\n\n/**\n * The React context object consumers may use to access the context of the\n * portal.\n */\nexport var PortalContext = /*#__PURE__*/React.createContext({});\nPortalContext.displayName = \"PortalContext\";","import _defaults from \"lodash/defaults\";\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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\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 } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\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 _possibleConstructorReturn(self, call) { if (call && (typeof call === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport * as Log from \"../victory-util/log\";\nimport * as Helpers from \"../victory-util/helpers\";\nimport { PortalContext } from \"./portal-context\";\nexport var VictoryPortal = /*#__PURE__*/function (_React$Component) {\n _inherits(VictoryPortal, _React$Component);\n\n var _super = _createSuper(VictoryPortal);\n\n function VictoryPortal() {\n var _this;\n\n _classCallCheck(this, VictoryPortal);\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 = _super.call.apply(_super, [this].concat(args));\n _this.checkedContext = void 0;\n _this.renderInPlace = void 0;\n _this.element = void 0;\n _this.portalKey = void 0;\n return _this;\n }\n\n _createClass(VictoryPortal, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if (!this.checkedContext) {\n if (typeof this.context.portalUpdate !== \"function\") {\n var msg = \"`renderInPortal` is not supported outside of `VictoryContainer`. \" + \"Component will be rendered in place\";\n Log.warn(msg);\n this.renderInPlace = true;\n }\n\n this.checkedContext = true;\n }\n\n this.forceUpdate();\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n if (!this.renderInPlace) {\n this.portalKey = this.portalKey || this.context.portalRegister();\n this.context.portalUpdate(this.portalKey, this.element);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.context && this.context.portalDeregister) {\n this.context.portalDeregister(this.portalKey);\n }\n } // Overridden in victory-core-native\n\n }, {\n key: \"renderPortal\",\n value: function renderPortal(child) {\n if (this.renderInPlace) {\n return child;\n }\n\n this.element = child;\n return null;\n }\n }, {\n key: \"render\",\n value: function render() {\n var children = Array.isArray(this.props.children) ? this.props.children[0] : this.props.children;\n var groupComponent = this.props.groupComponent;\n var childProps = children && children.props || {};\n var standardProps = childProps.groupComponent ? {\n groupComponent: groupComponent,\n standalone: false\n } : {};\n\n var newProps = _defaults(standardProps, childProps, Helpers.omit(this.props, [\"children\", \"groupComponent\"]));\n\n var child = children && /*#__PURE__*/React.cloneElement(children, newProps);\n return this.renderPortal(child);\n }\n }]);\n\n return VictoryPortal;\n}(React.Component);\nVictoryPortal.displayName = \"VictoryPortal\";\nVictoryPortal.role = \"portal\";\nVictoryPortal.propTypes = {\n children: PropTypes.node,\n groupComponent: PropTypes.element\n};\nVictoryPortal.defaultProps = {\n groupComponent: /*#__PURE__*/React.createElement(\"g\", null)\n};\nVictoryPortal.contextType = PortalContext;","var _excluded = [\"desc\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\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 from \"react\";\nexport var Circle = function (props) {\n // eslint-disable-next-line react/prop-types\n var desc = props.desc,\n rest = _objectWithoutProperties(props, _excluded);\n\n return desc ?\n /*#__PURE__*/\n // @ts-expect-error FIXME: \"id cannot be a number\"\n React.createElement(\"circle\", _extends({\n vectorEffect: \"non-scaling-stroke\"\n }, rest), /*#__PURE__*/React.createElement(\"desc\", null, desc)) :\n /*#__PURE__*/\n // @ts-expect-error FIXME: \"id cannot be a number\"\n React.createElement(\"circle\", _extends({\n vectorEffect: \"non-scaling-stroke\"\n }, rest));\n};","var _excluded = [\"desc\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\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 from \"react\";\nexport var Line = function (props) {\n // eslint-disable-next-line react/prop-types\n var desc = props.desc,\n rest = _objectWithoutProperties(props, _excluded);\n\n return desc ?\n /*#__PURE__*/\n // @ts-expect-error FIXME: \"id cannot be a number\"\n React.createElement(\"line\", _extends({\n vectorEffect: \"non-scaling-stroke\"\n }, rest), /*#__PURE__*/React.createElement(\"desc\", null, desc)) :\n /*#__PURE__*/\n // @ts-expect-error FIXME: \"id cannot be a number\"\n React.createElement(\"line\", _extends({\n vectorEffect: \"non-scaling-stroke\"\n }, rest));\n};","import _assign from \"lodash/assign\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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 from \"react\";\nimport PropTypes from \"prop-types\";\nimport * as Helpers from \"../victory-util/helpers\";\nimport { CommonProps } from \"../victory-util/common-props\";\nimport { Line } from \"./line\";\n\nvar evaluateProps = function (props) {\n /**\n * Potential evaluated props are:\n * `ariaLabel`\n * `desc`\n * `id`\n * `style`\n * `tabIndex`\n */\n var ariaLabel = Helpers.evaluateProp(props.ariaLabel, props);\n var desc = Helpers.evaluateProp(props.desc, props);\n var id = Helpers.evaluateProp(props.id, props);\n var style = Helpers.evaluateStyle(_assign({\n stroke: \"black\"\n }, props.style), props);\n var tabIndex = Helpers.evaluateProp(props.tabIndex, props);\n return _assign({}, props, {\n ariaLabel: ariaLabel,\n desc: desc,\n id: id,\n style: style,\n tabIndex: tabIndex\n });\n};\n\nexport var LineSegment = function (props) {\n props = evaluateProps(props);\n return /*#__PURE__*/React.cloneElement(props.lineComponent, _objectSpread(_objectSpread({}, props.events), {}, {\n \"aria-label\": props.ariaLabel,\n style: props.style,\n desc: props.desc,\n tabIndex: props.tabIndex,\n className: props.className,\n role: props.role,\n shapeRendering: props.shapeRendering,\n x1: props.x1,\n x2: props.x2,\n y1: props.y1,\n y2: props.y2,\n transform: props.transform,\n clipPath: props.clipPath\n }));\n};\nLineSegment.propTypes = _objectSpread(_objectSpread({}, CommonProps.primitiveProps), {}, {\n datum: PropTypes.any,\n lineComponent: PropTypes.element,\n x1: PropTypes.number,\n x2: PropTypes.number,\n y1: PropTypes.number,\n y2: PropTypes.number\n});\nLineSegment.defaultProps = {\n lineComponent: /*#__PURE__*/React.createElement(Line, null),\n role: \"presentation\",\n shapeRendering: \"auto\"\n};","var _excluded = [\"desc\"];\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 from \"react\";\nexport var Path = function (props) {\n // eslint-disable-next-line react/prop-types\n var desc = props.desc,\n rest = _objectWithoutProperties(props, _excluded);\n\n return desc ?\n /*#__PURE__*/\n // @ts-expect-error FIXME: \"id cannot be a number\"\n React.createElement(\"path\", rest, /*#__PURE__*/React.createElement(\"desc\", null, desc)) :\n /*#__PURE__*/\n // @ts-expect-error FIXME: \"id cannot be a number\"\n React.createElement(\"path\", rest);\n};","var _excluded = [\"desc\"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\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 from \"react\";\nexport var Rect = function (props) {\n // eslint-disable-next-line react/prop-types\n var desc = props.desc,\n rest = _objectWithoutProperties(props, _excluded);\n\n return desc ?\n /*#__PURE__*/\n // @ts-expect-error FIXME: \"id cannot be a number\"\n React.createElement(\"rect\", _extends({\n vectorEffect: \"non-scaling-stroke\"\n }, rest), /*#__PURE__*/React.createElement(\"desc\", null, desc)) :\n /*#__PURE__*/\n // @ts-expect-error FIXME: \"id cannot be a number\"\n React.createElement(\"rect\", _extends({\n vectorEffect: \"non-scaling-stroke\"\n }, rest));\n};","import _assign from \"lodash/assign\";\n// *\n// * Colors\n// *\nvar colors = [\"#252525\", \"#525252\", \"#737373\", \"#969696\", \"#bdbdbd\", \"#d9d9d9\", \"#f0f0f0\"];\nvar charcoal = \"#252525\";\nvar grey = \"#969696\"; // *\n// * Typography\n// *\n\nvar sansSerif = \"'Gill Sans', 'Seravek', 'Trebuchet MS', sans-serif\";\nvar letterSpacing = \"normal\";\nvar fontSize = 14; // *\n// * Layout\n// *\n\nvar baseProps = {\n width: 450,\n height: 300,\n padding: 50,\n colorScale: colors\n}; // *\n// * Labels\n// *\n\nvar baseLabelStyles = {\n fontFamily: sansSerif,\n fontSize: fontSize,\n letterSpacing: letterSpacing,\n padding: 10,\n fill: charcoal,\n stroke: \"transparent\"\n};\n\nvar centeredLabelStyles = _assign({\n textAnchor: \"middle\"\n}, baseLabelStyles); // *\n// * Strokes\n// *\n\n\nvar strokeLinecap = \"round\";\nvar strokeLinejoin = \"round\";\nexport var grayscale = {\n area: _assign({\n style: {\n data: {\n fill: charcoal\n },\n labels: baseLabelStyles\n }\n }, baseProps),\n axis: _assign({\n style: {\n axis: {\n fill: \"transparent\",\n stroke: charcoal,\n strokeWidth: 1,\n strokeLinecap: strokeLinecap,\n strokeLinejoin: strokeLinejoin\n },\n axisLabel: _assign({}, centeredLabelStyles, {\n padding: 25\n }),\n grid: {\n fill: \"none\",\n stroke: \"none\",\n pointerEvents: \"painted\"\n },\n ticks: {\n fill: \"transparent\",\n size: 1,\n stroke: \"transparent\"\n },\n tickLabels: baseLabelStyles\n }\n }, baseProps),\n bar: _assign({\n style: {\n data: {\n fill: charcoal,\n padding: 8,\n strokeWidth: 0\n },\n labels: baseLabelStyles\n }\n }, baseProps),\n boxplot: _assign({\n style: {\n max: {\n padding: 8,\n stroke: charcoal,\n strokeWidth: 1\n },\n maxLabels: _assign({}, baseLabelStyles, {\n padding: 3\n }),\n median: {\n padding: 8,\n stroke: charcoal,\n strokeWidth: 1\n },\n medianLabels: _assign({}, baseLabelStyles, {\n padding: 3\n }),\n min: {\n padding: 8,\n stroke: charcoal,\n strokeWidth: 1\n },\n minLabels: _assign({}, baseLabelStyles, {\n padding: 3\n }),\n q1: {\n padding: 8,\n fill: grey\n },\n q1Labels: _assign({}, baseLabelStyles, {\n padding: 3\n }),\n q3: {\n padding: 8,\n fill: grey\n },\n q3Labels: _assign({}, baseLabelStyles, {\n padding: 3\n })\n },\n boxWidth: 20\n }, baseProps),\n candlestick: _assign({\n style: {\n data: {\n stroke: charcoal,\n strokeWidth: 1\n },\n labels: _assign({}, baseLabelStyles, {\n padding: 5\n })\n },\n candleColors: {\n positive: \"#ffffff\",\n negative: charcoal\n }\n }, baseProps),\n chart: baseProps,\n errorbar: _assign({\n borderWidth: 8,\n style: {\n data: {\n fill: \"transparent\",\n stroke: charcoal,\n strokeWidth: 2\n },\n labels: baseLabelStyles\n }\n }, baseProps),\n group: _assign({\n colorScale: colors\n }, baseProps),\n histogram: _assign({\n style: {\n data: {\n fill: grey,\n stroke: charcoal,\n strokeWidth: 2\n },\n labels: baseLabelStyles\n }\n }, baseProps),\n legend: {\n colorScale: colors,\n gutter: 10,\n orientation: \"vertical\",\n titleOrientation: \"top\",\n style: {\n data: {\n type: \"circle\"\n },\n labels: baseLabelStyles,\n title: _assign({}, baseLabelStyles, {\n padding: 5\n })\n }\n },\n line: _assign({\n style: {\n data: {\n fill: \"transparent\",\n stroke: charcoal,\n strokeWidth: 2\n },\n labels: baseLabelStyles\n }\n }, baseProps),\n pie: {\n style: {\n data: {\n padding: 10,\n stroke: \"transparent\",\n strokeWidth: 1\n },\n labels: _assign({}, baseLabelStyles, {\n padding: 20\n })\n },\n colorScale: colors,\n width: 400,\n height: 400,\n padding: 50\n },\n scatter: _assign({\n style: {\n data: {\n fill: charcoal,\n stroke: \"transparent\",\n strokeWidth: 0\n },\n labels: baseLabelStyles\n }\n }, baseProps),\n stack: _assign({\n colorScale: colors\n }, baseProps),\n tooltip: {\n style: _assign({}, baseLabelStyles, {\n padding: 0,\n pointerEvents: \"none\"\n }),\n flyoutStyle: {\n stroke: charcoal,\n strokeWidth: 1,\n fill: \"#f0f0f0\",\n pointerEvents: \"none\"\n },\n flyoutPadding: 5,\n cornerRadius: 5,\n pointerLength: 10\n },\n voronoi: _assign({\n style: {\n data: {\n fill: \"transparent\",\n stroke: \"transparent\",\n strokeWidth: 0\n },\n labels: _assign({}, baseLabelStyles, {\n padding: 5,\n pointerEvents: \"none\"\n }),\n flyout: {\n stroke: charcoal,\n strokeWidth: 1,\n fill: \"#f0f0f0\",\n pointerEvents: \"none\"\n }\n }\n }, baseProps)\n};","import _assign from \"lodash/assign\";\n// *\n// * Colors\n// *\nvar yellow200 = \"#FFF59D\";\nvar deepOrange600 = \"#F4511E\";\nvar lime300 = \"#DCE775\";\nvar lightGreen500 = \"#8BC34A\";\nvar teal700 = \"#00796B\";\nvar cyan900 = \"#006064\";\nvar colors = [deepOrange600, yellow200, lime300, lightGreen500, teal700, cyan900];\nvar blueGrey50 = \"#ECEFF1\";\nvar blueGrey300 = \"#90A4AE\";\nvar blueGrey700 = \"#455A64\";\nvar grey900 = \"#212121\"; // *\n// * Typography\n// *\n\nvar sansSerif = \"'Helvetica Neue', 'Helvetica', sans-serif\";\nvar letterSpacing = \"normal\";\nvar fontSize = 12; // *\n// * Layout\n// *\n\nvar padding = 8;\nvar baseProps = {\n width: 350,\n height: 350,\n padding: 50\n}; // *\n// * Labels\n// *\n\nvar baseLabelStyles = {\n fontFamily: sansSerif,\n fontSize: fontSize,\n letterSpacing: letterSpacing,\n padding: padding,\n fill: blueGrey700,\n stroke: \"transparent\",\n strokeWidth: 0\n};\n\nvar centeredLabelStyles = _assign({\n textAnchor: \"middle\"\n}, baseLabelStyles); // *\n// * Strokes\n// *\n\n\nvar strokeDasharray = \"10, 5\";\nvar strokeLinecap = \"round\";\nvar strokeLinejoin = \"round\";\nexport var material = {\n area: _assign({\n style: {\n data: {\n fill: grey900\n },\n labels: baseLabelStyles\n }\n }, baseProps),\n axis: _assign({\n style: {\n axis: {\n fill: \"transparent\",\n stroke: blueGrey300,\n strokeWidth: 2,\n strokeLinecap: strokeLinecap,\n strokeLinejoin: strokeLinejoin\n },\n axisLabel: _assign({}, centeredLabelStyles, {\n padding: padding,\n stroke: \"transparent\"\n }),\n grid: {\n fill: \"none\",\n stroke: blueGrey50,\n strokeDasharray: strokeDasharray,\n strokeLinecap: strokeLinecap,\n strokeLinejoin: strokeLinejoin,\n pointerEvents: \"painted\"\n },\n ticks: {\n fill: \"transparent\",\n size: 5,\n stroke: blueGrey300,\n strokeWidth: 1,\n strokeLinecap: strokeLinecap,\n strokeLinejoin: strokeLinejoin\n },\n tickLabels: _assign({}, baseLabelStyles, {\n fill: blueGrey700\n })\n }\n }, baseProps),\n polarDependentAxis: _assign({\n style: {\n ticks: {\n fill: \"transparent\",\n size: 1,\n stroke: \"transparent\"\n }\n }\n }),\n bar: _assign({\n style: {\n data: {\n fill: blueGrey700,\n padding: padding,\n strokeWidth: 0\n },\n labels: baseLabelStyles\n }\n }, baseProps),\n boxplot: _assign({\n style: {\n max: {\n padding: padding,\n stroke: blueGrey700,\n strokeWidth: 1\n },\n maxLabels: _assign({}, baseLabelStyles, {\n padding: 3\n }),\n median: {\n padding: padding,\n stroke: blueGrey700,\n strokeWidth: 1\n },\n medianLabels: _assign({}, baseLabelStyles, {\n padding: 3\n }),\n min: {\n padding: padding,\n stroke: blueGrey700,\n strokeWidth: 1\n },\n minLabels: _assign({}, baseLabelStyles, {\n padding: 3\n }),\n q1: {\n padding: padding,\n fill: blueGrey700\n },\n q1Labels: _assign({}, baseLabelStyles, {\n padding: 3\n }),\n q3: {\n padding: padding,\n fill: blueGrey700\n },\n q3Labels: _assign({}, baseLabelStyles, {\n padding: 3\n })\n },\n boxWidth: 20\n }, baseProps),\n candlestick: _assign({\n style: {\n data: {\n stroke: blueGrey700\n },\n labels: _assign({}, baseLabelStyles, {\n padding: 5\n })\n },\n candleColors: {\n positive: \"#ffffff\",\n negative: blueGrey700\n }\n }, baseProps),\n chart: baseProps,\n errorbar: _assign({\n borderWidth: 8,\n style: {\n data: {\n fill: \"transparent\",\n opacity: 1,\n stroke: blueGrey700,\n strokeWidth: 2\n },\n labels: baseLabelStyles\n }\n }, baseProps),\n group: _assign({\n colorScale: colors\n }, baseProps),\n histogram: _assign({\n style: {\n data: {\n fill: blueGrey700,\n stroke: grey900,\n strokeWidth: 2\n },\n labels: baseLabelStyles\n }\n }, baseProps),\n legend: {\n colorScale: colors,\n gutter: 10,\n orientation: \"vertical\",\n titleOrientation: \"top\",\n style: {\n data: {\n type: \"circle\"\n },\n labels: baseLabelStyles,\n title: _assign({}, baseLabelStyles, {\n padding: 5\n })\n }\n },\n line: _assign({\n style: {\n data: {\n fill: \"transparent\",\n opacity: 1,\n stroke: blueGrey700,\n strokeWidth: 2\n },\n labels: baseLabelStyles\n }\n }, baseProps),\n pie: _assign({\n colorScale: colors,\n style: {\n data: {\n padding: padding,\n stroke: blueGrey50,\n strokeWidth: 1\n },\n labels: _assign({}, baseLabelStyles, {\n padding: 20\n })\n }\n }, baseProps),\n scatter: _assign({\n style: {\n data: {\n fill: blueGrey700,\n opacity: 1,\n stroke: \"transparent\",\n strokeWidth: 0\n },\n labels: baseLabelStyles\n }\n }, baseProps),\n stack: _assign({\n colorScale: colors\n }, baseProps),\n tooltip: {\n style: _assign({}, baseLabelStyles, {\n padding: 0,\n pointerEvents: \"none\"\n }),\n flyoutStyle: {\n stroke: grey900,\n strokeWidth: 1,\n fill: \"#f0f0f0\",\n pointerEvents: \"none\"\n },\n flyoutPadding: 5,\n cornerRadius: 5,\n pointerLength: 10\n },\n voronoi: _assign({\n style: {\n data: {\n fill: \"transparent\",\n stroke: \"transparent\",\n strokeWidth: 0\n },\n labels: _assign({}, baseLabelStyles, {\n padding: 5,\n pointerEvents: \"none\"\n }),\n flyout: {\n stroke: grey900,\n strokeWidth: 1,\n fill: \"#f0f0f0\",\n pointerEvents: \"none\"\n }\n }\n }, baseProps)\n};","import { grayscale } from \"./grayscale\";\nimport { material } from \"./material\";\nexport * from \"./types\";\nexport var VictoryTheme = {\n grayscale: grayscale,\n material: material\n};","export const linear = t => +t;\n","export function quadIn(t) {\n return t * t;\n}\n\nexport function quadOut(t) {\n return t * (2 - t);\n}\n\nexport function quadInOut(t) {\n return ((t *= 2) <= 1 ? t * t : --t * (2 - t) + 1) / 2;\n}\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","var exponent = 3;\n\nexport var polyIn = (function custom(e) {\n e = +e;\n\n function polyIn(t) {\n return Math.pow(t, e);\n }\n\n polyIn.exponent = custom;\n\n return polyIn;\n})(exponent);\n\nexport var polyOut = (function custom(e) {\n e = +e;\n\n function polyOut(t) {\n return 1 - Math.pow(1 - t, e);\n }\n\n polyOut.exponent = custom;\n\n return polyOut;\n})(exponent);\n\nexport var polyInOut = (function custom(e) {\n e = +e;\n\n function polyInOut(t) {\n return ((t *= 2) <= 1 ? Math.pow(t, e) : 2 - Math.pow(2 - t, e)) / 2;\n }\n\n polyInOut.exponent = custom;\n\n return polyInOut;\n})(exponent);\n","var pi = Math.PI,\n halfPi = pi / 2;\n\nexport function sinIn(t) {\n return (+t === 1) ? 1 : 1 - Math.cos(t * halfPi);\n}\n\nexport function sinOut(t) {\n return Math.sin(t * halfPi);\n}\n\nexport function sinInOut(t) {\n return (1 - Math.cos(pi * t)) / 2;\n}\n","// tpmt is two power minus ten times t scaled to [0,1]\nexport function tpmt(x) {\n return (Math.pow(2, -10 * x) - 0.0009765625) * 1.0009775171065494;\n}\n","import {tpmt} from \"./math.js\";\n\nexport function expIn(t) {\n return tpmt(1 - +t);\n}\n\nexport function expOut(t) {\n return 1 - tpmt(t);\n}\n\nexport function expInOut(t) {\n return ((t *= 2) <= 1 ? tpmt(1 - t) : 2 - tpmt(t - 1)) / 2;\n}\n","export function circleIn(t) {\n return 1 - Math.sqrt(1 - t * t);\n}\n\nexport function circleOut(t) {\n return Math.sqrt(1 - --t * t);\n}\n\nexport function circleInOut(t) {\n return ((t *= 2) <= 1 ? 1 - Math.sqrt(1 - t * t) : Math.sqrt(1 - (t -= 2) * t) + 1) / 2;\n}\n","var b1 = 4 / 11,\n b2 = 6 / 11,\n b3 = 8 / 11,\n b4 = 3 / 4,\n b5 = 9 / 11,\n b6 = 10 / 11,\n b7 = 15 / 16,\n b8 = 21 / 22,\n b9 = 63 / 64,\n b0 = 1 / b1 / b1;\n\nexport function bounceIn(t) {\n return 1 - bounceOut(1 - t);\n}\n\nexport function bounceOut(t) {\n return (t = +t) < b1 ? b0 * t * t : t < b3 ? b0 * (t -= b2) * t + b4 : t < b6 ? b0 * (t -= b5) * t + b7 : b0 * (t -= b8) * t + b9;\n}\n\nexport function bounceInOut(t) {\n return ((t *= 2) <= 1 ? 1 - bounceOut(1 - t) : bounceOut(t - 1) + 1) / 2;\n}\n","var overshoot = 1.70158;\n\nexport var backIn = (function custom(s) {\n s = +s;\n\n function backIn(t) {\n return (t = +t) * t * (s * (t - 1) + t);\n }\n\n backIn.overshoot = custom;\n\n return backIn;\n})(overshoot);\n\nexport var backOut = (function custom(s) {\n s = +s;\n\n function backOut(t) {\n return --t * t * ((t + 1) * s + t) + 1;\n }\n\n backOut.overshoot = custom;\n\n return backOut;\n})(overshoot);\n\nexport var backInOut = (function custom(s) {\n s = +s;\n\n function backInOut(t) {\n return ((t *= 2) < 1 ? t * t * ((s + 1) * t - s) : (t -= 2) * t * ((s + 1) * t + s) + 2) / 2;\n }\n\n backInOut.overshoot = custom;\n\n return backInOut;\n})(overshoot);\n","import {tpmt} from \"./math.js\";\n\nvar tau = 2 * Math.PI,\n amplitude = 1,\n period = 0.3;\n\nexport var elasticIn = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticIn(t) {\n return a * tpmt(-(--t)) * Math.sin((s - t) / p);\n }\n\n elasticIn.amplitude = function(a) { return custom(a, p * tau); };\n elasticIn.period = function(p) { return custom(a, p); };\n\n return elasticIn;\n})(amplitude, period);\n\nexport var elasticOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticOut(t) {\n return 1 - a * tpmt(t = +t) * Math.sin((t + s) / p);\n }\n\n elasticOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticOut.period = function(p) { return custom(a, p); };\n\n return elasticOut;\n})(amplitude, period);\n\nexport var elasticInOut = (function custom(a, p) {\n var s = Math.asin(1 / (a = Math.max(1, a))) * (p /= tau);\n\n function elasticInOut(t) {\n return ((t = t * 2 - 1) < 0\n ? a * tpmt(-t) * Math.sin((s - t) / p)\n : 2 - a * tpmt(t) * Math.sin((s + t) / p)) / 2;\n }\n\n elasticInOut.amplitude = function(a) { return custom(a, p * tau); };\n elasticInOut.period = function(p) { return custom(a, p); };\n\n return elasticInOut;\n})(amplitude, period);\n","import _orderBy from \"lodash/orderBy\";\nimport _isPlainObject from \"lodash/isPlainObject\";\nimport { interpolate } from \"victory-vendor/d3-interpolate\";\nexport var isInterpolatable = function (obj) {\n // d3 turns null into 0 and undefined into NaN, which we don't want.\n if (obj !== null) {\n switch (typeof obj) {\n case \"undefined\":\n return false;\n\n case \"number\":\n // The standard `isNaN` is fine in this case since we already know the\n // type is number.\n return !isNaN(obj) && obj !== Number.POSITIVE_INFINITY && obj !== Number.NEGATIVE_INFINITY;\n\n case \"string\":\n // d3 might not *actually* be able to interpolate the string, but it\n // won't cause any issues to let it try.\n return true;\n\n case \"boolean\":\n // d3 turns Booleans into integers, which we don't want. Sure, we could\n // interpolate from 0 -> 1, but we'd be sending a non-Boolean to\n // something expecting a Boolean.\n return false;\n\n case \"object\":\n // Don't try to interpolate class instances (except Date or Array).\n return obj instanceof Date || Array.isArray(obj) || _isPlainObject(obj);\n\n case \"function\":\n // Careful! There may be extra properties on function objects that the\n // component expects to access - for instance, it may be a `d3.scale()`\n // function, which has its own methods attached. We don't know if the\n // component is only going to call the function (in which case it's\n // safely interpolatable) or if it's going to access special properties\n // (in which case our function generated from `interpolateFunction` will\n // most likely cause an error). We could check for enumerable properties\n // on the function object here to see if it's a \"plain\" function, but\n // let's just require that components prevent such function props from\n // being animated in the first place.\n return true;\n }\n }\n\n return false;\n};\n/**\n * Interpolate immediately to the end value at the given step `when`.\n * Some nicer default behavior might be to jump at the halfway point or return\n * `a` if `t` is 0 (instead of always returning `b`). But d3's default\n * interpolator does not do these things:\n *\n * d3.interpolate('aaa', 'bbb')(0) === 'bbb'\n *\n * ...and things might get wonky if we don't replicate that behavior.\n *\n * @param {any} a - Start value.\n * @param {any} b - End value.\n * @param {Number} when - Step value (0 to 1) at which to jump to `b`.\n * @returns {Function} An interpolation function.\n */\n\nexport var interpolateImmediate = function (a, b) {\n var when = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n return function (t) {\n return t < when ? a : b;\n };\n};\n/**\n * Interpolate to or from a function. The interpolated value will be a function\n * that calls `a` (if it's a function) and `b` (if it's a function) and calls\n * `d3.interpolate` on the resulting values. Note that our function won't\n * necessarily be called (that's up to the component this eventually gets\n * passed to) - but if it does get called, it will return an appropriately\n * interpolated value.\n *\n * @param {any} a - Start value.\n * @param {any} b - End value.\n * @returns {Function} An interpolation function.\n */\n\nexport var interpolateFunction = function (a, b) {\n return function (t) {\n if (t >= 1) {\n return b;\n }\n\n return function () {\n /* eslint-disable no-invalid-this, prefer-rest-params */\n var aval = typeof a === \"function\" ? a.apply(this, arguments) : a;\n var bval = typeof b === \"function\" ? b.apply(this, arguments) : b;\n return interpolate(aval, bval)(t);\n };\n };\n};\n/**\n * Interpolate to or from an object. This method is a modification of the object interpolator in\n * d3-interpolate https://github.com/d3/d3-interpolate/blob/master/src/object.js. This interpolator\n * differs in that it uses our custom interpolators when interpolating the value of each property in\n * an object. This allows the correct interpolation of nested objects, including styles\n *\n * @param {any} a - Start value.\n * @param {any} b - End value.\n * @returns {Function} An interpolation function.\n */\n\nexport var interpolateObject = function (a, b) {\n var interpolateTypes = function (x, y) {\n if (x === y || !isInterpolatable(x) || !isInterpolatable(y)) {\n return interpolateImmediate(x, y);\n }\n\n if (typeof x === \"function\" || typeof y === \"function\") {\n return interpolateFunction(x, y);\n }\n\n if (typeof x === \"object\" && _isPlainObject(x) || typeof y === \"object\" && _isPlainObject(y)) {\n return interpolateObject(x, y);\n }\n\n return interpolate(x, y);\n }; // When the value is an array, attempt to sort by \"key\" so that animating nodes may be identified\n // based on \"key\" instead of index\n\n\n var keyData = function (val) {\n return Array.isArray(val) ? _orderBy(val, \"key\") : val;\n };\n\n var i = {};\n var c = {};\n var k;\n\n if (a === null || typeof a !== \"object\") {\n a = {};\n }\n\n if (b === null || typeof b !== \"object\") {\n b = {};\n }\n\n for (k in b) {\n if (k in a) {\n i[k] = interpolateTypes(keyData(a[k]), keyData(b[k]));\n } else {\n c[k] = b[k];\n }\n }\n\n return function (t) {\n for (k in i) {\n c[k] = i[k](t);\n }\n\n return c;\n };\n};\nexport var interpolateString = function (a, b) {\n var format = function (val) {\n return typeof val === \"string\" ? val.replace(/,/g, \"\") : val;\n };\n\n return interpolate(format(a), format(b));\n};\n/**\n * By default, the list of interpolators used by `d3.interpolate` has a few\n * downsides:\n *\n * - `null` values get turned into 0.\n * - `undefined`, `function`, and some other value types get turned into NaN.\n * - Boolean types get turned into numbers, which probably will be meaningless\n * to whatever is consuming them.\n * - It tries to interpolate between identical start and end values, doing\n * unnecessary calculations that sometimes result in floating point rounding\n * errors.\n *\n * If only the default interpolators are used, `VictoryAnimation` will happily\n * pass down NaN (and other bad) values as props to the wrapped component.\n * The component will then either use the incorrect values or complain that it\n * was passed props of the incorrect type. This custom interpolator is added\n * using the `d3.interpolators` API, and prevents such cases from happening\n * for most values.\n *\n * @param {any} a - Start value.\n * @param {any} b - End value.\n * @returns {Function|undefined} An interpolation function, if necessary.\n */\n\nexport var victoryInterpolator = function (a, b) {\n // If the values are strictly equal, or either value is not interpolatable,\n // just use either the start value `a` or end value `b` at every step, as\n // there is no reasonable in-between value.\n if (a === b || !isInterpolatable(a) || !isInterpolatable(b)) {\n return interpolateImmediate(a, b);\n }\n\n if (typeof a === \"function\" || typeof b === \"function\") {\n return interpolateFunction(a, b);\n }\n\n if (_isPlainObject(a) || _isPlainObject(b)) {\n // @ts-expect-error These generics are tough, but they work :)\n return interpolateObject(a, b);\n }\n\n if (typeof a === \"string\" || typeof b === \"string\") {\n return interpolateString(a, b);\n } // @ts-expect-error These generics are tough, but they work :)\n\n\n return interpolate(a, b);\n};","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) 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\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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\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 } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\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 _possibleConstructorReturn(self, call) { if (call && (typeof call === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/* global setTimeout:false */\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport * as d3Ease from \"victory-vendor/d3-ease\";\nimport { victoryInterpolator } from \"./util\";\nimport TimerContext from \"../victory-util/timer-context\";\nimport isEqual from \"react-fast-compare\";\nexport var VictoryAnimation = /*#__PURE__*/function (_React$Component) {\n _inherits(VictoryAnimation, _React$Component);\n\n var _super = _createSuper(VictoryAnimation);\n\n function VictoryAnimation(props, context) {\n var _this;\n\n _classCallCheck(this, VictoryAnimation);\n\n _this = _super.call(this, props, context);\n /* defaults */\n\n _this.interpolator = void 0;\n _this.queue = void 0;\n _this.ease = void 0;\n _this.timer = void 0;\n _this.loopID = void 0;\n\n _this.functionToBeRunEachFrame = function (elapsed, duration) {\n /*\n step can generate imprecise values, sometimes greater than 1\n if this happens set the state to 1 and return, cancelling the timer\n */\n duration = duration !== undefined ? duration : _this.props.duration;\n var step = duration ? elapsed / duration : 1;\n\n if (step >= 1) {\n _this.setState({\n data: _this.interpolator(1),\n animationInfo: {\n progress: 1,\n animating: false,\n terminating: true\n }\n });\n\n if (_this.loopID) {\n _this.timer.unsubscribe(_this.loopID);\n }\n\n _this.queue.shift();\n\n _this.traverseQueue();\n\n return;\n }\n /*\n if we're not at the end of the timer, set the state by passing\n current step value that's transformed by the ease function to the\n interpolator, which is cached for performance whenever props are received\n */\n\n\n _this.setState({\n data: _this.interpolator(_this.ease(step)),\n animationInfo: {\n progress: step,\n animating: step < 1\n }\n });\n };\n\n _this.state = {\n data: Array.isArray(_this.props.data) ? _this.props.data[0] : _this.props.data,\n animationInfo: {\n progress: 0,\n animating: false\n }\n };\n _this.interpolator = null;\n _this.queue = Array.isArray(_this.props.data) ? _this.props.data.slice(1) : [];\n /* build easing function */\n\n _this.ease = d3Ease[_this.toNewName(_this.props.easing)];\n _this.timer = _this.context.animationTimer;\n return _this;\n }\n\n _createClass(VictoryAnimation, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // Length check prevents us from triggering `onEnd` in `traverseQueue`.\n if (this.queue.length) {\n this.traverseQueue();\n }\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var equalProps = isEqual(this.props, prevProps);\n\n if (!equalProps) {\n /* If the previous animation didn't finish, force it to complete before starting a new one */\n if (this.interpolator && this.state.animationInfo && this.state.animationInfo.progress < 1) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({\n data: this.interpolator(1),\n animationInfo: {\n progress: 1,\n animating: false,\n terminating: true\n }\n });\n } else {\n /* cancel existing loop if it exists */\n this.timer.unsubscribe(this.loopID);\n /* If an object was supplied */\n\n if (!Array.isArray(this.props.data)) {\n // Replace the tween queue. Could set `this.queue = [nextProps.data]`,\n // but let's reuse the same array.\n this.queue.length = 0;\n this.queue.push(this.props.data);\n /* If an array was supplied */\n } else {\n var _this$queue;\n\n /* Extend the tween queue */\n (_this$queue = this.queue).push.apply(_this$queue, _toConsumableArray(this.props.data));\n }\n /* Start traversing the tween queue */\n\n\n this.traverseQueue();\n }\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.loopID) {\n this.timer.unsubscribe(this.loopID);\n } else {\n this.timer.stop();\n }\n }\n }, {\n key: \"toNewName\",\n value: function toNewName(ease) {\n // d3-ease changed the naming scheme for ease from \"linear\" -> \"easeLinear\" etc.\n var capitalize = function (s) {\n return s && s[0].toUpperCase() + s.slice(1);\n };\n\n return \"ease\".concat(capitalize(ease));\n }\n /* Traverse the tween queue */\n\n }, {\n key: \"traverseQueue\",\n value: function traverseQueue() {\n var _this2 = this;\n\n if (this.queue.length) {\n /* Get the next index */\n var data = this.queue[0];\n /* compare cached version to next props */\n\n this.interpolator = victoryInterpolator(this.state.data, data);\n /* reset step to zero */\n\n if (this.props.delay) {\n setTimeout(function () {\n _this2.loopID = _this2.timer.subscribe(_this2.functionToBeRunEachFrame, _this2.props.duration);\n }, this.props.delay);\n } else {\n this.loopID = this.timer.subscribe(this.functionToBeRunEachFrame, this.props.duration);\n }\n } else if (this.props.onEnd) {\n this.props.onEnd();\n }\n }\n /* every frame we... */\n\n }, {\n key: \"render\",\n value: function render() {\n return this.props.children(this.state.data, this.state.animationInfo);\n }\n }]);\n\n return VictoryAnimation;\n}(React.Component);\nVictoryAnimation.displayName = \"VictoryAnimation\";\nVictoryAnimation.propTypes = {\n children: PropTypes.func,\n data: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n delay: PropTypes.number,\n duration: PropTypes.number,\n easing: PropTypes.oneOf([\"back\", \"backIn\", \"backOut\", \"backInOut\", \"bounce\", \"bounceIn\", \"bounceOut\", \"bounceInOut\", \"circle\", \"circleIn\", \"circleOut\", \"circleInOut\", \"linear\", \"linearIn\", \"linearOut\", \"linearInOut\", \"cubic\", \"cubicIn\", \"cubicOut\", \"cubicInOut\", \"elastic\", \"elasticIn\", \"elasticOut\", \"elasticInOut\", \"exp\", \"expIn\", \"expOut\", \"expInOut\", \"poly\", \"polyIn\", \"polyOut\", \"polyInOut\", \"quad\", \"quadIn\", \"quadOut\", \"quadInOut\", \"sin\", \"sinIn\", \"sinOut\", \"sinInOut\"]),\n onEnd: PropTypes.func\n};\nVictoryAnimation.defaultProps = {\n data: {},\n delay: 0,\n duration: 1000,\n easing: \"quadInOut\"\n};\nVictoryAnimation.contextType = TimerContext;","import _pick from \"lodash/pick\";\nimport _isFunction from \"lodash/isFunction\";\nimport _defaults from \"lodash/defaults\";\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\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 } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\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 _possibleConstructorReturn(self, call) { if (call && (typeof call === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { VictoryAnimation } from \"../victory-animation/victory-animation\";\nimport * as Collection from \"../victory-util/collection\";\nimport * as Helpers from \"../victory-util/helpers\";\nimport TimerContext from \"../victory-util/timer-context\";\nimport * as Transitions from \"../victory-util/transitions\";\nimport isEqual from \"react-fast-compare\";\nexport var VictoryTransition = /*#__PURE__*/function (_React$Component) {\n _inherits(VictoryTransition, _React$Component);\n\n var _super = _createSuper(VictoryTransition);\n\n function VictoryTransition(props, context) {\n var _this;\n\n _classCallCheck(this, VictoryTransition);\n\n _this = _super.call(this, props, context);\n _this.continuous = void 0;\n _this.timer = void 0;\n _this.transitionProps = void 0;\n _this.state = {\n nodesShouldLoad: false,\n nodesDoneLoad: false\n };\n var child = _this.props.children;\n var polar = child.props.polar;\n _this.continuous = !polar && child.type && child.type.continuous === true;\n _this.timer = _this.context.transitionTimer;\n return _this;\n }\n\n _createClass(VictoryTransition, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this.setState({\n nodesShouldLoad: true\n }); // eslint-disable-line react/no-did-mount-set-state\n }\n }, {\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n var _this2 = this;\n\n if (!isEqual(this.props, nextProps)) {\n this.timer.bypassAnimation();\n this.setState(this.getTransitionState(this.props, nextProps), function () {\n return _this2.timer.resumeAnimation();\n });\n }\n\n return true;\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this.timer.stop();\n }\n }, {\n key: \"getTransitionState\",\n value: function getTransitionState(props, nextProps) {\n var animate = props.animate;\n\n if (!animate) {\n return {};\n } else if (animate.parentState) {\n var state = animate.parentState;\n var oldProps = state.nodesWillExit ? props : null;\n return {\n oldProps: oldProps,\n nextProps: nextProps\n };\n }\n\n var oldChildren = React.Children.toArray(props.children);\n var nextChildren = React.Children.toArray(nextProps.children);\n\n var _Transitions$getIniti = Transitions.getInitialTransitionState(oldChildren, nextChildren),\n nodesWillExit = _Transitions$getIniti.nodesWillExit,\n nodesWillEnter = _Transitions$getIniti.nodesWillEnter,\n childrenTransitions = _Transitions$getIniti.childrenTransitions,\n nodesShouldEnter = _Transitions$getIniti.nodesShouldEnter;\n\n return {\n nodesWillExit: nodesWillExit,\n nodesWillEnter: nodesWillEnter,\n childrenTransitions: childrenTransitions,\n nodesShouldEnter: nodesShouldEnter,\n oldProps: nodesWillExit ? props : null,\n nextProps: nextProps\n };\n }\n }, {\n key: \"getDomainFromChildren\",\n value: function getDomainFromChildren(props, axis) {\n var getChildDomains = function (children) {\n return children.reduce(function (memo, child) {\n if (child.type && _isFunction(child.type.getDomain)) {\n var childDomain = child.props && child.type.getDomain(child.props, axis);\n return childDomain ? memo.concat(childDomain) : memo;\n } else if (child.props && child.props.children) {\n return memo.concat(getChildDomains(React.Children.toArray(child.props.children)));\n }\n\n return memo;\n }, []);\n };\n\n var child = React.Children.toArray(props.children)[0];\n var childProps = child.props || {};\n var domain = Array.isArray(childProps.domain) ? childProps.domain : childProps.domain && childProps.domain[axis];\n\n if (!childProps.children && domain) {\n return domain;\n }\n\n var childDomains = getChildDomains([child]);\n return childDomains.length === 0 ? [0, 1] : [Collection.getMinValue(childDomains), Collection.getMaxValue(childDomains)];\n }\n }, {\n key: \"pickProps\",\n value: function pickProps() {\n if (!this.state) {\n return this.props;\n }\n\n return this.state.nodesWillExit ? this.state.oldProps || this.props : this.props;\n }\n }, {\n key: \"pickDomainProps\",\n value: function pickDomainProps(props) {\n var _props$animate;\n\n var parentState = (_props$animate = props.animate) === null || _props$animate === void 0 ? void 0 : _props$animate.parentState;\n\n if (parentState && parentState.nodesWillExit) {\n return this.continuous || parentState.continuous ? parentState.nextProps || this.state.nextProps || props : props;\n }\n\n return this.continuous && this.state.nodesWillExit ? this.state.nextProps || props : props;\n }\n }, {\n key: \"getClipWidth\",\n value: function getClipWidth(props, child) {\n var getDefaultClipWidth = function () {\n var range = Helpers.getRange(child.props, \"x\");\n return range ? Math.abs(range[1] - range[0]) : props.width;\n };\n\n var clipWidth = this.transitionProps ? this.transitionProps.clipWidth : undefined;\n return clipWidth !== undefined ? clipWidth : getDefaultClipWidth();\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props$animate,\n _this3 = this;\n\n var props = this.pickProps();\n var getTransitionProps = (_this$props$animate = this.props.animate) !== null && _this$props$animate !== void 0 && _this$props$animate.getTransitions ? this.props.animate.getTransitions : Transitions.getTransitionPropsFactory(props, this.state, function (newState) {\n return _this3.setState(newState);\n });\n var child = React.Children.toArray(props.children)[0];\n var transitionProps = getTransitionProps(child);\n this.transitionProps = transitionProps;\n var domain = {\n x: this.getDomainFromChildren(this.pickDomainProps(props), \"x\"),\n y: this.getDomainFromChildren(props, \"y\")\n };\n var clipWidth = this.getClipWidth(props, child);\n\n var combinedProps = _defaults({\n domain: domain,\n clipWidth: clipWidth\n }, transitionProps, child.props);\n\n var animationWhitelist = props.animationWhitelist || [];\n var whitelist = animationWhitelist.concat([\"clipWidth\"]);\n var propsToAnimate = whitelist.length ? _pick(combinedProps, whitelist) : combinedProps;\n return /*#__PURE__*/React.createElement(VictoryAnimation, _extends({}, combinedProps.animate, {\n data: propsToAnimate\n }), function (newProps) {\n if (child.props.groupComponent) {\n var groupComponent = _this3.continuous ? /*#__PURE__*/React.cloneElement(child.props.groupComponent, {\n clipWidth: newProps.clipWidth || 0\n }) : child.props.groupComponent;\n return /*#__PURE__*/React.cloneElement(child, _defaults({\n animate: null,\n animating: true,\n groupComponent: groupComponent\n }, newProps, combinedProps));\n }\n\n return /*#__PURE__*/React.cloneElement(child, _defaults({\n animate: null,\n animating: true\n }, newProps, combinedProps));\n });\n }\n }]);\n\n return VictoryTransition;\n}(React.Component);\nVictoryTransition.displayName = \"VictoryTransition\";\nVictoryTransition.propTypes = {\n animate: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n animationWhitelist: PropTypes.array,\n children: PropTypes.node\n};\nVictoryTransition.contextType = TimerContext;","import _without from \"lodash/without\";\nimport _pick from \"lodash/pick\";\nimport _keys from \"lodash/keys\";\nimport _isNil from \"lodash/isNil\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isEmpty from \"lodash/isEmpty\";\nimport _difference from \"lodash/difference\";\nimport _defaults from \"lodash/defaults\";\nimport _assign from \"lodash/assign\";\n\nfunction _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\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) 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\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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\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 } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\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 _possibleConstructorReturn(self, call) { if (call && (typeof call === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React from \"react\";\nimport * as Events from \"./events\";\nimport isEqual from \"react-fast-compare\";\nimport { VictoryTransition } from \"../victory-transition/victory-transition\";\n\n// DISCLAIMER:\n// This file is not currently tested, and it is first on the list of files\n// to refactor in our current refactoring effort. Please do not make changes\n// to this file without manual testing and/or refactoring and adding tests.\nvar datumHasXandY = function (datum) {\n return !_isNil(datum._x) && !_isNil(datum._y);\n}; // used for checking state changes. Expected components can be passed in via options\n\n\nvar defaultComponents = [{\n name: \"parent\",\n index: \"parent\"\n}, {\n name: \"data\"\n}, {\n name: \"labels\"\n}];\nexport function addEvents(WrappedComponent) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n // @ts-expect-error \"TS2545: A mixin class must have a constructor with a single rest parameter of type 'any[]'.\"\n var AddEventsMixin = /*#__PURE__*/function (_WrappedComponent) {\n _inherits(AddEventsMixin, _WrappedComponent);\n\n var _super = _createSuper(AddEventsMixin);\n\n function AddEventsMixin(props) {\n var _this;\n\n _classCallCheck(this, AddEventsMixin);\n\n _this = _super.call(this, props);\n _this.state = {};\n _this.getEventState = Events.getEventState.bind(_assertThisInitialized(_this));\n _this.getScopedEvents = Events.getScopedEvents.bind(_assertThisInitialized(_this));\n\n _this.getEvents = function (p, target, eventKey) {\n return Events.getEvents.call(_assertThisInitialized(_this), p, target, eventKey, _this.getScopedEvents);\n };\n\n _this.externalMutations = _this.getExternalMutations(_this.props);\n _this.calculatedState = _this.getStateChanges(_this.props);\n _this.globalEvents = {};\n _this.prevGlobalEventKeys = [];\n _this.boundGlobalEvents = {};\n\n _this.cacheValues(_this.getCalculatedValues(props));\n\n return _this;\n }\n\n _createClass(AddEventsMixin, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n var externalMutations = this.getExternalMutations(nextProps); // @ts-expect-error \"Property 'animating' does not exist on type EventMixinCommonProps\"\n\n var animating = this.props.animating || this.props.animate;\n var newMutation = !isEqual(externalMutations, this.externalMutations);\n\n if (animating || newMutation) {\n this.cacheValues(this.getCalculatedValues(nextProps));\n this.externalMutations = externalMutations;\n this.applyExternalMutations(nextProps, externalMutations);\n return true;\n }\n\n var calculatedState = this.getStateChanges(nextProps);\n\n if (!isEqual(this.calculatedState, calculatedState)) {\n this.cacheValues(this.getCalculatedValues(nextProps));\n return true;\n }\n\n if (!isEqual(this.props, nextProps)) {\n this.cacheValues(this.getCalculatedValues(nextProps));\n return true;\n }\n\n return false;\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n var globalEventKeys = _keys(this.globalEvents);\n\n globalEventKeys.forEach(function (key) {\n return _this2.addGlobalListener(key);\n });\n this.prevGlobalEventKeys = globalEventKeys;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n var _this3 = this;\n\n var calculatedState = this.getStateChanges(prevProps);\n this.calculatedState = calculatedState;\n\n var globalEventKeys = _keys(this.globalEvents);\n\n var removedGlobalEventKeys = _difference(this.prevGlobalEventKeys, globalEventKeys);\n\n removedGlobalEventKeys.forEach(function (key) {\n return _this3.removeGlobalListener(key);\n });\n\n var addedGlobalEventKeys = _difference(globalEventKeys, this.prevGlobalEventKeys);\n\n addedGlobalEventKeys.forEach(function (key) {\n return _this3.addGlobalListener(key);\n });\n this.prevGlobalEventKeys = globalEventKeys;\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var _this4 = this;\n\n this.prevGlobalEventKeys.forEach(function (key) {\n return _this4.removeGlobalListener(key);\n });\n }\n }, {\n key: \"addGlobalListener\",\n value: function addGlobalListener(key) {\n var _this5 = this;\n\n var boundListener = function (event) {\n var listener = _this5.globalEvents[key];\n return listener && listener(Events.emulateReactEvent(event));\n };\n\n this.boundGlobalEvents[key] = boundListener;\n window.addEventListener(Events.getGlobalEventNameFromKey(key), boundListener);\n }\n }, {\n key: \"removeGlobalListener\",\n value: function removeGlobalListener(key) {\n window.removeEventListener(Events.getGlobalEventNameFromKey(key), this.boundGlobalEvents[key]);\n } // compile all state changes from own and parent state. Order doesn't matter, as any state\n // state change should trigger a re-render\n\n }, {\n key: \"getStateChanges\",\n value: function getStateChanges(props) {\n var _this6 = this;\n\n if (!this.hasEvents) {\n return {};\n }\n\n var getState = function (key, type) {\n var result = _defaults({}, _this6.getEventState(key, type), _this6.getSharedEventState(key, type));\n\n return _isEmpty(result) ? undefined : result;\n };\n\n var components = options.components || defaultComponents;\n var stateChanges = components.map(function (component) {\n if (!props.standalone && component.name === \"parent\") {\n // don't check for changes on parent props for non-standalone components\n return undefined;\n }\n\n return component.index !== undefined ? getState(component.index, component.name) : _this6.dataKeys.map(function (key) {\n return getState(key, component.name);\n }).filter(Boolean);\n }).filter(Boolean);\n return stateChanges;\n }\n }, {\n key: \"applyExternalMutations\",\n value: function applyExternalMutations(props, externalMutations) {\n if (!_isEmpty(externalMutations)) {\n var callbacks = props.externalEventMutations.reduce(function (memo, mutation) {\n memo = _isFunction(mutation.callback) ? memo.concat(mutation.callback) : memo;\n return memo;\n }, []);\n var compiledCallbacks = callbacks.length ? function () {\n callbacks.forEach(function (c) {\n return c();\n });\n } : undefined;\n this.setState(externalMutations, compiledCallbacks);\n }\n }\n }, {\n key: \"getCalculatedValues\",\n value: function getCalculatedValues(props) {\n var sharedEvents = props.sharedEvents;\n var components = WrappedComponent.expectedComponents;\n var componentEvents = Events.getComponentEvents(props, components);\n var getSharedEventState = sharedEvents && _isFunction(sharedEvents.getEventState) ? sharedEvents.getEventState : function () {\n return undefined;\n };\n var baseProps = this.getBaseProps(props, getSharedEventState);\n\n var dataKeys = _keys(baseProps).filter(function (key) {\n return key !== \"parent\";\n });\n\n var hasEvents = props.events || props.sharedEvents || componentEvents;\n var events = this.getAllEvents(props);\n return {\n componentEvents: componentEvents,\n getSharedEventState: getSharedEventState,\n baseProps: baseProps,\n dataKeys: dataKeys,\n hasEvents: hasEvents,\n events: events\n };\n }\n }, {\n key: \"getExternalMutations\",\n value: function getExternalMutations(props) {\n var sharedEvents = props.sharedEvents,\n externalEventMutations = props.externalEventMutations;\n return _isEmpty(externalEventMutations) || sharedEvents ? undefined : Events.getExternalMutations(externalEventMutations, this.baseProps, this.state);\n }\n }, {\n key: \"cacheValues\",\n value: function cacheValues(obj) {\n var _this7 = this;\n\n _keys(obj).forEach(function (key) {\n _this7[key] = obj[key];\n });\n }\n }, {\n key: \"getBaseProps\",\n value: function getBaseProps(props, getSharedEventState) {\n getSharedEventState = getSharedEventState || this.getSharedEventState.bind(this);\n var sharedParentState = getSharedEventState(\"parent\", \"parent\");\n var parentState = this.getEventState(\"parent\", \"parent\");\n\n var baseParentProps = _defaults({}, parentState, sharedParentState);\n\n var parentPropsList = baseParentProps.parentControlledProps;\n var parentProps = parentPropsList ? _pick(baseParentProps, parentPropsList) : {};\n\n var modifiedProps = _defaults({}, parentProps, props);\n\n return typeof WrappedComponent.getBaseProps === \"function\" ? WrappedComponent.getBaseProps(modifiedProps) : {};\n }\n }, {\n key: \"getAllEvents\",\n value: function getAllEvents(props) {\n if (Array.isArray(this.componentEvents)) {\n var _this$componentEvents;\n\n return Array.isArray(props.events) ? (_this$componentEvents = this.componentEvents).concat.apply(_this$componentEvents, _toConsumableArray(props.events)) : this.componentEvents;\n }\n\n return props.events;\n }\n }, {\n key: \"getComponentProps\",\n value: function getComponentProps(component, type, index) {\n var name = this.props.name || WrappedComponent.role;\n var key = this.dataKeys && this.dataKeys[index] || index;\n var id = \"\".concat(name, \"-\").concat(type, \"-\").concat(key);\n var baseProps = this.baseProps[key] && this.baseProps[key][type] || this.baseProps[key];\n\n if (!baseProps && !this.hasEvents) {\n return undefined;\n }\n\n if (this.hasEvents) {\n var baseEvents = this.getEvents(this.props, type, key);\n\n var componentProps = _defaults({\n index: index,\n key: id\n }, this.getEventState(key, type), this.getSharedEventState(key, type), component.props, baseProps, {\n id: id\n });\n\n var events = _defaults({}, Events.getPartialEvents(baseEvents, key, componentProps), componentProps.events);\n\n return _assign({}, componentProps, {\n events: events\n });\n }\n\n return _defaults({\n index: index,\n key: id\n }, component.props, baseProps, {\n id: id\n });\n }\n }, {\n key: \"renderContainer\",\n value: function renderContainer(component, children) {\n var isContainer = component.type && component.type.role === \"container\";\n var parentProps = isContainer ? this.getComponentProps(component, \"parent\", \"parent\") : {};\n\n if (parentProps.events) {\n this.globalEvents = Events.getGlobalEvents(parentProps.events);\n parentProps.events = Events.omitGlobalEvents(parentProps.events);\n }\n\n return /*#__PURE__*/React.cloneElement(component, parentProps, children);\n }\n }, {\n key: \"animateComponent\",\n value: function animateComponent(props, defaultAnimationWhitelist) {\n var _props$animate;\n\n var animationWhitelist = typeof props.animate === \"object\" && ((_props$animate = props.animate) === null || _props$animate === void 0 ? void 0 : _props$animate.animationWhitelist) || defaultAnimationWhitelist;\n var Comp = this.constructor;\n return /*#__PURE__*/React.createElement(VictoryTransition, {\n animate: props.animate,\n animationWhitelist: animationWhitelist\n }, /*#__PURE__*/React.createElement(Comp, props));\n } // Used by `VictoryLine` and `VictoryArea`\n\n }, {\n key: \"renderContinuousData\",\n value: function renderContinuousData(props) {\n var _this8 = this;\n\n var dataComponent = props.dataComponent,\n labelComponent = props.labelComponent,\n groupComponent = props.groupComponent;\n\n var dataKeys = _without(this.dataKeys, \"all\");\n\n var labelComponents = dataKeys.reduce(function (memo, key) {\n var labelProps = _this8.getComponentProps(labelComponent, \"labels\", key);\n\n if (labelProps && labelProps.text !== undefined && labelProps.text !== null) {\n memo = memo.concat( /*#__PURE__*/React.cloneElement(labelComponent, labelProps));\n }\n\n return memo;\n }, []);\n var dataProps = this.getComponentProps(dataComponent, \"data\", \"all\");\n var children = [/*#__PURE__*/React.cloneElement(dataComponent, dataProps)].concat(_toConsumableArray(labelComponents));\n return this.renderContainer(groupComponent, children);\n }\n }, {\n key: \"renderData\",\n value: function renderData(props) {\n var _this9 = this;\n\n var shouldRenderDatum = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : datumHasXandY;\n var dataComponent = props.dataComponent,\n labelComponent = props.labelComponent,\n groupComponent = props.groupComponent;\n var dataComponents = this.dataKeys.reduce(function (validDataComponents, _dataKey, index) {\n var dataProps = _this9.getComponentProps(dataComponent, \"data\", index);\n\n if (shouldRenderDatum(dataProps.datum)) {\n validDataComponents.push( /*#__PURE__*/React.cloneElement(dataComponent, dataProps));\n }\n\n return validDataComponents;\n }, []);\n var labelComponents = this.dataKeys.map(function (_dataKey, index) {\n var labelProps = _this9.getComponentProps(labelComponent, \"labels\", index);\n\n if (labelProps.text !== undefined && labelProps.text !== null) {\n return /*#__PURE__*/React.cloneElement(labelComponent, labelProps);\n }\n\n return undefined;\n }).filter(Boolean);\n var children = [].concat(_toConsumableArray(dataComponents), _toConsumableArray(labelComponents));\n return this.renderContainer(groupComponent, children);\n }\n }]);\n\n return AddEventsMixin;\n }(WrappedComponent);\n\n return AddEventsMixin;\n}","import _without from \"lodash/without\";\nimport _includes from \"lodash/includes\";\nimport _values from \"lodash/values\";\nimport _orderBy from \"lodash/orderBy\";\nimport _range from \"lodash/range\";\nimport _uniq from \"lodash/uniq\";\nimport _invert from \"lodash/invert\";\nimport _isObject from \"lodash/isObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _identity from \"lodash/identity\";\nimport _defaults from \"lodash/defaults\";\nimport _assign from \"lodash/assign\";\n\nfunction _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\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) 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\nimport React from \"react\";\nimport * as Collection from \"./collection\";\nimport * as Domain from \"./domain\";\nimport * as Helpers from \"./helpers\";\n\n/**\n * Returns the axis (x or y) of a particular axis component\n * @param {Object} props: the props object.\n * @param {Boolean} horizontal: true for horizontal charts\n * @returns {String} the dimension appropriate for the axis given its props\n */\nexport function getAxis(props) {\n var dependentAxis = props.dependentAxis;\n return dependentAxis ? \"y\" : \"x\";\n}\n/**\n * Returns all axis components that pass a given predicate\n * @param {Array} childComponents: an array of children\n * @param {Function} predicate: a predicate function that will be called with each\n * @returns {Array} all axis components that pass the given predicate or []\n */\n\nexport function findAxisComponents(childComponents, predicate) {\n predicate = predicate || _identity;\n\n var findAxes = function (children) {\n return children.reduce(function (memo, child) {\n if (child.type && child.type.role === \"axis\" && predicate(child)) {\n return memo.concat(child);\n } else if (child.props && child.props.children) {\n return memo.concat(findAxes(React.Children.toArray(child.props.children)));\n }\n\n return memo;\n }, []);\n };\n\n return findAxes(childComponents);\n}\n/**\n * Returns a single axis component of the desired axis type (x or y)\n * @param {Array} childComponents: an array of children\n * @param {String} axis: desired axis either \"x\" or \"y\".\n * @returns {ReactComponent} an axis component of the desired axis or undefined\n */\n\nexport function getAxisComponent(childComponents, axis) {\n var matchesAxis = function (component) {\n var type = component.type.getAxis(component.props);\n return type === axis;\n };\n\n return findAxisComponents(childComponents, matchesAxis)[0];\n}\n/**\n * Returns all axis components of the desired axis type (x or y) along with any\n * parent components excluding VictoryChart\n * @param {Array} childComponents: an optional array of children.\n * @param {String} type: desired axis either \"dependent\" or \"independent\".\n * @returns {ReactComponent} an axis component of the desired type or undefined\n */\n\nexport function getAxisComponentsWithParent(childComponents, type) {\n var matchesType = function (child) {\n return type === \"dependent\" ? child.props.dependentAxis : !child.props.dependentAxis;\n };\n\n var findComponents = function (children) {\n return children.reduce(function (memo, child) {\n if (child.type && child.type.role === \"axis\" && matchesType(child)) {\n return memo.concat(child);\n } else if (child.props && child.props.children) {\n var childAxis = findComponents(React.Children.toArray(child.props.children));\n return childAxis.length > 0 ? memo.concat(child) : memo;\n }\n\n return memo;\n }, []);\n };\n\n return findComponents(childComponents);\n}\nexport function getOrigin(domain) {\n var getSingleOrigin = function (d) {\n var domainMin = Math.min.apply(Math, _toConsumableArray(d));\n var domainMax = Math.max.apply(Math, _toConsumableArray(d));\n return domainMax < 0 ? domainMax : Math.max(0, domainMin);\n };\n\n return {\n x: Collection.containsDates(domain.x) ? new Date(Math.min.apply(Math, _toConsumableArray(domain.x))) : getSingleOrigin(domain.x),\n y: Collection.containsDates(domain.y) ? new Date(Math.min.apply(Math, _toConsumableArray(domain.y))) : getSingleOrigin(domain.y)\n };\n}\nexport function getOriginSign(origin, domain) {\n var getSign = function () {\n return origin <= 0 && Math.max.apply(Math, _toConsumableArray(domain)) <= 0 ? \"negative\" : \"positive\";\n };\n\n return Collection.containsDates(domain) ? \"positive\" : getSign();\n}\n/**\n * @param {Object} props: axis component props\n * @returns {Boolean} true when the axis is vertical\n */\n\nexport function isVertical(props) {\n var orientation = props.orientation || (props.dependentAxis ? \"left\" : \"bottom\");\n var vertical = {\n top: false,\n bottom: false,\n left: true,\n right: true\n };\n return vertical[orientation];\n}\n/**\n * @param {Object} props: axis component props\n * @returns {Boolean} true when tickValues contain strings\n */\n\nexport function stringTicks(props) {\n return props.tickValues !== undefined && Collection.containsStrings(props.tickValues);\n}\n\nfunction getDefaultTickFormat(props) {\n var tickValues = props.tickValues;\n var axis = getAxis(props);\n var stringMap = props.stringMap && props.stringMap[axis];\n var fallbackFormat = tickValues && !Collection.containsDates(tickValues) ? function (x) {\n return x;\n } : undefined;\n\n if (!stringMap) {\n return stringTicks(props) ? function (x, index) {\n return tickValues[index];\n } : fallbackFormat;\n }\n\n var invertedStringMap = stringMap && _invert(stringMap);\n\n var tickValueArray = _orderBy(_values(stringMap), function (n) {\n return n;\n });\n\n var dataNames = tickValueArray.map(function (tick) {\n return invertedStringMap[tick];\n }); // string ticks should have one tick of padding at the beginning\n\n var dataTicks = [\"\"].concat(_toConsumableArray(dataNames), [\"\"]);\n return function (x) {\n return dataTicks[x];\n };\n}\n\nfunction getStringTicks(props) {\n var axis = getAxis(props);\n var stringMap = props.stringMap && props.stringMap[axis];\n var categories = Array.isArray(props.categories) ? props.categories : props.categories && props.categories[axis];\n var ticksFromCategories = categories && Collection.containsOnlyStrings(categories) ? categories.map(function (tick) {\n return stringMap[tick];\n }) : undefined;\n\n var ticksFromStringMap = stringMap && _values(stringMap);\n\n return ticksFromCategories && ticksFromCategories.length !== 0 ? ticksFromCategories : ticksFromStringMap;\n}\n\nfunction getTickArray(props) {\n var tickValues = props.tickValues,\n tickFormat = props.tickFormat;\n var axis = getAxis(props);\n var stringMap = props.stringMap && props.stringMap[axis];\n\n var getTicksFromFormat = function () {\n if (!tickFormat || !Array.isArray(tickFormat)) {\n return undefined;\n }\n\n return Collection.containsStrings(tickFormat) ? tickFormat.map(function (t, i) {\n return i;\n }) : tickFormat;\n };\n\n var ticks = tickValues;\n\n if (stringMap) {\n ticks = getStringTicks(props);\n }\n\n if (tickValues && Collection.containsStrings(tickValues)) {\n ticks = stringMap ? tickValues.map(function (tick) {\n return stringMap[tick];\n }) : _range(1, tickValues.length + 1);\n }\n\n var tickArray = ticks ? _uniq(ticks) : getTicksFromFormat();\n\n var buildTickArray = function (arr) {\n var newTickArray = [];\n var domain = props.domain && props.domain[axis] || props.domain;\n\n if (arr) {\n arr.forEach(function (t, index) {\n if (Array.isArray(domain)) {\n if (t >= Collection.getMinValue(domain) && t <= Collection.getMaxValue(domain)) {\n newTickArray.push({\n value: t,\n index: index\n });\n }\n } else {\n newTickArray.push({\n value: t,\n index: index\n });\n }\n });\n return newTickArray;\n }\n\n return undefined;\n };\n\n return Array.isArray(tickArray) && tickArray.length ? buildTickArray(tickArray) : undefined;\n}\n\nexport function getTickFormat(props, scale) {\n var tickFormat = props.tickFormat;\n var axis = getAxis(props);\n var stringMap = props.stringMap && props.stringMap[axis];\n\n if (!tickFormat) {\n var defaultTickFormat = getDefaultTickFormat(props); // If there is no user-provided tick format, we use d3's tickFormat function\n // by default. This changed the default formatting for some scale types when\n // we upgraded to d3-scale@4..\n\n var scaleTickFormat = scale.tickFormat && _isFunction(scale.tickFormat) ? scale.tickFormat() : function (x) {\n return x;\n };\n return defaultTickFormat || scaleTickFormat;\n } else if (tickFormat && Array.isArray(tickFormat)) {\n var tickArray = getTickArray(props);\n var tickArrayIndices = tickArray === null || tickArray === void 0 ? void 0 : tickArray.map(function (v) {\n return v.index;\n });\n var filteredTickFormat = tickFormat.filter(function (t, index) {\n return tickArrayIndices === null || tickArrayIndices === void 0 ? void 0 : tickArrayIndices.includes(index);\n });\n return function (x, index) {\n return filteredTickFormat[index];\n };\n } else if (tickFormat && _isFunction(tickFormat)) {\n var applyStringTicks = function (tick, index, ticks) {\n var invertedStringMap = _invert(stringMap);\n\n var stringTickArray = ticks.map(function (t) {\n return invertedStringMap[t];\n });\n return props.tickFormat(invertedStringMap[tick], index, stringTickArray);\n };\n\n return stringMap ? applyStringTicks : tickFormat;\n }\n\n return function (x) {\n return x;\n };\n}\n\nfunction downsampleTicks(ticks, tickCount) {\n if (!tickCount || !Array.isArray(ticks) || ticks.length <= tickCount) {\n return ticks;\n }\n\n var k = Math.floor(ticks.length / tickCount);\n return ticks.filter(function (d, i) {\n return i % k === 0;\n });\n}\n\nexport function getTicks(props, scale) {\n var filterZero = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var tickCount = props.tickCount;\n var tickArray = getTickArray(props);\n var tickValues = tickArray ? tickArray.map(function (v) {\n return v.value;\n }) : undefined;\n\n if (tickValues) {\n return downsampleTicks(tickValues, tickCount);\n } else if (scale.ticks && _isFunction(scale.ticks)) {\n // eslint-disable-next-line no-magic-numbers\n var defaultTickCount = tickCount || 5;\n var scaleTicks = scale.ticks(defaultTickCount);\n var scaledTickArray = Array.isArray(scaleTicks) && scaleTicks.length ? scaleTicks : scale.domain();\n var ticks = downsampleTicks(scaledTickArray, tickCount);\n\n if (filterZero) {\n var filteredTicks = _includes(ticks, 0) ? _without(ticks, 0) : ticks;\n return filteredTicks.length ? filteredTicks : ticks;\n }\n\n return ticks;\n }\n\n return scale.domain();\n}\n/**\n * Returns a domain based tickValues\n * @param {Object} props: the props object\n * @param {String} axis: either x or y\n * @returns {Array} returns a domain from tickValues\n */\n// eslint-disable-next-line max-statements\n\nfunction getDomainFromData(props, axis) {\n var polar = props.polar,\n _props$startAngle = props.startAngle,\n startAngle = _props$startAngle === void 0 ? 0 : _props$startAngle,\n _props$endAngle = props.endAngle,\n endAngle = _props$endAngle === void 0 ? 360 : _props$endAngle;\n var tickArray = getTickArray(props);\n var tickValues = tickArray ? tickArray.map(function (v) {\n return v.value;\n }) : undefined;\n\n if (!Array.isArray(tickValues)) {\n return undefined;\n }\n\n var minDomain = Domain.getMinFromProps(props, axis);\n var maxDomain = Domain.getMaxFromProps(props, axis);\n var tickStrings = stringTicks(props);\n var ticks = tickValues.map(function (value) {\n return Number(value);\n });\n var defaultMin = tickStrings ? 1 : Collection.getMinValue(ticks);\n var defaultMax = tickStrings ? tickValues.length : Collection.getMaxValue(ticks);\n var min = minDomain !== undefined ? minDomain : defaultMin;\n var max = maxDomain !== undefined ? maxDomain : defaultMax;\n var initialDomain = Domain.getDomainFromMinMax(min, max);\n var domain = polar && axis === \"x\" && Math.abs(startAngle - endAngle) === 360 ? Domain.getSymmetricDomain(initialDomain, ticks) : initialDomain;\n\n if (isVertical(props) && !polar) {\n domain.reverse();\n }\n\n return domain;\n} // exposed for use by VictoryChart\n\n\nexport function getDomain(props, axis) {\n var inherentAxis = getAxis(props);\n\n if (axis && axis !== inherentAxis) {\n return undefined;\n }\n\n return Domain.createDomainFunction(getDomainFromData)(props, inherentAxis);\n}\nexport function getAxisValue(props, axis) {\n if (!props.axisValue) {\n return undefined;\n }\n\n var scaleAxis = axis === \"x\" ? \"y\" : \"x\";\n var scale = _isObject(props.scale) && _isFunction(props.scale[scaleAxis]) ? props.scale[scaleAxis] : undefined;\n\n if (!scale) {\n return undefined;\n }\n\n var stringMapAxis = axis === \"x\" ? \"y\" : \"x\";\n var stringMap = _isObject(props.stringMap) && props.stringMap[stringMapAxis];\n var axisValue = stringMap && typeof props.axisValue === \"string\" ? stringMap[props.axisValue] : props.axisValue;\n return scale(axisValue);\n}\nexport function modifyProps(props, fallbackProps) {\n if (!_isObject(props.theme)) {\n return Helpers.modifyProps(props, fallbackProps, \"axis\");\n }\n\n var role = \"axis\";\n\n if (props.dependentAxis && props.theme.dependentAxis) {\n role = \"dependentAxis\";\n } else if (!props.dependentAxis && props.theme.independentAxis) {\n role = \"independentAxis\";\n }\n\n if (role === \"axis\") {\n return Helpers.modifyProps(props, fallbackProps, \"axis\");\n }\n\n var axisTheme = _defaults({}, props.theme[role], props.theme.axis);\n\n var theme = _assign({}, props.theme, {\n axis: axisTheme\n });\n\n return Helpers.modifyProps(_assign({}, props, {\n theme: theme\n }), fallbackProps, \"axis\");\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) 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\nfunction isNonEmptyArray(collection) {\n return Array.isArray(collection) && collection.length > 0;\n}\n\nexport function containsStrings(collection) {\n return Array.isArray(collection) && collection.some(function (value) {\n return typeof value === \"string\";\n });\n}\nexport function containsDates(collection) {\n return Array.isArray(collection) && collection.some(function (value) {\n return value instanceof Date;\n });\n}\nexport function containsNumbers(collection) {\n return Array.isArray(collection) && collection.some(function (value) {\n return typeof value === \"number\";\n });\n}\nexport function containsOnlyStrings(collection) {\n return isNonEmptyArray(collection) && collection.every(function (value) {\n return typeof value === \"string\";\n });\n}\nexport function isArrayOfArrays(collection) {\n return isNonEmptyArray(collection) && collection.every(Array.isArray);\n}\nexport function removeUndefined(arr) {\n return arr.filter(function (el) {\n return el !== undefined;\n });\n}\nexport function getMaxValue(arr) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n var array = arr.concat(values);\n return containsDates(array) ? new Date(Math.max.apply(Math, _toConsumableArray(array))) // Dates will be coerced to numbers\n : Math.max.apply(Math, _toConsumableArray(array));\n}\nexport function getMinValue(arr) {\n for (var _len2 = arguments.length, values = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n values[_key2 - 1] = arguments[_key2];\n }\n\n var array = arr.concat(values);\n return containsDates(array) ? new Date(Math.min.apply(Math, _toConsumableArray(array))) // Dates will be coerced to numbers\n : Math.min.apply(Math, _toConsumableArray(array));\n}","import PropTypes from \"prop-types\";\nimport * as CustomPropTypes from \"./prop-types\";\nvar dataProps = {\n // @ts-expect-error TODO: synchronize the type with this PropTypes\n categories: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.shape({\n x: PropTypes.arrayOf(PropTypes.string),\n y: PropTypes.arrayOf(PropTypes.string)\n })]),\n // @ts-expect-error TODO: synchronize the type with this PropTypes\n data: PropTypes.oneOfType([PropTypes.array, PropTypes.object]),\n dataComponent: PropTypes.element,\n disableInlineStyles: PropTypes.bool,\n labelComponent: PropTypes.element,\n labels: PropTypes.oneOfType([PropTypes.func, PropTypes.array]),\n samples: CustomPropTypes.nonNegative,\n sortKey: PropTypes.oneOfType([PropTypes.func, CustomPropTypes.allOfType([CustomPropTypes.integer, CustomPropTypes.nonNegative]), PropTypes.string, PropTypes.arrayOf(PropTypes.string.isRequired)]),\n sortOrder: PropTypes.oneOf([\"ascending\", \"descending\"]),\n style: PropTypes.shape({\n parent: PropTypes.object,\n data: PropTypes.object,\n labels: PropTypes.object\n }),\n x: PropTypes.oneOfType([PropTypes.func, CustomPropTypes.allOfType([CustomPropTypes.integer, CustomPropTypes.nonNegative]), PropTypes.string, PropTypes.arrayOf(PropTypes.string.isRequired)]),\n y: PropTypes.oneOfType([PropTypes.func, CustomPropTypes.allOfType([CustomPropTypes.integer, CustomPropTypes.nonNegative]), PropTypes.string, PropTypes.arrayOf(PropTypes.string.isRequired)]),\n y0: PropTypes.oneOfType([PropTypes.func, CustomPropTypes.allOfType([CustomPropTypes.integer, CustomPropTypes.nonNegative]), PropTypes.string, PropTypes.arrayOf(PropTypes.string.isRequired)])\n};\nvar baseProps = {\n animate: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),\n containerComponent: PropTypes.element,\n domain: PropTypes.oneOfType([CustomPropTypes.domain, PropTypes.shape({\n x: CustomPropTypes.domain,\n y: CustomPropTypes.domain\n })]),\n // @ts-expect-error TODO: synchronize the type with this PropTypes\n maxDomain: PropTypes.oneOfType([PropTypes.number, PropTypes.instanceOf(Date), PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.instanceOf(Date)]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.instanceOf(Date)])\n })]),\n // @ts-expect-error TODO: synchronize the type with this PropTypes\n minDomain: PropTypes.oneOfType([PropTypes.number, PropTypes.instanceOf(Date), PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.instanceOf(Date)]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.instanceOf(Date)])\n })]),\n // @ts-expect-error TODO: synchronize the type with this PropTypes\n domainPadding: PropTypes.oneOfType([PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.number)]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.arrayOf(PropTypes.number)])\n }), PropTypes.number, PropTypes.arrayOf(PropTypes.number)]),\n eventKey: PropTypes.oneOfType([PropTypes.func, CustomPropTypes.allOfType([CustomPropTypes.integer, CustomPropTypes.nonNegative]), PropTypes.string]),\n events: PropTypes.arrayOf(PropTypes.shape({\n target: PropTypes.oneOf([\"data\", \"labels\", \"parent\"]),\n eventKey: PropTypes.oneOfType([PropTypes.array, CustomPropTypes.allOfType([CustomPropTypes.integer, CustomPropTypes.nonNegative]), PropTypes.string]),\n eventHandlers: PropTypes.object\n })),\n // @ts-expect-error TODO: synchronize the type with this PropTypes\n externalEventMutations: PropTypes.arrayOf(PropTypes.shape({\n callback: PropTypes.func,\n childName: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),\n eventKey: PropTypes.oneOfType([PropTypes.array, CustomPropTypes.allOfType([CustomPropTypes.integer, CustomPropTypes.nonNegative]), PropTypes.string]),\n mutation: PropTypes.func,\n target: PropTypes.oneOfType([PropTypes.string, PropTypes.array])\n })),\n groupComponent: PropTypes.element,\n height: CustomPropTypes.nonNegative,\n name: PropTypes.string,\n // @ts-expect-error TODO: synchronize the type with this PropTypes\n origin: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n // @ts-expect-error TODO: synchronize the type with this PropTypes\n padding: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n top: PropTypes.number,\n bottom: PropTypes.number,\n left: PropTypes.number,\n right: PropTypes.number\n })]),\n polar: PropTypes.bool,\n range: PropTypes.oneOfType([CustomPropTypes.domain, PropTypes.shape({\n x: CustomPropTypes.domain.isRequired,\n y: CustomPropTypes.domain.isRequired\n })]),\n scale: PropTypes.oneOfType([CustomPropTypes.scale, PropTypes.shape({\n x: CustomPropTypes.scale.isRequired,\n y: CustomPropTypes.scale.isRequired\n })]),\n // @ts-expect-error TODO: synchronize the type with this PropTypes\n sharedEvents: PropTypes.shape({\n events: PropTypes.array,\n getEventState: PropTypes.func\n }),\n // @ts-expect-error TODO: synchronize the type with this PropTypes\n singleQuadrantDomainPadding: PropTypes.oneOfType([PropTypes.bool, PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.bool]),\n y: PropTypes.oneOfType([PropTypes.bool])\n })]),\n standalone: PropTypes.bool,\n theme: PropTypes.object,\n width: CustomPropTypes.nonNegative\n};\nvar primitiveProps = {\n active: PropTypes.bool,\n ariaLabel: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n className: PropTypes.string,\n clipPath: PropTypes.string,\n data: PropTypes.oneOfType([PropTypes.array, PropTypes.object]),\n desc: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n disableInlineStyles: PropTypes.bool,\n events: PropTypes.object,\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string, PropTypes.func]),\n index: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n // @ts-expect-error TODO: synchronize the type with this PropTypes\n origin: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n polar: PropTypes.bool,\n role: PropTypes.string,\n scale: PropTypes.oneOfType([CustomPropTypes.scale, PropTypes.shape({\n x: CustomPropTypes.scale,\n y: CustomPropTypes.scale\n })]),\n shapeRendering: PropTypes.string,\n style: PropTypes.object,\n tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n transform: PropTypes.string\n};\nexport var CommonProps = {\n dataProps: dataProps,\n baseProps: baseProps,\n primitiveProps: primitiveProps\n};","export var IMMUTABLE_ITERABLE = \"@@__IMMUTABLE_ITERABLE__@@\";\nexport var IMMUTABLE_RECORD = \"@@__IMMUTABLE_RECORD__@@\";\nexport var IMMUTABLE_LIST = \"@@__IMMUTABLE_LIST__@@\";\nexport var IMMUTABLE_MAP = \"@@__IMMUTABLE_MAP__@@\";\nexport function isIterable(x) {\n return !!(x && x[IMMUTABLE_ITERABLE]);\n}\nexport function isRecord(x) {\n return !!(x && x[IMMUTABLE_RECORD]);\n}\nexport function isImmutable(x) {\n return isIterable(x) || isRecord(x);\n}\nexport function isList(x) {\n return !!(x && x[IMMUTABLE_LIST]);\n}\nexport function isMap(x) {\n return !!(x && x[IMMUTABLE_MAP]);\n}\nexport function shallowToJS(x, whitelist) {\n return isIterable(x) ? x.reduce(function (result, curr, key) {\n if (whitelist && whitelist[key]) {\n curr = shallowToJS(curr);\n }\n\n result[key] = curr;\n return result;\n }, isList(x) ? [] : {}) : x;\n}","import _omitBy from \"lodash/omitBy\";\nimport _isUndefined from \"lodash/isUndefined\";\nimport _includes from \"lodash/includes\";\nimport _isEqual from \"lodash/isEqual\";\nimport _isEmpty from \"lodash/isEmpty\";\nimport _orderBy from \"lodash/orderBy\";\nimport _property from \"lodash/property\";\nimport _isPlainObject from \"lodash/isPlainObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _last from \"lodash/last\";\nimport _range from \"lodash/range\";\nimport _uniq from \"lodash/uniq\";\nimport _assign from \"lodash/assign\";\n\nfunction _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\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) 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\n/* eslint-disable no-use-before-define */\nimport React from \"react\";\nimport * as Helpers from \"./helpers\";\nimport * as Collection from \"./collection\";\nimport * as Scale from \"./scale\";\nimport * as Immutable from \"./immutable\"; // Private Functions\n\nfunction parseDatum(datum) {\n var immutableDatumWhitelist = {\n errorX: true,\n errorY: true\n };\n return Immutable.isImmutable(datum) ? Immutable.shallowToJS(datum, immutableDatumWhitelist) : datum;\n}\n\nfunction getLength(data) {\n return Immutable.isIterable(data) ? data.size : data.length;\n} // Returns generated data for a given axis based on domain and sample from props\n\n\nfunction generateDataArray(props, axis) {\n var propsDomain = _isPlainObject(props.domain) ? props.domain[axis] : props.domain;\n var domain = propsDomain || Scale.getBaseScale(props, axis).domain();\n var samples = props.samples || 1;\n var domainMax = Math.max.apply(Math, _toConsumableArray(domain));\n var domainMin = Math.min.apply(Math, _toConsumableArray(domain));\n var step = (domainMax - domainMin) / samples;\n\n var values = _range(domainMin, domainMax, step);\n\n return _last(values) === domainMax ? values : values.concat(domainMax);\n} // Returns sorted data. If no sort keys are provided, data is returned unaltered.\n\n\nfunction sortData(dataset, sortKey) {\n var sortOrder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"ascending\";\n\n if (!sortKey) {\n return dataset;\n } // Ensures previous VictoryLine api for sortKey prop stays consistent\n\n\n if (sortKey === \"x\" || sortKey === \"y\") {\n sortKey = \"_\".concat(sortKey);\n }\n\n var order = sortOrder === \"ascending\" ? \"asc\" : \"desc\";\n return _orderBy(dataset, sortKey, order);\n} // This method will remove data points that break certain scales. (log scale only)\n\n\nfunction cleanData(dataset, props) {\n var smallNumber = 1 / Number.MAX_SAFE_INTEGER;\n var scaleType = {\n x: Scale.getScaleType(props, \"x\"),\n y: Scale.getScaleType(props, \"y\")\n };\n\n if (scaleType.x !== \"log\" && scaleType.y !== \"log\") {\n return dataset;\n }\n\n var rules = function (datum, axis) {\n return scaleType[axis] === \"log\" ? datum[\"_\".concat(axis)] !== 0 : true;\n };\n\n var sanitize = function (datum) {\n var _x = rules(datum, \"x\") ? datum._x : smallNumber;\n\n var _y = rules(datum, \"y\") ? datum._y : smallNumber;\n\n var _y0 = rules(datum, \"y0\") ? datum._y0 : smallNumber;\n\n return _assign({}, datum, {\n _x: _x,\n _y: _y,\n _y0: _y0\n });\n };\n\n return dataset.map(function (datum) {\n if (rules(datum, \"x\") && rules(datum, \"y\") && rules(datum, \"y0\")) {\n return datum;\n }\n\n return sanitize(datum);\n });\n} // Returns a data accessor given an eventKey prop\n\n\nfunction getEventKey(key) {\n // creates a data accessor function\n // given a property key, path, array index, or null for identity.\n if (_isFunction(key)) {\n return key;\n } else if (key === null || key === undefined) {\n return function () {\n return undefined;\n };\n } // otherwise, assume it is an array index, property key or path (_.property handles all three)\n\n\n return _property(key);\n} // Returns data with an eventKey prop added to each datum\n\n\nfunction addEventKeys(props, data) {\n var hasEventKeyAccessor = !!props.eventKey;\n var eventKeyAccessor = getEventKey(props.eventKey);\n return data.map(function (datum, index) {\n if (datum.eventKey !== undefined) {\n return datum;\n } else if (hasEventKeyAccessor) {\n var eventKey = eventKeyAccessor(datum, index);\n return eventKey !== undefined ? _assign({\n eventKey: eventKey\n }, datum) : datum;\n }\n\n return datum;\n });\n} // Exported Functions\n// This method will remove data points that fall outside of the desired domain (non-continuous charts only)\n\n\nexport function formatDataFromDomain(dataset, domain, defaultBaseline) {\n var exists = function (val) {\n return val !== undefined;\n };\n\n var minDomainX = Collection.getMinValue(domain.x);\n var maxDomainX = Collection.getMaxValue(domain.x);\n var minDomainY = Collection.getMinValue(domain.y);\n var maxDomainY = Collection.getMaxValue(domain.y);\n\n var underMin = function (min) {\n return function (val) {\n return exists(val) && val < min;\n };\n };\n\n var overMax = function (max) {\n return function (val) {\n return exists(val) && val > max;\n };\n };\n\n var isUnderMinX = underMin(minDomainX);\n var isUnderMinY = underMin(minDomainY);\n var isOverMaxX = overMax(maxDomainX);\n var isOverMaxY = overMax(maxDomainY); // eslint-disable-next-line complexity\n\n return dataset.map(function (datum) {\n var _x = datum._x,\n _y = datum._y,\n _y0 = datum._y0,\n _y1 = datum._y1; // single x point less than min domain\n\n if (isUnderMinX(_x) || isOverMaxX(_x)) _x = null;\n var baseline = exists(_y0) ? _y0 : defaultBaseline;\n var value = exists(_y1) ? _y1 : _y;\n if (!exists(value)) return datum; // value only and less than min domain or greater than max domain\n\n if (!exists(baseline) && (isUnderMinY(value) || isOverMaxY(value))) _y = null; // baseline and value are both less than min domain or both greater than max domain\n\n if (isUnderMinY(baseline) && isUnderMinY(value) || isOverMaxY(baseline) && isOverMaxY(value)) _y = _y0 = _y1 = null; // baseline and value with only baseline below min, set baseline to minDomainY\n\n if (isUnderMinY(baseline) && !isUnderMinY(value)) _y0 = minDomainY; // baseline and value with only baseline above max, set baseline to maxDomainY\n\n if (isOverMaxY(baseline) && !isOverMaxY(value)) _y0 = maxDomainY;\n return _assign({}, datum, _omitBy({\n _x: _x,\n _y: _y,\n _y0: _y0,\n _y1: _y1\n }, _isUndefined));\n });\n}\n/**\n * Returns an object mapping string data to numeric data\n * @param {Object} props: the props object\n * @param {String} axis: the current axis\n * @returns {Object} an object mapping string data to numeric data\n */\n\nexport function createStringMap(props, axis) {\n var stringsFromAxes = getStringsFromAxes(props, axis);\n var stringsFromCategories = getStringsFromCategories(props, axis);\n var stringsFromData = getStringsFromData(props, axis);\n\n var allStrings = _uniq([].concat(_toConsumableArray(stringsFromAxes), _toConsumableArray(stringsFromCategories), _toConsumableArray(stringsFromData)));\n\n return allStrings.length === 0 ? null : allStrings.reduce(function (memo, string, index) {\n memo[string] = index + 1;\n return memo;\n }, {});\n}\n/**\n * Reduces the size of a data array, such that it is <= maxPoints.\n * @param {Array} data: an array of data; must be sorted\n * @param {Number} maxPoints: maximum number of data points to return\n * @param {Number} startingIndex: the index of the data[0] *in the entire dataset*; this function\n assumes `data` param is a subset of larger dataset that has been zoommed\n * @returns {Array} an array of data, a subset of data param\n */\n\nexport function downsample(data, maxPoints) {\n var startingIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n // ensures that the downampling of data while zooming looks good.\n var dataLength = getLength(data);\n\n if (dataLength > maxPoints) {\n // limit k to powers of 2, e.g. 64, 128, 256\n // so that the same points will be chosen reliably, reducing flicker on zoom\n var k = Math.pow(2, Math.ceil(Math.log2(dataLength / maxPoints)));\n return data.filter( // ensure modulo is always calculated from same reference: i + startingIndex\n function (d, i) {\n return (i + startingIndex) % k === 0;\n });\n }\n\n return data;\n}\n/**\n * Returns formatted data. Data accessors are applied, and string values are replaced.\n * @param {Array} dataset: the original domain\n * @param {Object} props: the props object\n * @param {Array} expectedKeys: an array of expected data keys\n * @returns {Array} the formatted data\n */\n\nexport function formatData(dataset, props, expectedKeys) {\n var isArrayOrIterable = Array.isArray(dataset) || Immutable.isIterable(dataset);\n\n if (!isArrayOrIterable || getLength(dataset) < 1) {\n return [];\n }\n\n var defaultKeys = [\"x\", \"y\", \"y0\"];\n expectedKeys = Array.isArray(expectedKeys) ? expectedKeys : defaultKeys;\n\n var createAccessor = function (name) {\n return Helpers.createAccessor(props[name] !== undefined ? props[name] : name);\n };\n\n var accessor = expectedKeys.reduce(function (memo, type) {\n memo[type] = createAccessor(type);\n return memo;\n }, {});\n var preformattedData = _isEqual(expectedKeys, defaultKeys) && props.x === \"_x\" && props.y === \"_y\" && props.y0 === \"_y0\";\n var stringMap;\n\n if (preformattedData === false) {\n // stringMap is not required if the data is preformatted\n stringMap = {\n x: expectedKeys.indexOf(\"x\") !== -1 ? createStringMap(props, \"x\") : undefined,\n y: expectedKeys.indexOf(\"y\") !== -1 ? createStringMap(props, \"y\") : undefined,\n y0: expectedKeys.indexOf(\"y0\") !== -1 ? createStringMap(props, \"y\") : undefined\n };\n }\n\n var data = preformattedData ? dataset : dataset.reduce(function (dataArr, datum, index) {\n // eslint-disable-line complexity\n datum = parseDatum(datum);\n var fallbackValues = {\n x: index,\n y: datum\n };\n var processedValues = expectedKeys.reduce(function (memo, type) {\n var processedValue = accessor[type](datum);\n var value = processedValue !== undefined ? processedValue : fallbackValues[type];\n\n if (value !== undefined) {\n if (typeof value === \"string\" && stringMap[type]) {\n memo[\"\".concat(type, \"Name\")] = value;\n memo[\"_\".concat(type)] = stringMap[type][value];\n } else {\n memo[\"_\".concat(type)] = value;\n }\n }\n\n return memo;\n }, {});\n\n var formattedDatum = _assign({}, processedValues, datum);\n\n if (!_isEmpty(formattedDatum)) {\n dataArr.push(formattedDatum);\n }\n\n return dataArr;\n }, []);\n var sortedData = sortData(data, props.sortKey, props.sortOrder);\n var cleanedData = cleanData(sortedData, props);\n return addEventKeys(props, cleanedData);\n}\n/**\n * Returns generated x and y data based on domain and sample from props\n * @param {Object} props: the props object\n * @returns {Array} an array of data\n */\n\nexport function generateData(props) {\n var xValues = generateDataArray(props, \"x\");\n var yValues = generateDataArray(props, \"y\");\n var values = xValues.map(function (x, i) {\n return {\n x: x,\n y: yValues[i]\n };\n });\n return values;\n}\n/**\n * Returns an array of categories for a given axis\n * @param {Object} props: the props object\n * @param {String} axis: the current axis\n * @returns {Array} an array of categories\n */\n\nexport function getCategories(props, axis) {\n return props.categories && !Array.isArray(props.categories) ? props.categories[axis] : props.categories;\n}\n/**\n * Returns an array of formatted data\n * @param {Object} props: the props object\n * @returns {Array} an array of data\n */\n\nexport function getData(props) {\n return props.data ? formatData(props.data, props) : formatData(generateData(props), props);\n}\n/**\n * Returns an array of strings from axis tickValues for a given axis\n * @param {Object} props: the props object\n * @param {String} axis: the current axis\n * @returns {Array} an array of strings\n */\n\nexport function getStringsFromAxes(props, axis) {\n var tickValues = props.tickValues,\n tickFormat = props.tickFormat;\n var tickValueArray;\n\n if (!tickValues || !Array.isArray(tickValues) && !tickValues[axis]) {\n tickValueArray = tickFormat && Array.isArray(tickFormat) ? tickFormat : [];\n } else {\n tickValueArray = tickValues[axis] || tickValues;\n }\n\n return tickValueArray.filter(function (val) {\n return typeof val === \"string\";\n });\n}\n/**\n * Returns an array of strings from categories for a given axis\n * @param {Object} props: the props object\n * @param {String} axis: the current axis\n * @returns {Array} an array of strings\n */\n\nexport function getStringsFromCategories(props, axis) {\n if (!props.categories) {\n return [];\n }\n\n var categories = getCategories(props, axis);\n var categoryStrings = categories && categories.filter(function (val) {\n return typeof val === \"string\";\n });\n return categoryStrings ? Collection.removeUndefined(categoryStrings) : [];\n}\n/**\n * Returns an array of strings from data\n * @param {Object} props: the props object\n * @param {String} axis: the current axis\n * @returns {Array} an array of strings\n */\n\nexport function getStringsFromData(props, axis) {\n var isArrayOrIterable = Array.isArray(props.data) || Immutable.isIterable(props.data);\n\n if (!isArrayOrIterable) {\n return [];\n }\n\n var key = props[axis] === undefined ? axis : props[axis];\n var accessor = Helpers.createAccessor(key); // support immutable data\n\n var data = props.data.reduce(function (memo, d) {\n memo.push(parseDatum(d));\n return memo;\n }, []);\n var sortedData = sortData(data, props.sortKey, props.sortOrder);\n var dataStrings = sortedData.reduce(function (dataArr, datum) {\n datum = parseDatum(datum);\n dataArr.push(accessor(datum));\n return dataArr;\n }, []).filter(function (datum) {\n return typeof datum === \"string\";\n }); // return a unique set of strings\n\n return dataStrings.reduce(function (prev, curr) {\n if (curr !== undefined && curr !== null && prev.indexOf(curr) === -1) {\n prev.push(curr);\n }\n\n return prev;\n }, []);\n}\n/**\n * Checks whether a given component can be used to calculate data\n * @param {Component} component: a React component instance\n * @returns {Boolean} Returns true if the given component has a role included in the whitelist\n */\n\nexport function isDataComponent(component) {\n var getRole = function (child) {\n return child && child.type ? child.type.role : \"\";\n };\n\n var role = getRole(component);\n\n if (role === \"portal\") {\n var children = React.Children.toArray(component.props.children);\n role = children.length ? getRole(children[0]) : \"\";\n }\n\n var whitelist = [\"area\", \"bar\", \"boxplot\", \"candlestick\", \"errorbar\", \"group\", \"histogram\", \"line\", \"pie\", \"scatter\", \"stack\", \"voronoi\"];\n return _includes(whitelist, role);\n}","export function continuousTransitions() {\n return {\n onLoad: {\n duration: 2000\n },\n onExit: {\n duration: 500\n },\n onEnter: {\n duration: 500\n }\n };\n}\nexport function continuousPolarTransitions() {\n return {\n onLoad: {\n duration: 2000,\n before: function () {\n return {\n _y: 0,\n _y1: 0,\n _y0: 0\n };\n },\n after: function (datum) {\n return {\n _y: datum._y,\n _y1: datum._y1,\n _y0: datum._y0\n };\n }\n },\n onExit: {\n duration: 500,\n before: function (datum, index, data) {\n var adjacent = function (attr) {\n var adj = index === 0 ? data[index + 1] : data[index - 1];\n return adj[attr];\n };\n\n return {\n _x: adjacent(\"_x\"),\n _y: adjacent(\"_y\"),\n _y0: adjacent(\"_y0\")\n };\n }\n },\n onEnter: {\n duration: 500,\n before: function (datum, index, data) {\n var adjacent = function (attr) {\n var adj = index === 0 ? data[index + 1] : data[index - 1];\n return adj[attr];\n };\n\n return {\n _x: adjacent(\"_x\"),\n _y: adjacent(\"_y\"),\n _y0: adjacent(\"_y0\")\n };\n },\n after: function (datum) {\n return {\n _x: datum._x,\n _y: datum._y,\n _y1: datum._y1,\n _y0: datum._y0\n };\n }\n }\n };\n}\nexport function discreteTransitions() {\n return {\n onLoad: {\n duration: 2000,\n before: function () {\n return {\n opacity: 0\n };\n },\n after: function (datum) {\n return datum;\n }\n },\n onExit: {\n duration: 600,\n before: function () {\n return {\n opacity: 0\n };\n }\n },\n onEnter: {\n duration: 600,\n before: function () {\n return {\n opacity: 0\n };\n },\n after: function (datum) {\n return datum;\n }\n }\n };\n}","import _isDate from \"lodash/isDate\";\nimport _includes from \"lodash/includes\";\nimport _isFunction from \"lodash/isFunction\";\nimport _sortedUniq from \"lodash/sortedUniq\";\nimport _isPlainObject from \"lodash/isPlainObject\";\nimport _flatten from \"lodash/flatten\";\n\nfunction _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\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) 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\n/* eslint-disable no-use-before-define */\nimport React from \"react\";\nimport * as Data from \"./data\";\nimport * as Scale from \"./scale\";\nimport * as Helpers from \"./helpers\";\nimport * as Collection from \"./collection\"; // Private Methods\n\nfunction cleanDomain(domain, props, axis) {\n var scaleType = Scale.getScaleType(props, axis);\n\n if (scaleType !== \"log\") {\n return domain;\n }\n\n var rules = function (dom) {\n var almostZero = dom[0] < 0 || dom[1] < 0 ? -1 / Number.MAX_SAFE_INTEGER : 1 / Number.MAX_SAFE_INTEGER;\n var domainOne = dom[0] === 0 ? almostZero : dom[0];\n var domainTwo = dom[1] === 0 ? almostZero : dom[1];\n return [domainOne, domainTwo];\n };\n\n return rules(domain);\n}\n\nfunction getDomainPadding(props, axis) {\n var formatPadding = function (padding) {\n return Array.isArray(padding) ? {\n left: padding[0],\n right: padding[1]\n } : {\n left: padding,\n right: padding\n };\n };\n\n return _isPlainObject(props.domainPadding) ? formatPadding(props.domainPadding[axis]) : formatPadding(props.domainPadding);\n}\n\nfunction getFlatData(dataset, axis) {\n var axisKey = \"_\".concat(axis);\n return _flatten(dataset).map(function (datum) {\n return datum[axisKey] && datum[axisKey][1] !== undefined ? datum[axisKey][1] : datum[axisKey];\n });\n}\n\nfunction getExtremeFromData(dataset, axis) {\n var type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"min\";\n\n var getExtreme = function (arr) {\n return type === \"max\" ? Math.max.apply(Math, _toConsumableArray(arr)) : Math.min.apply(Math, _toConsumableArray(arr));\n };\n\n var initialValue = type === \"max\" ? -Infinity : Infinity;\n var containsDate = false;\n\n var result = _flatten(dataset).reduce(function (memo, datum) {\n var current0 = datum[\"_\".concat(axis, \"0\")] !== undefined ? datum[\"_\".concat(axis, \"0\")] : datum[\"_\".concat(axis)];\n var current1 = datum[\"_\".concat(axis, \"1\")] !== undefined ? datum[\"_\".concat(axis, \"1\")] : datum[\"_\".concat(axis)];\n var current = getExtreme([current0, current1]);\n containsDate = containsDate || current0 instanceof Date || current1 instanceof Date;\n return getExtreme([memo, current]);\n }, initialValue);\n\n return containsDate ? new Date(result) : result;\n} // eslint-disable-next-line max-statements\n\n\nfunction padDomain(domain, props, axis) {\n if (!props.domainPadding) {\n return domain;\n }\n\n var minDomain = getMinFromProps(props, axis);\n var maxDomain = getMaxFromProps(props, axis);\n var padding = getDomainPadding(props, axis);\n\n if (!padding.left && !padding.right) {\n return domain;\n }\n\n var min = Collection.getMinValue(domain);\n var max = Collection.getMaxValue(domain);\n var currentAxis = Helpers.getCurrentAxis(axis, props.horizontal);\n var range = Helpers.getRange(props, currentAxis);\n var rangeExtent = Math.abs(range[0] - range[1]);\n var paddedRangeExtent = Math.max(rangeExtent - padding.left - padding.right, 1);\n var paddedDomainExtent = Math.abs(max.valueOf() - min.valueOf()) / paddedRangeExtent * rangeExtent;\n var simplePadding = {\n left: paddedDomainExtent * padding.left / rangeExtent,\n right: paddedDomainExtent * padding.right / rangeExtent\n };\n var paddedDomain = {\n min: min.valueOf() - simplePadding.left,\n max: max.valueOf() + simplePadding.right\n };\n var singleQuadrantDomainPadding = _isPlainObject(props.singleQuadrantDomainPadding) ? props.singleQuadrantDomainPadding[axis] : props.singleQuadrantDomainPadding;\n var addsQuadrants = min >= 0 && paddedDomain.min <= 0 || max <= 0 && paddedDomain.max >= 0;\n\n var adjust = function (val, type) {\n var coerce = type === \"min\" && min >= 0 && val <= 0 || type === \"max\" && max <= 0 && val >= 0;\n return coerce ? 0 : val;\n };\n\n if (addsQuadrants && singleQuadrantDomainPadding !== false) {\n // Naive initial padding calculation\n var initialPadding = {\n // @ts-expect-error `max/min` might be dates\n left: Math.abs(max - min) * padding.left / rangeExtent,\n // @ts-expect-error `max/min` might be dates\n right: Math.abs(max - min) * padding.right / rangeExtent\n }; // Adjust the domain by the initial padding\n\n var adjustedDomain = {\n min: adjust(min.valueOf() - initialPadding.left, \"min\"),\n max: adjust(max.valueOf() + initialPadding.right, \"max\")\n }; // re-calculate padding, taking the adjusted domain into account\n\n var finalPadding = {\n left: Math.abs(adjustedDomain.max - adjustedDomain.min) * padding.left / rangeExtent,\n right: Math.abs(adjustedDomain.max - adjustedDomain.min) * padding.right / rangeExtent\n }; // Adjust the domain by the final padding\n\n paddedDomain = {\n min: adjust(min.valueOf() - finalPadding.left, \"min\"),\n max: adjust(max.valueOf() + finalPadding.right, \"max\")\n };\n } // default to minDomain / maxDomain if they exist\n\n\n var finalDomain = {\n min: minDomain !== undefined ? minDomain : paddedDomain.min,\n max: maxDomain !== undefined ? maxDomain : paddedDomain.max\n };\n return min instanceof Date || max instanceof Date ? getDomainFromMinMax(new Date(finalDomain.min), new Date(finalDomain.max)) : getDomainFromMinMax(finalDomain.min, finalDomain.max);\n} // Public Methods\n\n/**\n * Returns a getDomain function\n * @param {Function} getDomainFromDataFunction: a function that takes props and axis and\n * returns a domain based on data\n * @param {Function} formatDomainFunction: a function that takes domain, props, and axis and\n * returns a formatted domain\n * @returns {Function} a function that takes props and axis and returns a formatted domain\n */\n\n\nexport function createDomainFunction(getDomainFromDataFunction, formatDomainFunction) {\n getDomainFromDataFunction = _isFunction(getDomainFromDataFunction) ? getDomainFromDataFunction : getDomainFromData;\n formatDomainFunction = _isFunction(formatDomainFunction) ? formatDomainFunction : formatDomain;\n return function (props, axis) {\n var propsDomain = getDomainFromProps(props, axis);\n\n if (propsDomain) {\n return formatDomainFunction(propsDomain, props, axis);\n }\n\n var categories = Data.getCategories(props, axis);\n var domain = categories ? getDomainFromCategories(props, axis, categories) : getDomainFromDataFunction(props, axis);\n return domain ? formatDomainFunction(domain, props, axis) : undefined;\n };\n}\n/**\n * Returns a formatted domain.\n * @param {Array} domain: a domain in the form of a two element array\n * @param {Object} props: the props object\n * @param {String} axis: the current axis\n * @returns {Array} a domain in the form of a two element array\n */\n\nexport function formatDomain(domain, props, axis) {\n return cleanDomain(padDomain(domain, props, axis), props, axis);\n}\n/**\n * Returns a domain for a given axis based on props, category, or data\n * @param {Object} props: the props object\n * @param {String} axis: the current axis\n * @returns {Array} the domain for the given axis\n */\n\nexport function getDomain(props, axis) {\n return createDomainFunction()(props, axis);\n}\n/**\n * Returns a domain based on categories if they exist\n * @param {Object} props: the props object\n * @param {String} axis: the current axis\n * @param {Array} categories: an array of categories corresponding to a given axis\n * @returns {Array|undefined} returns a domain from categories or undefined\n */\n\nexport function getDomainFromCategories(props, axis, categories) {\n categories = categories || Data.getCategories(props, axis);\n var polar = props.polar,\n _props$startAngle = props.startAngle,\n startAngle = _props$startAngle === void 0 ? 0 : _props$startAngle,\n _props$endAngle = props.endAngle,\n endAngle = _props$endAngle === void 0 ? 360 : _props$endAngle;\n\n if (!categories) {\n return undefined;\n }\n\n var minDomain = getMinFromProps(props, axis);\n var maxDomain = getMaxFromProps(props, axis);\n var stringArray = Collection.containsStrings(categories) ? Data.getStringsFromCategories(props, axis) : [];\n var stringMap = stringArray.length === 0 ? null : stringArray.reduce(function (memo, string, index) {\n memo[string] = index + 1;\n return memo;\n }, {});\n var categoryValues = stringMap ? categories.map(function (value) {\n return stringMap[value];\n }) : categories;\n var min = minDomain !== undefined ? minDomain : Collection.getMinValue(categoryValues);\n var max = maxDomain !== undefined ? maxDomain : Collection.getMaxValue(categoryValues);\n var categoryDomain = getDomainFromMinMax(min, max);\n return polar && axis === \"x\" && Math.abs(startAngle - endAngle) === 360 ? getSymmetricDomain(categoryDomain, categoryValues) : categoryDomain;\n}\n/**\n * Returns a domain from a dataset for a given axis\n * @param {Object} props: the props object\n * @param {String} axis: the current axis\n * @param {Array} dataset: an array of data\n * @returns {Array} the domain based on data\n */\n\nexport function getDomainFromData(props, axis, dataset) {\n dataset = dataset || Data.getData(props);\n var polar = props.polar,\n _props$startAngle2 = props.startAngle,\n startAngle = _props$startAngle2 === void 0 ? 0 : _props$startAngle2,\n _props$endAngle2 = props.endAngle,\n endAngle = _props$endAngle2 === void 0 ? 360 : _props$endAngle2;\n var minDomain = getMinFromProps(props, axis);\n var maxDomain = getMaxFromProps(props, axis);\n\n if (dataset.length < 1) {\n return minDomain !== undefined && maxDomain !== undefined ? getDomainFromMinMax(minDomain, maxDomain) : undefined;\n }\n\n var min = minDomain !== undefined ? minDomain : getExtremeFromData(dataset, axis, \"min\");\n var max = maxDomain !== undefined ? maxDomain : getExtremeFromData(dataset, axis, \"max\");\n var domain = getDomainFromMinMax(min, max);\n return polar && axis === \"x\" && Math.abs(startAngle - endAngle) === 360 ? getSymmetricDomain(domain, getFlatData(dataset, axis)) : domain;\n}\n/**\n * Returns a domain in the form of a two element array given a min and max value.\n * @param {Number|Date} min: the props object\n * @param {Number|Date} max: the current axis\n * @returns {Array} the minDomain based on props\n */\n\nexport function getDomainFromMinMax(min, max) {\n var getSinglePointDomain = function (val) {\n // d3-scale does not properly resolve very small differences.\n var verySmallNumber = // eslint-disable-next-line no-magic-numbers\n val === 0 ? 2 * Math.pow(10, -10) : Math.pow(10, -10);\n var verySmallDate = 1;\n var minVal = val instanceof Date ? new Date(Number(val) - verySmallDate) : Number(val) - verySmallNumber;\n var maxVal = val instanceof Date ? new Date(Number(val) + verySmallDate) : Number(val) + verySmallNumber;\n return val === 0 ? [0, maxVal] : [minVal, maxVal];\n };\n\n return Number(min) === Number(max) ? getSinglePointDomain(max) : [min, max];\n}\n/**\n * Returns a the domain for a given axis if domain is given in props\n * @param {Object} props: the props object\n * @param {String} axis: the current axis\n * @returns {Array|undefined} the domain based on props\n */\n\nexport function getDomainFromProps(props, axis) {\n var minDomain = getMinFromProps(props, axis);\n var maxDomain = getMaxFromProps(props, axis);\n\n if (_isPlainObject(props.domain) && props.domain[axis]) {\n return props.domain[axis];\n } else if (Array.isArray(props.domain)) {\n return props.domain;\n } else if (minDomain !== undefined && maxDomain !== undefined) {\n return getDomainFromMinMax(minDomain, maxDomain);\n }\n\n return undefined;\n}\n/**\n * Returns a domain for a given axis. This method forces the domain to include\n * zero unless the domain is explicitly specified in props.\n * @param {Object} props: the props object\n * @param {String} axis: the current axis\n * @returns {Array} the domain for the given axis\n */\n\nexport function getDomainWithZero(props, axis) {\n var propsDomain = getDomainFromProps(props, axis);\n\n if (propsDomain) {\n return propsDomain;\n }\n\n var dataset = Data.getData(props);\n var y0Min = dataset.reduce(function (min, datum) {\n return datum._y0 < min ? datum._y0 : min;\n }, Infinity);\n\n var ensureZero = function (domain) {\n if (axis === \"x\") {\n return domain;\n }\n\n var defaultMin = y0Min !== Infinity ? y0Min : 0;\n var maxDomainProp = getMaxFromProps(props, axis);\n var minDomainProp = getMinFromProps(props, axis);\n var max = maxDomainProp !== undefined ? maxDomainProp : Collection.getMaxValue(domain, defaultMin);\n var min = minDomainProp !== undefined ? minDomainProp : Collection.getMinValue(domain, defaultMin);\n return getDomainFromMinMax(min, max);\n };\n\n var getDomainFunction = function () {\n return getDomainFromData(props, axis, dataset);\n };\n\n var formatDomainFunction = function (domain) {\n return formatDomain(ensureZero(domain), props, axis);\n };\n\n return createDomainFunction(getDomainFunction, formatDomainFunction)(props, axis);\n}\n/**\n * Returns the maxDomain from props if it exists\n * @param {Object} props: the props object\n * @param {String} axis: the current axis\n * @returns {Number|Date|undefined} the maxDomain based on props\n */\n\nexport function getMaxFromProps(props, axis) {\n if (_isPlainObject(props.maxDomain) && props.maxDomain[axis] !== undefined) {\n return props.maxDomain[axis];\n }\n\n return typeof props.maxDomain === \"number\" || _isDate(props.maxDomain) ? props.maxDomain : undefined;\n}\n/**\n * Returns the minDomain from props if it exists\n * @param {Object} props: the props object\n * @param {String} axis: the current axis\n * @returns {Number|Date|undefined} the minDomain based on props\n */\n\nexport function getMinFromProps(props, axis) {\n if (_isPlainObject(props.minDomain) && props.minDomain[axis] !== undefined) {\n return props.minDomain[axis];\n }\n\n return typeof props.minDomain === \"number\" || _isDate(props.minDomain) ? props.minDomain : undefined;\n}\n/**\n * Returns a symmetrically padded domain for polar charts\n * @param {Array} domain: the original domain\n * @param {Array} values: a flat array of values corresponding to either tickValues, or data values\n * for a given dimension i.e. only x values.\n * @returns {Array} the symmetric domain\n */\n\nexport function getSymmetricDomain(domain, values) {\n var processedData = _sortedUniq(values.sort(function (a, b) {\n return a - b;\n }));\n\n var step = processedData[1] - processedData[0];\n return [domain[0], domain[1] + step];\n}\n/**\n * Checks whether a given component can be used to calculate domain\n * @param {Component} component: a React component instance\n * @returns {Boolean} Returns true if the given component has a role included in the whitelist\n */\n\nexport function isDomainComponent(component) {\n var getRole = function (child) {\n return child && child.type ? child.type.role : \"\";\n };\n\n var role = getRole(component);\n\n if (role === \"portal\") {\n var children = React.Children.toArray(component.props.children);\n role = children.length ? getRole(children[0]) : \"\";\n }\n\n var whitelist = [\"area\", \"axis\", \"bar\", \"boxplot\", \"candlestick\", \"errorbar\", \"group\", \"histogram\", \"line\", \"pie\", \"scatter\", \"stack\", \"voronoi\"];\n return _includes(whitelist, role);\n}","import _keys from \"lodash/keys\";\nimport _includes from \"lodash/includes\";\nimport _uniq from \"lodash/uniq\";\nimport _omitBy from \"lodash/omitBy\";\nimport _pickBy from \"lodash/pickBy\";\nimport _without from \"lodash/without\";\nimport _isFunction from \"lodash/isFunction\";\nimport _isEmpty from \"lodash/isEmpty\";\nimport _assign from \"lodash/assign\";\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) || _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\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) 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 GLOBAL_EVENT_REGEX = /^onGlobal(.*)$/;\n\n/* Returns all own and shared events that should be attached to a single target element,\n * i.e. an individual bar specified by target: \"data\", eventKey: [index].\n * Returned events are scoped to the appropriate state. Either that of the component itself\n * (i.e. VictoryBar) in the case of own events, or that of the parent component\n * (i.e. VictoryChart) in the case of shared events\n */\n// eslint-disable-next-line max-params\nexport function getEvents(props, target, eventKey, // eslint-disable-next-line no-shadow\ngetScopedEvents) {\n var _this = this;\n\n // Returns all events that apply to a particular target element\n var getEventsByTarget = function (events) {\n var getSelectedEvents = function () {\n var targetEvents = events.reduce(function (memo, event) {\n if (event.target !== undefined) {\n var matchesTarget = Array.isArray(event.target) ? _includes(event.target, target) : \"\".concat(event.target) === \"\".concat(target);\n return matchesTarget ? memo.concat(event) : memo;\n }\n\n return memo.concat(event);\n }, []);\n\n if (eventKey !== undefined && target !== \"parent\") {\n return targetEvents.filter(function (obj) {\n var targetKeys = obj.eventKey;\n\n var useKey = function (key) {\n return key ? \"\".concat(key) === \"\".concat(eventKey) : true;\n };\n\n return Array.isArray(targetKeys) ? targetKeys.some(function (k) {\n return useKey(k);\n }) : useKey(targetKeys);\n });\n }\n\n return targetEvents;\n };\n\n var selectedEvents = getSelectedEvents();\n return Array.isArray(selectedEvents) && selectedEvents.reduce(function (memo, event) {\n return event ? _assign(memo, event.eventHandlers) : memo;\n }, {});\n };\n /* Returns all events from props and defaultEvents from components. Events handlers\n * specified in props will override handlers for the same event if they are also\n * specified in defaultEvents of a sub-component\n */\n\n\n var getAllEvents = function () {\n // Mandatory usage: `getEvents.bind(this)`\n\n /* eslint-disable no-invalid-this */\n if (Array.isArray(_this.componentEvents)) {\n var _this$componentEvents;\n\n return Array.isArray(props.events) ? (_this$componentEvents = _this.componentEvents).concat.apply(_this$componentEvents, _toConsumableArray(props.events)) : _this.componentEvents;\n }\n /* eslint-enable no-invalid-this */\n\n\n return props.events;\n };\n\n var allEvents = getAllEvents();\n var ownEvents = allEvents && _isFunction(getScopedEvents) ? getScopedEvents(getEventsByTarget(allEvents), target) : undefined;\n\n if (!props.sharedEvents) {\n return ownEvents;\n }\n\n var getSharedEvents = props.sharedEvents.getEvents;\n var sharedEvents = props.sharedEvents.events && getSharedEvents(getEventsByTarget(props.sharedEvents.events), target);\n return _assign({}, sharedEvents, ownEvents);\n}\n/* Returns a modified events object where each event handler is replaced by a new\n * function that calls the original handler and then calls setState with the return\n * of the original event handler assigned to state property that maps to the target\n * element.\n */\n// eslint-disable-next-line max-params\n\nexport function getScopedEvents(events, namespace, childType, baseProps) {\n var _this2 = this;\n\n if (_isEmpty(events)) {\n return {};\n } // Mandatory usage: `getScopedEvents.bind(this)`\n // eslint-disable-next-line no-invalid-this\n\n\n baseProps = baseProps || this.baseProps; // returns the original base props or base state of a given target element\n\n var getTargetProps = function (identifier, type) {\n var childName = identifier.childName,\n target = identifier.target,\n key = identifier.key; // eslint-disable-next-line no-invalid-this\n\n var baseType = type === \"props\" ? baseProps : _this2.state || {};\n var base = childName === undefined || childName === null || !baseType[childName] ? baseType : baseType[childName];\n return key === \"parent\" ? base.parent : base[key] && base[key][target];\n }; // Returns the state object with the mutation caused by a given eventReturn\n // applied to the appropriate property on the state object\n\n\n var parseEvent = function (eventReturn, eventKey) {\n var childNames = namespace === \"parent\" ? eventReturn.childName : eventReturn.childName || childType;\n var target = eventReturn.target || namespace; // returns all eventKeys to modify for a targeted childName\n\n var getKeys = function (childName) {\n if (target === \"parent\") {\n return \"parent\";\n }\n\n if (eventReturn.eventKey === \"all\") {\n return baseProps[childName] ? _without(_keys(baseProps[childName]), \"parent\") : _without(_keys(baseProps), \"parent\");\n } else if (eventReturn.eventKey === undefined && eventKey === \"parent\") {\n return baseProps[childName] ? _keys(baseProps[childName]) : _keys(baseProps);\n }\n\n return eventReturn.eventKey !== undefined ? eventReturn.eventKey : eventKey;\n }; // returns the state object with mutated props applied for a single key\n\n\n var getMutationObject = function (key, childName) {\n // eslint-disable-next-line no-invalid-this\n var baseState = _this2.state || {};\n\n if (!_isFunction(eventReturn.mutation)) {\n return baseState;\n }\n\n var mutationTargetProps = getTargetProps({\n childName: childName,\n key: key,\n target: target\n }, \"props\");\n var mutationTargetState = getTargetProps({\n childName: childName,\n key: key,\n target: target\n }, \"state\");\n var mutatedProps = eventReturn.mutation(_assign({}, mutationTargetProps, mutationTargetState), baseProps);\n var childState = baseState[childName] || {};\n\n var filterState = function (state) {\n if (state[key] && state[key][target]) {\n delete state[key][target];\n }\n\n if (state[key] && !_keys(state[key]).length) {\n delete state[key];\n }\n\n return state;\n };\n\n var extendState = function (state) {\n return target === \"parent\" ? _assign(state, _defineProperty({}, key, _assign(state[key], mutatedProps))) : _assign(state, _defineProperty({}, key, _assign(state[key], _defineProperty({}, target, mutatedProps))));\n };\n\n var updateState = function (state) {\n return mutatedProps ? extendState(state) : filterState(state);\n };\n\n return childName !== undefined && childName !== null ? _assign(baseState, _defineProperty({}, childName, updateState(childState))) : updateState(baseState);\n }; // returns entire mutated state for a given childName\n\n\n var getReturnByChild = function (childName) {\n var mutationKeys = getKeys(childName);\n return Array.isArray(mutationKeys) ? mutationKeys.reduce(function (memo, key) {\n return _assign(memo, getMutationObject(key, childName));\n }, {}) : getMutationObject(mutationKeys, childName);\n }; // returns an entire mutated state for all children\n\n\n var allChildNames = childNames === \"all\" ? _without(_keys(baseProps), \"parent\") : childNames;\n return Array.isArray(allChildNames) ? allChildNames.reduce(function (memo, childName) {\n return _assign(memo, getReturnByChild(childName));\n }, {}) : getReturnByChild(allChildNames);\n }; // Parses an array of event returns into a single state mutation\n\n\n var parseEventReturn = function (eventReturn, eventKey) {\n return Array.isArray(eventReturn) ? eventReturn.reduce(function (memo, props) {\n memo = _assign({}, memo, parseEvent(props, eventKey));\n return memo;\n }, {}) : parseEvent(eventReturn, eventKey);\n };\n\n var compileCallbacks = function (eventReturn) {\n var getCallback = function (obj) {\n return _isFunction(obj.callback) && obj.callback;\n };\n\n var callbacks = Array.isArray(eventReturn) ? eventReturn.map(function (evtObj) {\n return getCallback(evtObj);\n }) : [getCallback(eventReturn)];\n var callbackArray = callbacks.filter(function (callback) {\n return callback !== false;\n });\n return callbackArray.length ? function () {\n return callbackArray.forEach(function (callback) {\n return callback();\n });\n } : undefined;\n }; // A function that calls a particular event handler, parses its return\n // into a state mutation, and calls setState\n // eslint-disable-next-line max-params\n\n\n var onEvent = function (evt, childProps, eventKey, eventName) {\n // eslint-disable-next-line no-invalid-this\n var eventReturn = events[eventName](evt, childProps, eventKey, _this2);\n\n if (!_isEmpty(eventReturn)) {\n var callbacks = compileCallbacks(eventReturn); // eslint-disable-next-line no-invalid-this\n\n _this2.setState(parseEventReturn(eventReturn, eventKey), callbacks);\n }\n }; // returns a new events object with enhanced event handlers\n\n\n return _keys(events).reduce(function (memo, event) {\n memo[event] = onEvent;\n return memo;\n }, {});\n}\n/*\n * Returns a partially applied event handler for a specific target element\n * This allows event handlers to have access to props controlling each element\n */\n\nexport function getPartialEvents(events, eventKey, childProps) {\n if (!events) return {};\n return _keys(events).reduce(function (memo, eventName) {\n var appliedEvent = function (evt) {\n return events[eventName](evt, childProps, eventKey, eventName);\n };\n\n memo[eventName] = appliedEvent;\n return memo;\n }, {});\n}\n\n/* Returns the property of the state object corresponding to event changes for\n * a particular element\n */\n// eslint-disable-next-line max-params\nexport function getEventState(eventKey, namespace, childType) {\n // Mandatory usage: `getEventState.bind(this)`\n // eslint-disable-next-line no-invalid-this\n var state = this.state || {};\n\n if (!childType) {\n return eventKey === \"parent\" ? state[eventKey] && state[eventKey][namespace] || state[eventKey] : state[eventKey] && state[eventKey][namespace];\n }\n\n return state[childType] && state[childType][eventKey] && state[childType][eventKey][namespace];\n}\n/**\n * Returns a set of all mutations for shared events\n *\n * @param {Array} mutations an array of mutations objects\n * @param {Object} baseProps an object that describes all props for children of VictorySharedEvents\n * @param {Object} baseState an object that describes state for children of VictorySharedEvents\n * @param {Array} childNames an array of childNames\n *\n * @return {Object} a object describing all mutations for VictorySharedEvents\n */\n// eslint-disable-next-line max-params\n\nexport function getExternalMutationsWithChildren(mutations, baseProps, baseState, childNames) {\n baseProps = baseProps || {};\n baseState = baseState || {};\n return childNames.reduce(function (memo, childName) {\n var childState = baseState[childName];\n var mutation = getExternalMutations(mutations, baseProps[childName], baseState[childName], childName);\n memo[childName] = mutation ? mutation : childState;\n return _pickBy(memo, function (v) {\n return !_isEmpty(v);\n });\n }, {});\n}\n/**\n * Returns a set of all mutations for a component\n *\n * @param {Array} mutations an array of mutations objects\n * @param {Object} baseProps a props object (scoped to a childName when used by shared events)\n * @param {Object} baseState a state object (scoped to a childName when used by shared events)\n * @param {String} childName an optional childName\n *\n * @return {Object} a object describing mutations for a given component\n */\n// eslint-disable-next-line max-params\n\nexport function getExternalMutations(mutations, baseProps, baseState, childName) {\n baseProps = baseProps || {};\n baseState = baseState || {};\n\n var eventKeys = _keys(baseProps);\n\n return eventKeys.reduce(function (memo, eventKey) {\n var keyState = baseState[eventKey] || {};\n var keyProps = baseProps[eventKey] || {};\n\n if (eventKey === \"parent\") {\n var identifier = {\n eventKey: eventKey,\n target: \"parent\"\n };\n var mutation = getExternalMutation(mutations, keyProps, keyState, identifier);\n memo[eventKey] = mutation !== undefined ? _assign({}, keyState, mutation) : keyState;\n } else {\n // use keys from both state and props so that elements not intially included in baseProps\n // will be used. (i.e. labels)\n var targets = _uniq(_keys(keyProps).concat(_keys(keyState)));\n\n memo[eventKey] = targets.reduce(function (m, target) {\n var identifier = {\n eventKey: eventKey,\n target: target,\n childName: childName\n };\n var mutation = getExternalMutation(mutations, keyProps[target], keyState[target], identifier);\n m[target] = mutation !== undefined ? _assign({}, keyState[target], mutation) : keyState[target];\n return _pickBy(m, function (v) {\n return !_isEmpty(v);\n });\n }, {});\n }\n\n return _pickBy(memo, function (v) {\n return !_isEmpty(v);\n });\n }, {});\n}\n/**\n * Returns a set of mutations for a particular element given scoped baseProps and baseState\n *\n * @param {Array} mutations an array of mutations objects\n * @param {Object} baseProps a props object (scoped the element specified by the identifier)\n * @param {Object} baseState a state object (scoped the element specified by the identifier)\n * @param {Object} identifier { eventKey, target, childName }\n *\n * @return {Object | undefined} a object describing mutations for a given element, or undefined\n */\n// eslint-disable-next-line max-params\n\nexport function getExternalMutation(mutations, baseProps, baseState, identifier) {\n var filterMutations = function (mutation, type) {\n if (typeof mutation[type] === \"string\") {\n return mutation[type] === \"all\" || mutation[type] === identifier[type];\n } else if (Array.isArray(mutation[type])) {\n // coerce arrays to strings before matching\n var stringArray = mutation[type].map(function (m) {\n return \"\".concat(m);\n });\n return _includes(stringArray, identifier[type]);\n }\n\n return false;\n };\n\n mutations = Array.isArray(mutations) ? mutations : [mutations];\n var scopedMutations = mutations;\n\n if (identifier.childName) {\n scopedMutations = mutations.filter(function (m) {\n return filterMutations(m, \"childName\");\n });\n } // find any mutation objects that match the target\n\n\n var targetMutations = scopedMutations.filter(function (m) {\n return filterMutations(m, \"target\");\n });\n\n if (_isEmpty(targetMutations)) {\n return undefined;\n }\n\n var keyMutations = targetMutations.filter(function (m) {\n return filterMutations(m, \"eventKey\");\n });\n\n if (_isEmpty(keyMutations)) {\n return undefined;\n }\n\n return keyMutations.reduce(function (memo, curr) {\n var mutationFunction = curr && _isFunction(curr.mutation) ? curr.mutation : function () {\n return undefined;\n };\n var currentMutation = mutationFunction(_assign({}, baseProps, baseState));\n return _assign({}, memo, currentMutation);\n }, {});\n}\n/* Returns an array of defaultEvents from sub-components of a given component.\n * i.e. any static `defaultEvents` on `labelComponent` will be returned\n */\n\nexport function getComponentEvents(props, components) {\n var events = Array.isArray(components) && components.reduce(function (memo, componentName) {\n var _memo;\n\n var component = props[componentName];\n var defaultEvents = component && component.type && component.type.defaultEvents;\n var componentEvents = _isFunction(defaultEvents) ? defaultEvents(component.props) : defaultEvents;\n memo = Array.isArray(componentEvents) ? (_memo = memo).concat.apply(_memo, _toConsumableArray(componentEvents)) : memo;\n return memo;\n }, []);\n return events && events.length ? events : undefined;\n}\nexport function getGlobalEventNameFromKey(key) {\n var match = key.match(GLOBAL_EVENT_REGEX);\n return match && match[1] && match[1].toLowerCase();\n}\nexport var getGlobalEvents = function (events) {\n return _pickBy(events, function (_, key) {\n return GLOBAL_EVENT_REGEX.test(key);\n });\n};\nexport var omitGlobalEvents = function (events) {\n return _omitBy(events, function (_, key) {\n return GLOBAL_EVENT_REGEX.test(key);\n });\n};\nexport var emulateReactEvent = function (event) {\n return _assign(event, {\n nativeEvent: event\n });\n};","import _keys from \"lodash/keys\";\nimport _assign from \"lodash/assign\";\nimport _pick from \"lodash/pick\";\nimport _property from \"lodash/property\";\nimport _isFunction from \"lodash/isFunction\";\nimport _defaults from \"lodash/defaults\";\n\n/* eslint-disable no-use-before-define */\nimport React from \"react\";\n\n// Private Functions\nfunction getCartesianRange(props, axis) {\n // determine how to lay the axis and what direction positive and negative are\n var vertical = axis !== \"x\";\n var padding = getPadding(props);\n\n if (vertical) {\n return [props.height - padding.bottom, padding.top];\n }\n\n return [padding.left, props.width - padding.right];\n}\n\nfunction getPolarRange(props, axis) {\n if (axis === \"x\") {\n var startAngle = degreesToRadians(props.startAngle || 0);\n var endAngle = degreesToRadians(props.endAngle || 360);\n return [startAngle, endAngle];\n }\n\n return [props.innerRadius || 0, getRadius(props)];\n} // Exported Functions\n\n/**\n * creates an object with some keys excluded\n * replacement for lodash.omit for performance. does not mimic the entire lodash.omit api\n * @param {Object} originalObject: created object will be based on this object\n * @param {Array<String>} ks: an array of keys to omit from the new object\n * @returns {Object} new object with same properties as originalObject\n */\n\n\nexport function omit(originalObject) {\n var ks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n // code based on babel's _objectWithoutProperties\n var newObject = {};\n\n for (var key in originalObject) {\n // @ts-expect-error String is not assignable to Key\n if (ks.indexOf(key) >= 0) {\n continue;\n }\n\n if (!Object.prototype.hasOwnProperty.call(originalObject, key)) {\n continue;\n }\n\n newObject[key] = originalObject[key];\n }\n\n return newObject;\n}\nexport function getPoint(datum) {\n var exists = function (val) {\n return val !== undefined;\n };\n\n var _x = datum._x,\n _x1 = datum._x1,\n _x0 = datum._x0,\n _voronoiX = datum._voronoiX,\n _y = datum._y,\n _y1 = datum._y1,\n _y0 = datum._y0,\n _voronoiY = datum._voronoiY;\n var defaultX = exists(_x1) ? _x1 : _x;\n var defaultY = exists(_y1) ? _y1 : _y;\n var point = {\n x: exists(_voronoiX) ? _voronoiX : defaultX,\n x0: exists(_x0) ? _x0 : _x,\n y: exists(_voronoiY) ? _voronoiY : defaultY,\n y0: exists(_y0) ? _y0 : _y\n };\n return _defaults({}, point, datum);\n}\nexport function scalePoint(props, datum) {\n var scale = props.scale,\n polar = props.polar,\n horizontal = props.horizontal;\n var d = getPoint(datum);\n var origin = props.origin || {\n x: 0,\n y: 0\n };\n var x = horizontal ? scale.y(d.y) : scale.x(d.x);\n var x0 = horizontal ? scale.y(d.y0) : scale.x(d.x0);\n var y = horizontal ? scale.x(d.x) : scale.y(d.y);\n var y0 = horizontal ? scale.x(d.x0) : scale.y(d.y0);\n return {\n x: polar ? y * Math.cos(x) + origin.x : x,\n x0: polar ? y0 * Math.cos(x0) + origin.x : x0,\n y: polar ? -y * Math.sin(x) + origin.y : y,\n y0: polar ? -y0 * Math.sin(x0) + origin.x : y0\n };\n}\nexport function getPadding(props) {\n var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"padding\";\n var padding = props[name];\n var paddingVal = typeof padding === \"number\" ? padding : 0;\n var paddingObj = typeof padding === \"object\" ? padding : {};\n return {\n top: paddingObj.top || paddingVal,\n bottom: paddingObj.bottom || paddingVal,\n left: paddingObj.left || paddingVal,\n right: paddingObj.right || paddingVal\n };\n}\nexport function isTooltip(component) {\n var labelRole = component && component.type && component.type.role;\n return labelRole === \"tooltip\";\n}\nexport function getDefaultStyles(props, role) {\n var _props$theme = props.theme,\n theme = _props$theme === void 0 ? {} : _props$theme,\n labelComponent = props.labelComponent;\n var defaultStyles = theme[role] && theme[role].style || {};\n\n if (!isTooltip(labelComponent)) {\n return defaultStyles;\n }\n\n var tooltipStyle = theme.tooltip && theme.tooltip.style || {};\n\n var labelStyle = _defaults({}, tooltipStyle, defaultStyles.labels);\n\n return _defaults({}, {\n labels: labelStyle\n }, defaultStyles);\n}\nexport function getStyles(style, defaultStyles) {\n var width = \"100%\";\n var height = \"100%\";\n\n if (!style) {\n return _defaults({\n parent: {\n height: height,\n width: width\n }\n }, defaultStyles);\n }\n\n var data = style.data,\n labels = style.labels,\n parent = style.parent;\n var defaultParent = defaultStyles && defaultStyles.parent || {};\n var defaultLabels = defaultStyles && defaultStyles.labels || {};\n var defaultData = defaultStyles && defaultStyles.data || {};\n return {\n parent: _defaults({}, parent, defaultParent, {\n width: width,\n height: height\n }),\n labels: _defaults({}, labels, defaultLabels),\n data: _defaults({}, data, defaultData)\n };\n}\nexport function evaluateProp(prop, props) {\n return _isFunction(prop) ? prop(props) : prop;\n}\nexport function evaluateStyle(style, props) {\n if (props.disableInlineStyles) {\n return {};\n }\n\n if (!style || !_keys(style).some(function (value) {\n return _isFunction(style[value]);\n })) {\n return style;\n }\n\n return _keys(style).reduce(function (prev, curr) {\n prev[curr] = evaluateProp(style[curr], props);\n return prev;\n }, {});\n}\nexport function degreesToRadians(degrees) {\n return typeof degrees === \"number\" ? degrees * (Math.PI / 180) : degrees;\n}\nexport function radiansToDegrees(radians) {\n return typeof radians === \"number\" ? radians / (Math.PI / 180) : radians;\n}\nexport function getRadius(props) {\n var _getPadding = getPadding(props),\n left = _getPadding.left,\n right = _getPadding.right,\n top = _getPadding.top,\n bottom = _getPadding.bottom;\n\n var width = props.width,\n height = props.height;\n return Math.min(width - left - right, height - top - bottom) / 2;\n}\nexport function getPolarOrigin(props) {\n var width = props.width,\n height = props.height;\n\n var _getPadding2 = getPadding(props),\n top = _getPadding2.top,\n bottom = _getPadding2.bottom,\n left = _getPadding2.left,\n right = _getPadding2.right;\n\n var radius = Math.min(width - left - right, height - top - bottom) / 2;\n var offsetWidth = width / 2 + left - right;\n var offsetHeight = height / 2 + top - bottom;\n return {\n x: offsetWidth + radius > width ? radius + left - right : offsetWidth,\n y: offsetHeight + radius > height ? radius + top - bottom : offsetHeight\n };\n}\nexport function getRange(props, axis) {\n if (props.range && props.range[axis]) {\n return props.range[axis];\n } else if (props.range && Array.isArray(props.range)) {\n return props.range;\n }\n\n return props.polar ? getPolarRange(props, axis) : getCartesianRange(props, axis);\n}\nexport function createAccessor(key) {\n // creates a data accessor function\n // given a property key, path, array index, or null for identity.\n if (_isFunction(key)) {\n return key;\n } else if (key === null || key === undefined) {\n // null/undefined means \"return the data item itself\"\n return function (x) {\n return x;\n };\n } // otherwise, assume it is an array index, property key or path (_.property handles all three)\n\n\n return _property(key);\n}\nexport function modifyProps(props, fallbackProps, role) {\n var theme = props.theme && props.theme[role] ? props.theme[role] : {};\n var themeProps = omit(theme, [\"style\"]);\n var horizontal = isHorizontal(props);\n var defaultObject = horizontal === undefined ? {} : {\n horizontal: horizontal\n };\n return _defaults(defaultObject, props, themeProps, fallbackProps);\n}\n/**\n * Returns the given axis or the opposite axis when horizontal\n * @param {string} axis: the given axis, either \"x\" pr \"y\"\n * @param {Boolean} horizontal: true when the chart is flipped to the horizontal orientation\n * @returns {String} the dimension appropriate for the axis given its props \"x\" or \"y\"\n */\n\nexport function getCurrentAxis(axis, horizontal) {\n var otherAxis = axis === \"x\" ? \"y\" : \"x\";\n return horizontal ? otherAxis : axis;\n}\n/**\n * @param {Array} children: an array of child components\n * @param {Function} iteratee: a function with arguments \"child\", \"childName\", and \"parent\"\n * @param {Object} parentProps: props from the parent that are applied to children\n * @param {any} initialMemo: The object in which the iteration results are combined.\n * @param {Function} combine: Combines the result of the iteratee with the current memo\n * to the memo for the next iteration step\n * @returns {Array} returns an array of results from calling the iteratee on all nested children\n */\n\n/* eslint-disable max-params */\n\nexport function reduceChildren(children, iteratee) {\n var parentProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var initialMemo = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];\n var combine = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : function (memo, item) {\n return (// @ts-expect-error These defaults are hard to type\n memo.concat(item)\n );\n };\n var sharedProps = [\"data\", \"domain\", \"categories\", \"polar\", \"startAngle\", \"endAngle\", \"minDomain\", \"maxDomain\", \"horizontal\"];\n\n var traverseChildren = function (childArray, names, parent) {\n return childArray.reduce(function (memo, child, index) {\n var childRole = child.type && child.type.role;\n var childName = child.props.name || \"\".concat(childRole, \"-\").concat(names[index]);\n\n if (child.props && child.props.children) {\n var childProps = _assign({}, child.props, _pick(parentProps, sharedProps));\n\n var nestedChildren = child.type && child.type.role === \"stack\" && _isFunction(child.type.getChildren) ? child.type.getChildren(childProps) : React.Children.toArray(child.props.children).map(function (c) {\n var nestedChildProps = _assign({}, c.props, _pick(childProps, sharedProps));\n\n return /*#__PURE__*/React.cloneElement(c, nestedChildProps);\n });\n\n var _childNames = nestedChildren.map(function (c, i) {\n return \"\".concat(childName, \"-\").concat(i);\n });\n\n var nestedResults = traverseChildren(nestedChildren, _childNames, child);\n memo = combine(memo, nestedResults);\n } else {\n var result = iteratee(child, childName, parent);\n\n if (result) {\n memo = combine(memo, result);\n }\n }\n\n return memo;\n }, initialMemo);\n };\n\n var childNames = children.map(function (c, i) {\n return i;\n });\n return traverseChildren(children, childNames);\n}\n/**\n * @param {Object} props: the props object\n * @returns {Boolean} returns true if the props object contains `horizontal: true` of if any\n * children or nested children are horizontal\n */\n\nexport function isHorizontal(props) {\n if (props.horizontal !== undefined || !props.children) {\n return props.horizontal;\n }\n\n var traverseChildren = function (childArray) {\n return childArray.reduce(function (memo, child) {\n var childProps = child.props || {};\n\n if (memo || childProps.horizontal || !childProps.children) {\n memo = memo || childProps.horizontal;\n return memo;\n }\n\n return traverseChildren(React.Children.toArray(childProps.children));\n }, false);\n };\n\n return traverseChildren(React.Children.toArray(props.children));\n}","import _some from \"lodash/some\";\nimport _defaults from \"lodash/defaults\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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) || _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) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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 React from \"react\";\nimport * as Collection from \"../collection\";\nimport * as Transitions from \"../transitions\";\nvar INITIAL_STATE = {\n nodesShouldLoad: false,\n nodesDoneLoad: false,\n animating: true\n};\nexport var useAnimationState = function () {\n var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : INITIAL_STATE;\n\n var _React$useState = React.useState(initialState),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n state = _React$useState2[0],\n _setState = _React$useState2[1]; // This allows us to use a state object and maintain the same API as this.setState\n\n\n var setState = React.useCallback(function (newState) {\n _setState(function (oldState) {\n return _objectSpread(_objectSpread({}, oldState), newState);\n });\n }, [_setState]); // This is a copy of Wrapper.getAnimationProps\n\n var getAnimationProps = React.useCallback(function (props, child, index) {\n if (!(props !== null && props !== void 0 && props.animate)) {\n return child.props.animate;\n }\n\n var getFilteredState = function () {\n var childrenTransitions = state && state.childrenTransitions;\n childrenTransitions = Collection.isArrayOfArrays(childrenTransitions) ? childrenTransitions[index] : childrenTransitions;\n return _defaults({\n childrenTransitions: childrenTransitions\n }, state);\n };\n\n var getTransitions = props.animate && props.animate.getTransitions;\n var filteredState = getFilteredState();\n var parentState = props.animate && props.animate.parentState || filteredState;\n\n if (!getTransitions) {\n var getTransitionProps = Transitions.getTransitionPropsFactory(props, filteredState, function (newState) {\n return setState(newState);\n });\n\n getTransitions = function (childComponent) {\n return getTransitionProps(childComponent, index);\n };\n }\n\n return _defaults({\n getTransitions: getTransitions,\n parentState: parentState\n }, props.animate, child.props.animate);\n }, [state, setState]); // This is a copy of Wrapper.setAnimationState\n\n var setAnimationState = React.useCallback(function (props, nextProps) {\n if (!(props !== null && props !== void 0 && props.animate)) {\n return;\n }\n\n if (props.animate.parentState) {\n var nodesWillExit = props.animate.parentState.nodesWillExit;\n var oldProps = nodesWillExit ? props : null;\n\n var newState = _defaults({\n oldProps: oldProps,\n nextProps: nextProps\n }, props.animate.parentState);\n\n setState(newState);\n } else {\n var oldChildren = React.Children.toArray(props.children);\n var nextChildren = React.Children.toArray(nextProps.children);\n\n var isContinuous = function (child) {\n var check = function (c) {\n return c.type && c.type.continuous;\n };\n\n return Array.isArray(child) ? _some(child, check) : check(child);\n };\n\n var continuous = !props.polar && _some(oldChildren, function (child) {\n return isContinuous(child) || child.props.children && isContinuous(child.props.children);\n });\n\n var _Transitions$getIniti = Transitions.getInitialTransitionState(oldChildren, nextChildren),\n _nodesWillExit = _Transitions$getIniti.nodesWillExit,\n nodesWillEnter = _Transitions$getIniti.nodesWillEnter,\n childrenTransitions = _Transitions$getIniti.childrenTransitions,\n nodesShouldEnter = _Transitions$getIniti.nodesShouldEnter;\n\n setState({\n nodesWillExit: _nodesWillExit,\n nodesWillEnter: nodesWillEnter,\n nodesShouldEnter: nodesShouldEnter,\n childrenTransitions: Collection.isArrayOfArrays(childrenTransitions) ? childrenTransitions[0] : childrenTransitions,\n oldProps: _nodesWillExit ? props : undefined,\n nextProps: nextProps,\n continuous: continuous\n });\n }\n }, [setState]);\n var getProps = React.useCallback(function (initialProps) {\n return state && state.nodesWillExit ? state.oldProps || initialProps : initialProps;\n }, [state]);\n return {\n state: state,\n setState: setState,\n getAnimationProps: getAnimationProps,\n setAnimationState: setAnimationState,\n getProps: getProps\n };\n};","import React from \"react\";\nexport function usePreviousProps(props) {\n var ref = React.useRef();\n React.useEffect(function () {\n ref.current = props;\n });\n return ref.current;\n}","import _defaults from \"lodash/defaults\";\n\n/* eslint-disable no-use-before-define */\nimport * as Helpers from \"./helpers\";\n\n// Private Functions\nfunction getVerticalAnchor(props, datum) {\n datum = datum || {};\n var sign = datum._y >= 0 ? 1 : -1;\n var labelStyle = props.style && props.style.labels || {};\n\n if (datum.verticalAnchor || labelStyle.verticalAnchor) {\n return datum.verticalAnchor || labelStyle.verticalAnchor;\n } else if (!props.horizontal) {\n return sign >= 0 ? \"end\" : \"start\";\n }\n\n return \"middle\";\n}\n\nfunction getTextAnchor(props, datum) {\n datum = datum || {};\n var style = props.style,\n horizontal = props.horizontal;\n var sign = datum._y >= 0 ? 1 : -1;\n var labelStyle = style && style.labels || {};\n\n if (datum.verticalAnchor || labelStyle.verticalAnchor) {\n return datum.verticalAnchor || labelStyle.verticalAnchor;\n } else if (!horizontal) {\n return \"middle\";\n }\n\n return sign >= 0 ? \"start\" : \"end\";\n}\n\nfunction getAngle(props, datum) {\n datum = datum || {};\n var labelStyle = props.style && props.style.labels || {};\n return datum.angle === undefined ? labelStyle.angle : datum.angle;\n}\n\nfunction getPadding(props, datum) {\n datum = datum || {};\n var horizontal = props.horizontal,\n style = props.style;\n var labelStyle = style.labels || {};\n var defaultPadding = Helpers.evaluateProp(labelStyle.padding, props) || 0;\n var sign = datum._y < 0 ? -1 : 1;\n return {\n x: horizontal ? sign * defaultPadding : 0,\n y: horizontal ? 0 : -1 * sign * defaultPadding\n };\n}\n\nfunction getOffset(props, datum) {\n if (props.polar) {\n return {};\n }\n\n var padding = getPadding(props, datum);\n return {\n dx: padding.x,\n dy: padding.y\n };\n}\n\nfunction getPosition(props, datum) {\n var polar = props.polar;\n\n var _Helpers$scalePoint = Helpers.scalePoint(props, datum),\n x = _Helpers$scalePoint.x,\n y = _Helpers$scalePoint.y;\n\n if (!polar) {\n return {\n x: x,\n y: y\n };\n }\n\n var polarPadding = getPolarPadding(props, datum);\n return {\n x: x + polarPadding.x,\n y: y + polarPadding.y\n };\n}\n\nfunction getPolarPadding(props, datum) {\n var style = props.style;\n var degrees = getDegrees(props, datum);\n var labelStyle = style.labels || {};\n var padding = Helpers.evaluateProp(labelStyle.padding, props) || 0;\n var angle = Helpers.degreesToRadians(degrees);\n return {\n x: padding * Math.cos(angle),\n y: -padding * Math.sin(angle)\n };\n}\n\nfunction getLabelPlacement(props) {\n var labelComponent = props.labelComponent,\n labelPlacement = props.labelPlacement,\n polar = props.polar;\n var defaultLabelPlacement = polar ? \"perpendicular\" : \"vertical\";\n return labelPlacement ? labelPlacement : labelComponent.props && labelComponent.props.labelPlacement || defaultLabelPlacement;\n}\n\nfunction getPolarOrientation(degrees) {\n // eslint-disable-next-line no-magic-numbers\n if (degrees < 45 || degrees > 315) {\n return \"right\"; // eslint-disable-next-line no-magic-numbers\n } else if (degrees >= 45 && degrees <= 135) {\n return \"top\"; // eslint-disable-next-line no-magic-numbers\n } else if (degrees > 135 && degrees < 225) {\n return \"left\";\n }\n\n return \"bottom\";\n} // Exported Functions\n\n\nexport function getText(props, datum, index) {\n datum = datum || {};\n\n if (datum.label !== undefined) {\n return datum.label;\n }\n\n return Array.isArray(props.labels) ? props.labels[index] : props.labels;\n}\nexport function getPolarTextAnchor(props, degrees) {\n var labelPlacement = getLabelPlacement(props);\n\n if (labelPlacement === \"perpendicular\" || labelPlacement === \"vertical\" && (degrees === 90 || degrees === 270)) {\n return \"middle\";\n }\n\n return degrees <= 90 || degrees > 270 ? \"start\" : \"end\";\n}\nexport function getPolarVerticalAnchor(props, degrees) {\n var labelPlacement = getLabelPlacement(props);\n var orientation = getPolarOrientation(degrees);\n\n if (labelPlacement === \"parallel\" || orientation === \"left\" || orientation === \"right\") {\n return \"middle\";\n }\n\n return orientation === \"top\" ? \"end\" : \"start\";\n}\nexport function getPolarAngle(props, baseAngle) {\n var labelPlacement = props.labelPlacement,\n datum = props.datum;\n\n if (!labelPlacement || labelPlacement === \"vertical\") {\n return 0;\n }\n\n var degrees = baseAngle !== undefined ? baseAngle % 360 : getDegrees(props, datum);\n var sign = degrees > 90 && degrees < 180 || degrees > 270 ? 1 : -1;\n var angle = 0;\n\n if (degrees === 0 || degrees === 180) {\n angle = 90;\n } else if (degrees > 0 && degrees < 180) {\n angle = 90 - degrees;\n } else if (degrees > 180 && degrees < 360) {\n angle = 270 - degrees;\n }\n\n var labelRotation = labelPlacement === \"perpendicular\" ? 0 : 90;\n return angle + sign * labelRotation;\n}\nexport function getDegrees(props, datum) {\n var _Helpers$getPoint = Helpers.getPoint(datum),\n x = _Helpers$getPoint.x;\n\n return Helpers.radiansToDegrees(props.scale.x(x)) % 360;\n}\nexport function getProps(props, index) {\n var scale = props.scale,\n data = props.data,\n style = props.style,\n horizontal = props.horizontal,\n polar = props.polar,\n width = props.width,\n height = props.height,\n theme = props.theme,\n labelComponent = props.labelComponent,\n disableInlineStyles = props.disableInlineStyles;\n var datum = data[index];\n var degrees = getDegrees(props, datum);\n var textAnchor = polar ? getPolarTextAnchor(props, degrees) : getTextAnchor(props, datum);\n var verticalAnchor = polar ? getPolarVerticalAnchor(props, degrees) : getVerticalAnchor(props, datum);\n var angle = getAngle(props, datum);\n var text = getText(props, datum, index);\n var labelPlacement = getLabelPlacement(props);\n\n var _getPosition = getPosition(props, datum),\n x = _getPosition.x,\n y = _getPosition.y;\n\n var _getOffset = getOffset(props, datum),\n dx = _getOffset.dx,\n dy = _getOffset.dy;\n\n var labelProps = {\n angle: angle,\n data: data,\n datum: datum,\n disableInlineStyles: disableInlineStyles,\n horizontal: horizontal,\n index: index,\n polar: polar,\n scale: scale,\n labelPlacement: labelPlacement,\n text: text,\n textAnchor: textAnchor,\n verticalAnchor: verticalAnchor,\n x: x,\n y: y,\n dx: dx,\n dy: dy,\n width: width,\n height: height,\n style: style.labels\n };\n\n if (!Helpers.isTooltip(labelComponent)) {\n return labelProps;\n }\n\n var tooltipTheme = theme && theme.tooltip || {};\n return _defaults({}, labelProps, Helpers.omit(tooltipTheme, [\"style\"]));\n}","export default function(a, b) {\n return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;\n}\n","export default function(d) {\n return d;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport descending from \"./descending.js\";\nimport identity from \"./identity.js\";\nimport {tau} from \"./math.js\";\n\nexport default function() {\n var value = identity,\n sortValues = descending,\n sort = null,\n startAngle = constant(0),\n endAngle = constant(tau),\n padAngle = constant(0);\n\n function pie(data) {\n var i,\n n = (data = array(data)).length,\n j,\n k,\n sum = 0,\n index = new Array(n),\n arcs = new Array(n),\n a0 = +startAngle.apply(this, arguments),\n da = Math.min(tau, Math.max(-tau, endAngle.apply(this, arguments) - a0)),\n a1,\n p = Math.min(Math.abs(da) / n, padAngle.apply(this, arguments)),\n pa = p * (da < 0 ? -1 : 1),\n v;\n\n for (i = 0; i < n; ++i) {\n if ((v = arcs[index[i] = i] = +value(data[i], i, data)) > 0) {\n sum += v;\n }\n }\n\n // Optionally sort the arcs by previously-computed values or by data.\n if (sortValues != null) index.sort(function(i, j) { return sortValues(arcs[i], arcs[j]); });\n else if (sort != null) index.sort(function(i, j) { return sort(data[i], data[j]); });\n\n // Compute the arcs! They are stored in the original data's order.\n for (i = 0, k = sum ? (da - n * pa) / sum : 0; i < n; ++i, a0 = a1) {\n j = index[i], v = arcs[j], a1 = a0 + (v > 0 ? v * k : 0) + pa, arcs[j] = {\n data: data[j],\n index: i,\n value: v,\n startAngle: a0,\n endAngle: a1,\n padAngle: p\n };\n }\n\n return arcs;\n }\n\n pie.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), pie) : value;\n };\n\n pie.sortValues = function(_) {\n return arguments.length ? (sortValues = _, sort = null, pie) : sortValues;\n };\n\n pie.sort = function(_) {\n return arguments.length ? (sort = _, sortValues = null, pie) : sort;\n };\n\n pie.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : startAngle;\n };\n\n pie.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : endAngle;\n };\n\n pie.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), pie) : padAngle;\n };\n\n return pie;\n}\n","export default function(x, y) {\n return [(y = +y) * Math.cos(x -= Math.PI / 2), y * Math.sin(x)];\n}\n","import pointRadial from \"../pointRadial.js\";\n\nclass Bump {\n constructor(context, x) {\n this._context = context;\n this._x = x;\n }\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n }\n point(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: {\n this._point = 1;\n if (this._line) this._context.lineTo(x, y);\n else this._context.moveTo(x, y);\n break;\n }\n case 1: this._point = 2; // falls through\n default: {\n if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y);\n else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y);\n break;\n }\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nclass BumpRadial {\n constructor(context) {\n this._context = context;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {}\n point(x, y) {\n x = +x, y = +y;\n if (this._point === 0) {\n this._point = 1;\n } else {\n const p0 = pointRadial(this._x0, this._y0);\n const p1 = pointRadial(this._x0, this._y0 = (this._y0 + y) / 2);\n const p2 = pointRadial(x, this._y0);\n const p3 = pointRadial(x, y);\n this._context.moveTo(...p0);\n this._context.bezierCurveTo(...p1, ...p2, ...p3);\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nexport function bumpX(context) {\n return new Bump(context, true);\n}\n\nexport function bumpY(context) {\n return new Bump(context, false);\n}\n\nexport function bumpRadial(context) {\n return new BumpRadial(context);\n}\n","import {slice} from \"./array.js\";\nimport constant from \"./constant.js\";\nimport {bumpX, bumpY, bumpRadial} from \"./curve/bump.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nexport function link(curve) {\n let source = linkSource,\n target = linkTarget,\n x = pointX,\n y = pointY,\n context = null,\n output = null,\n path = withPath(link);\n\n function link() {\n let buffer;\n const argv = slice.call(arguments);\n const s = source.apply(this, argv);\n const t = target.apply(this, argv);\n if (context == null) output = curve(buffer = path());\n output.lineStart();\n argv[0] = s, output.point(+x.apply(this, argv), +y.apply(this, argv));\n argv[0] = t, output.point(+x.apply(this, argv), +y.apply(this, argv));\n output.lineEnd();\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n link.source = function(_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function(_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), link) : x;\n };\n\n link.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), link) : y;\n };\n\n link.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), link) : context;\n };\n\n return link;\n}\n\nexport function linkHorizontal() {\n return link(bumpX);\n}\n\nexport function linkVertical() {\n return link(bumpY);\n}\n\nexport function linkRadial() {\n const l = link(bumpRadial);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}\n","import {min, sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n draw(context, size) {\n const r = sqrt(size + min(size / 28, 0.75)) * 0.59436;\n const t = r / 2;\n const u = t * sqrt3;\n context.moveTo(0, r);\n context.lineTo(0, -r);\n context.moveTo(-u, -t);\n context.lineTo(u, t);\n context.moveTo(-u, t);\n context.lineTo(u, -t);\n }\n};\n","import {pi, sqrt, tau} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / pi);\n context.moveTo(r, 0);\n context.arc(0, 0, r, 0, tau);\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / 5) / 2;\n context.moveTo(-3 * r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, -3 * r);\n context.lineTo(r, -3 * r);\n context.lineTo(r, -r);\n context.lineTo(3 * r, -r);\n context.lineTo(3 * r, r);\n context.lineTo(r, r);\n context.lineTo(r, 3 * r);\n context.lineTo(-r, 3 * r);\n context.lineTo(-r, r);\n context.lineTo(-3 * r, r);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst tan30 = sqrt(1 / 3);\nconst tan30_2 = tan30 * 2;\n\nexport default {\n draw(context, size) {\n const y = sqrt(size / tan30_2);\n const x = y * tan30;\n context.moveTo(0, -y);\n context.lineTo(x, 0);\n context.lineTo(0, y);\n context.lineTo(-x, 0);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size) * 0.62625;\n context.moveTo(0, -r);\n context.lineTo(r, 0);\n context.lineTo(0, r);\n context.lineTo(-r, 0);\n context.closePath();\n }\n};\n","import {min, sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size - min(size / 7, 2)) * 0.87559;\n context.moveTo(-r, 0);\n context.lineTo(r, 0);\n context.moveTo(0, r);\n context.lineTo(0, -r);\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const w = sqrt(size);\n const x = -w / 2;\n context.rect(x, x, w, w);\n }\n};\n","import {sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size) * 0.4431;\n context.moveTo(r, r);\n context.lineTo(r, -r);\n context.lineTo(-r, -r);\n context.lineTo(-r, r);\n context.closePath();\n }\n};\n","import {sin, cos, sqrt, pi, tau} from \"../math.js\";\n\nconst ka = 0.89081309152928522810;\nconst kr = sin(pi / 10) / sin(7 * pi / 10);\nconst kx = sin(tau / 10) * kr;\nconst ky = -cos(tau / 10) * kr;\n\nexport default {\n draw(context, size) {\n const r = sqrt(size * ka);\n const x = kx * r;\n const y = ky * r;\n context.moveTo(0, -r);\n context.lineTo(x, y);\n for (let i = 1; i < 5; ++i) {\n const a = tau * i / 5;\n const c = cos(a);\n const s = sin(a);\n context.lineTo(s * r, -c * r);\n context.lineTo(c * x - s * y, s * x + c * y);\n }\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n draw(context, size) {\n const y = -sqrt(size / (sqrt3 * 3));\n context.moveTo(0, y * 2);\n context.lineTo(-sqrt3 * y, -y);\n context.lineTo(sqrt3 * y, -y);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst sqrt3 = sqrt(3);\n\nexport default {\n draw(context, size) {\n const s = sqrt(size) * 0.6824;\n const t = s / 2;\n const u = (s * sqrt3) / 2; // cos(Math.PI / 6)\n context.moveTo(0, -s);\n context.lineTo(u, t);\n context.lineTo(-u, t);\n context.closePath();\n }\n};\n","import {sqrt} from \"../math.js\";\n\nconst c = -0.5;\nconst s = sqrt(3) / 2;\nconst k = 1 / sqrt(12);\nconst a = (k / 2 + 1) * 3;\n\nexport default {\n draw(context, size) {\n const r = sqrt(size / a);\n const x0 = r / 2, y0 = r * k;\n const x1 = x0, y1 = r * k + r;\n const x2 = -x1, y2 = y1;\n context.moveTo(x0, y0);\n context.lineTo(x1, y1);\n context.lineTo(x2, y2);\n context.lineTo(c * x0 - s * y0, s * x0 + c * y0);\n context.lineTo(c * x1 - s * y1, s * x1 + c * y1);\n context.lineTo(c * x2 - s * y2, s * x2 + c * y2);\n context.lineTo(c * x0 + s * y0, c * y0 - s * x0);\n context.lineTo(c * x1 + s * y1, c * y1 - s * x1);\n context.lineTo(c * x2 + s * y2, c * y2 - s * x2);\n context.closePath();\n }\n};\n","import {min, sqrt} from \"../math.js\";\n\nexport default {\n draw(context, size) {\n const r = sqrt(size - min(size / 6, 1.7)) * 0.6189;\n context.moveTo(-r, -r);\n context.lineTo(r, r);\n context.moveTo(-r, r);\n context.lineTo(r, -r);\n }\n};\n","import constant from \"./constant.js\";\nimport {withPath} from \"./path.js\";\nimport asterisk from \"./symbol/asterisk.js\";\nimport circle from \"./symbol/circle.js\";\nimport cross from \"./symbol/cross.js\";\nimport diamond from \"./symbol/diamond.js\";\nimport diamond2 from \"./symbol/diamond2.js\";\nimport plus from \"./symbol/plus.js\";\nimport square from \"./symbol/square.js\";\nimport square2 from \"./symbol/square2.js\";\nimport star from \"./symbol/star.js\";\nimport triangle from \"./symbol/triangle.js\";\nimport triangle2 from \"./symbol/triangle2.js\";\nimport wye from \"./symbol/wye.js\";\nimport times from \"./symbol/times.js\";\n\n// These symbols are designed to be filled.\nexport const symbolsFill = [\n circle,\n cross,\n diamond,\n square,\n star,\n triangle,\n wye\n];\n\n// These symbols are designed to be stroked (with a width of 1.5px and round caps).\nexport const symbolsStroke = [\n circle,\n plus,\n times,\n triangle2,\n asterisk,\n square2,\n diamond2\n];\n\nexport default function Symbol(type, size) {\n let context = null,\n path = withPath(symbol);\n\n type = typeof type === \"function\" ? type : constant(type || circle);\n size = typeof size === \"function\" ? size : constant(size === undefined ? 64 : +size);\n\n function symbol() {\n let buffer;\n if (!context) context = buffer = path();\n type.apply(this, arguments).draw(context, +size.apply(this, arguments));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n symbol.type = function(_) {\n return arguments.length ? (type = typeof _ === \"function\" ? _ : constant(_), symbol) : type;\n };\n\n symbol.size = function(_) {\n return arguments.length ? (size = typeof _ === \"function\" ? _ : constant(+_), symbol) : size;\n };\n\n symbol.context = function(_) {\n return arguments.length ? (context = _ == null ? null : _, symbol) : context;\n };\n\n return symbol;\n}\n","export default function() {}\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n (2 * that._x0 + that._x1) / 3,\n (2 * that._y0 + that._y1) / 3,\n (that._x0 + 2 * that._x1) / 3,\n (that._y0 + 2 * that._y1) / 3,\n (that._x0 + 4 * that._x1 + x) / 6,\n (that._y0 + 4 * that._y1 + y) / 6\n );\n}\n\nexport function Basis(context) {\n this._context = context;\n}\n\nBasis.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 3: point(this, this._x1, this._y1); // falls through\n case 2: this._context.lineTo(this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._context.lineTo((5 * this._x0 + this._x1) / 6, (5 * this._y0 + this._y1) / 6); // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new Basis(context);\n}\n","import noop from \"../noop.js\";\nimport {point} from \"./basis.js\";\n\nfunction BasisClosed(context) {\n this._context = context;\n}\n\nBasisClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x2, this._y2);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.moveTo((this._x2 + 2 * this._x3) / 3, (this._y2 + 2 * this._y3) / 3);\n this._context.lineTo((this._x3 + 2 * this._x2) / 3, (this._y3 + 2 * this._y2) / 3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x2, this._y2);\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x2 = x, this._y2 = y; break;\n case 1: this._point = 2; this._x3 = x, this._y3 = y; break;\n case 2: this._point = 3; this._x4 = x, this._y4 = y; this._context.moveTo((this._x0 + 4 * this._x1 + x) / 6, (this._y0 + 4 * this._y1 + y) / 6); break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisClosed(context);\n}\n","import {point} from \"./basis.js\";\n\nfunction BasisOpen(context) {\n this._context = context;\n}\n\nBasisOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; var x0 = (this._x0 + 4 * this._x1 + x) / 6, y0 = (this._y0 + 4 * this._y1 + y) / 6; this._line ? this._context.lineTo(x0, y0) : this._context.moveTo(x0, y0); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n }\n};\n\nexport default function(context) {\n return new BasisOpen(context);\n}\n","import {Basis} from \"./basis.js\";\n\nfunction Bundle(context, beta) {\n this._basis = new Basis(context);\n this._beta = beta;\n}\n\nBundle.prototype = {\n lineStart: function() {\n this._x = [];\n this._y = [];\n this._basis.lineStart();\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n j = x.length - 1;\n\n if (j > 0) {\n var x0 = x[0],\n y0 = y[0],\n dx = x[j] - x0,\n dy = y[j] - y0,\n i = -1,\n t;\n\n while (++i <= j) {\n t = i / j;\n this._basis.point(\n this._beta * x[i] + (1 - this._beta) * (x0 + t * dx),\n this._beta * y[i] + (1 - this._beta) * (y0 + t * dy)\n );\n }\n }\n\n this._x = this._y = null;\n this._basis.lineEnd();\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\nexport default (function custom(beta) {\n\n function bundle(context) {\n return beta === 1 ? new Basis(context) : new Bundle(context, beta);\n }\n\n bundle.beta = function(beta) {\n return custom(+beta);\n };\n\n return bundle;\n})(0.85);\n","export function point(that, x, y) {\n that._context.bezierCurveTo(\n that._x1 + that._k * (that._x2 - that._x0),\n that._y1 + that._k * (that._y2 - that._y0),\n that._x2 + that._k * (that._x1 - x),\n that._y2 + that._k * (that._y1 - y),\n that._x2,\n that._y2\n );\n}\n\nexport function Cardinal(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinal.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: point(this, this._x1, this._y1); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; this._x1 = x, this._y1 = y; break;\n case 2: this._point = 3; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new Cardinal(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import noop from \"../noop.js\";\nimport {point} from \"./cardinal.js\";\n\nexport function CardinalClosed(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalClosed(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {point} from \"./cardinal.js\";\n\nexport function CardinalOpen(context, tension) {\n this._context = context;\n this._k = (1 - tension) / 6;\n}\n\nCardinalOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(tension) {\n\n function cardinal(context) {\n return new CardinalOpen(context, tension);\n }\n\n cardinal.tension = function(tension) {\n return custom(+tension);\n };\n\n return cardinal;\n})(0);\n","import {epsilon} from \"../math.js\";\nimport {Cardinal} from \"./cardinal.js\";\n\nexport function point(that, x, y) {\n var x1 = that._x1,\n y1 = that._y1,\n x2 = that._x2,\n y2 = that._y2;\n\n if (that._l01_a > epsilon) {\n var a = 2 * that._l01_2a + 3 * that._l01_a * that._l12_a + that._l12_2a,\n n = 3 * that._l01_a * (that._l01_a + that._l12_a);\n x1 = (x1 * a - that._x0 * that._l12_2a + that._x2 * that._l01_2a) / n;\n y1 = (y1 * a - that._y0 * that._l12_2a + that._y2 * that._l01_2a) / n;\n }\n\n if (that._l23_a > epsilon) {\n var b = 2 * that._l23_2a + 3 * that._l23_a * that._l12_a + that._l12_2a,\n m = 3 * that._l23_a * (that._l23_a + that._l12_a);\n x2 = (x2 * b + that._x1 * that._l23_2a - x * that._l12_2a) / m;\n y2 = (y2 * b + that._y1 * that._l23_2a - y * that._l12_2a) / m;\n }\n\n that._context.bezierCurveTo(x1, y1, x2, y2, that._x2, that._y2);\n}\n\nfunction CatmullRom(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRom.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x2, this._y2); break;\n case 3: this.point(this._x2, this._y2); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; // falls through\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRom(context, alpha) : new Cardinal(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalClosed} from \"./cardinalClosed.js\";\nimport noop from \"../noop.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomClosed(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._x0 = this._x1 = this._x2 = this._x3 = this._x4 = this._x5 =\n this._y0 = this._y1 = this._y2 = this._y3 = this._y4 = this._y5 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 1: {\n this._context.moveTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 2: {\n this._context.lineTo(this._x3, this._y3);\n this._context.closePath();\n break;\n }\n case 3: {\n this.point(this._x3, this._y3);\n this.point(this._x4, this._y4);\n this.point(this._x5, this._y5);\n break;\n }\n }\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; this._x3 = x, this._y3 = y; break;\n case 1: this._point = 2; this._context.moveTo(this._x4 = x, this._y4 = y); break;\n case 2: this._point = 3; this._x5 = x, this._y5 = y; break;\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomClosed(context, alpha) : new CardinalClosed(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import {CardinalOpen} from \"./cardinalOpen.js\";\nimport {point} from \"./catmullRom.js\";\n\nfunction CatmullRomOpen(context, alpha) {\n this._context = context;\n this._alpha = alpha;\n}\n\nCatmullRomOpen.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 = this._x2 =\n this._y0 = this._y1 = this._y2 = NaN;\n this._l01_a = this._l12_a = this._l23_a =\n this._l01_2a = this._l12_2a = this._l23_2a =\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 3)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n\n if (this._point) {\n var x23 = this._x2 - x,\n y23 = this._y2 - y;\n this._l23_a = Math.sqrt(this._l23_2a = Math.pow(x23 * x23 + y23 * y23, this._alpha));\n }\n\n switch (this._point) {\n case 0: this._point = 1; break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; this._line ? this._context.lineTo(this._x2, this._y2) : this._context.moveTo(this._x2, this._y2); break;\n case 3: this._point = 4; // falls through\n default: point(this, x, y); break;\n }\n\n this._l01_a = this._l12_a, this._l12_a = this._l23_a;\n this._l01_2a = this._l12_2a, this._l12_2a = this._l23_2a;\n this._x0 = this._x1, this._x1 = this._x2, this._x2 = x;\n this._y0 = this._y1, this._y1 = this._y2, this._y2 = y;\n }\n};\n\nexport default (function custom(alpha) {\n\n function catmullRom(context) {\n return alpha ? new CatmullRomOpen(context, alpha) : new CardinalOpen(context, 0);\n }\n\n catmullRom.alpha = function(alpha) {\n return custom(+alpha);\n };\n\n return catmullRom;\n})(0.5);\n","import noop from \"../noop.js\";\n\nfunction LinearClosed(context) {\n this._context = context;\n}\n\nLinearClosed.prototype = {\n areaStart: noop,\n areaEnd: noop,\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._point) this._context.closePath();\n },\n point: function(x, y) {\n x = +x, y = +y;\n if (this._point) this._context.lineTo(x, y);\n else this._point = 1, this._context.moveTo(x, y);\n }\n};\n\nexport default function(context) {\n return new LinearClosed(context);\n}\n","function sign(x) {\n return x < 0 ? -1 : 1;\n}\n\n// Calculate the slopes of the tangents (Hermite-type interpolation) based on\n// the following paper: Steffen, M. 1990. A Simple Method for Monotonic\n// Interpolation in One Dimension. Astronomy and Astrophysics, Vol. 239, NO.\n// NOV(II), P. 443, 1990.\nfunction slope3(that, x2, y2) {\n var h0 = that._x1 - that._x0,\n h1 = x2 - that._x1,\n s0 = (that._y1 - that._y0) / (h0 || h1 < 0 && -0),\n s1 = (y2 - that._y1) / (h1 || h0 < 0 && -0),\n p = (s0 * h1 + s1 * h0) / (h0 + h1);\n return (sign(s0) + sign(s1)) * Math.min(Math.abs(s0), Math.abs(s1), 0.5 * Math.abs(p)) || 0;\n}\n\n// Calculate a one-sided slope.\nfunction slope2(that, t) {\n var h = that._x1 - that._x0;\n return h ? (3 * (that._y1 - that._y0) / h - t) / 2 : t;\n}\n\n// According to https://en.wikipedia.org/wiki/Cubic_Hermite_spline#Representations\n// \"you can express cubic Hermite interpolation in terms of cubic Bézier curves\n// with respect to the four values p0, p0 + m0 / 3, p1 - m1 / 3, p1\".\nfunction point(that, t0, t1) {\n var x0 = that._x0,\n y0 = that._y0,\n x1 = that._x1,\n y1 = that._y1,\n dx = (x1 - x0) / 3;\n that._context.bezierCurveTo(x0 + dx, y0 + dx * t0, x1 - dx, y1 - dx * t1, x1, y1);\n}\n\nfunction MonotoneX(context) {\n this._context = context;\n}\n\nMonotoneX.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x0 = this._x1 =\n this._y0 = this._y1 =\n this._t0 = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n switch (this._point) {\n case 2: this._context.lineTo(this._x1, this._y1); break;\n case 3: point(this, this._t0, slope2(this, this._t0)); break;\n }\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n var t1 = NaN;\n\n x = +x, y = +y;\n if (x === this._x1 && y === this._y1) return; // Ignore coincident points.\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; break;\n case 2: this._point = 3; point(this, slope2(this, t1 = slope3(this, x, y)), t1); break;\n default: point(this, this._t0, t1 = slope3(this, x, y)); break;\n }\n\n this._x0 = this._x1, this._x1 = x;\n this._y0 = this._y1, this._y1 = y;\n this._t0 = t1;\n }\n}\n\nfunction MonotoneY(context) {\n this._context = new ReflectContext(context);\n}\n\n(MonotoneY.prototype = Object.create(MonotoneX.prototype)).point = function(x, y) {\n MonotoneX.prototype.point.call(this, y, x);\n};\n\nfunction ReflectContext(context) {\n this._context = context;\n}\n\nReflectContext.prototype = {\n moveTo: function(x, y) { this._context.moveTo(y, x); },\n closePath: function() { this._context.closePath(); },\n lineTo: function(x, y) { this._context.lineTo(y, x); },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) { this._context.bezierCurveTo(y1, x1, y2, x2, y, x); }\n};\n\nexport function monotoneX(context) {\n return new MonotoneX(context);\n}\n\nexport function monotoneY(context) {\n return new MonotoneY(context);\n}\n","function Natural(context) {\n this._context = context;\n}\n\nNatural.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = [];\n this._y = [];\n },\n lineEnd: function() {\n var x = this._x,\n y = this._y,\n n = x.length;\n\n if (n) {\n this._line ? this._context.lineTo(x[0], y[0]) : this._context.moveTo(x[0], y[0]);\n if (n === 2) {\n this._context.lineTo(x[1], y[1]);\n } else {\n var px = controlPoints(x),\n py = controlPoints(y);\n for (var i0 = 0, i1 = 1; i1 < n; ++i0, ++i1) {\n this._context.bezierCurveTo(px[0][i0], py[0][i0], px[1][i0], py[1][i0], x[i1], y[i1]);\n }\n }\n }\n\n if (this._line || (this._line !== 0 && n === 1)) this._context.closePath();\n this._line = 1 - this._line;\n this._x = this._y = null;\n },\n point: function(x, y) {\n this._x.push(+x);\n this._y.push(+y);\n }\n};\n\n// See https://www.particleincell.com/2012/bezier-splines/ for derivation.\nfunction controlPoints(x) {\n var i,\n n = x.length - 1,\n m,\n a = new Array(n),\n b = new Array(n),\n r = new Array(n);\n a[0] = 0, b[0] = 2, r[0] = x[0] + 2 * x[1];\n for (i = 1; i < n - 1; ++i) a[i] = 1, b[i] = 4, r[i] = 4 * x[i] + 2 * x[i + 1];\n a[n - 1] = 2, b[n - 1] = 7, r[n - 1] = 8 * x[n - 1] + x[n];\n for (i = 1; i < n; ++i) m = a[i] / b[i - 1], b[i] -= m, r[i] -= m * r[i - 1];\n a[n - 1] = r[n - 1] / b[n - 1];\n for (i = n - 2; i >= 0; --i) a[i] = (r[i] - a[i + 1]) / b[i];\n b[n - 1] = (x[n] + a[n - 1]) / 2;\n for (i = 0; i < n - 1; ++i) b[i] = 2 * x[i + 1] - a[i + 1];\n return [a, b];\n}\n\nexport default function(context) {\n return new Natural(context);\n}\n","function Step(context, t) {\n this._context = context;\n this._t = t;\n}\n\nStep.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._x = this._y = NaN;\n this._point = 0;\n },\n lineEnd: function() {\n if (0 < this._t && this._t < 1 && this._point === 2) this._context.lineTo(this._x, this._y);\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n if (this._line >= 0) this._t = 1 - this._t, this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: {\n if (this._t <= 0) {\n this._context.lineTo(this._x, y);\n this._context.lineTo(x, y);\n } else {\n var x1 = this._x * (1 - this._t) + x * this._t;\n this._context.lineTo(x1, this._y);\n this._context.lineTo(x1, y);\n }\n break;\n }\n }\n this._x = x, this._y = y;\n }\n};\n\nexport default function(context) {\n return new Step(context, 0.5);\n}\n\nexport function stepBefore(context) {\n return new Step(context, 0);\n}\n\nexport function stepAfter(context) {\n return new Step(context, 1);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 1)) return;\n for (var i = 1, j, s0, s1 = series[order[0]], n, m = s1.length; i < n; ++i) {\n s0 = s1, s1 = series[order[i]];\n for (j = 0; j < m; ++j) {\n s1[j][1] += s1[j][0] = isNaN(s0[j][1]) ? s0[j][0] : s0[j][1];\n }\n }\n}\n","export default function(series) {\n var n = series.length, o = new Array(n);\n while (--n >= 0) o[n] = n;\n return o;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport offsetNone from \"./offset/none.js\";\nimport orderNone from \"./order/none.js\";\n\nfunction stackValue(d, key) {\n return d[key];\n}\n\nfunction stackSeries(key) {\n const series = [];\n series.key = key;\n return series;\n}\n\nexport default function() {\n var keys = constant([]),\n order = orderNone,\n offset = offsetNone,\n value = stackValue;\n\n function stack(data) {\n var sz = Array.from(keys.apply(this, arguments), stackSeries),\n i, n = sz.length, j = -1,\n oz;\n\n for (const d of data) {\n for (i = 0, ++j; i < n; ++i) {\n (sz[i][j] = [0, +value(d, sz[i].key, j, data)]).data = d;\n }\n }\n\n for (i = 0, oz = array(order(sz)); i < n; ++i) {\n sz[oz[i]].index = i;\n }\n\n offset(sz, oz);\n return sz;\n }\n\n stack.keys = function(_) {\n return arguments.length ? (keys = typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : keys;\n };\n\n stack.value = function(_) {\n return arguments.length ? (value = typeof _ === \"function\" ? _ : constant(+_), stack) : value;\n };\n\n stack.order = function(_) {\n return arguments.length ? (order = _ == null ? orderNone : typeof _ === \"function\" ? _ : constant(Array.from(_)), stack) : order;\n };\n\n stack.offset = function(_) {\n return arguments.length ? (offset = _ == null ? offsetNone : _, stack) : offset;\n };\n\n return stack;\n}\n","import none from \"./none.js\";\n\nexport default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, n, j = 0, m = series[0].length, y; j < m; ++j) {\n for (y = i = 0; i < n; ++i) y += series[i][j][1] || 0;\n if (y) for (i = 0; i < n; ++i) series[i][j][1] /= y;\n }\n none(series, order);\n}\n","export default function(series, order) {\n if (!((n = series.length) > 0)) return;\n for (var i, j = 0, d, dy, yp, yn, n, m = series[order[0]].length; j < m; ++j) {\n for (yp = yn = 0, i = 0; i < n; ++i) {\n if ((dy = (d = series[order[i]][j])[1] - d[0]) > 0) {\n d[0] = yp, d[1] = yp += dy;\n } else if (dy < 0) {\n d[1] = yn, d[0] = yn += dy;\n } else {\n d[0] = 0, d[1] = dy;\n }\n }\n }\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 none from \"./none.js\";\n\nexport default function(series) {\n var peaks = series.map(peak);\n return none(series).sort(function(a, b) { return peaks[a] - peaks[b]; });\n}\n\nfunction peak(series) {\n var i = -1, j = 0, n = series.length, vi, vj = -Infinity;\n while (++i < n) if ((vi = +series[i][1]) > vj) vj = vi, j = i;\n return j;\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n var sums = series.map(sum);\n return none(series).sort(function(a, b) { return sums[a] - sums[b]; });\n}\n\nexport function sum(series) {\n var s = 0, i = -1, n = series.length, v;\n while (++i < n) if (v = +series[i][1]) s += v;\n return s;\n}\n","import ascending from \"./ascending.js\";\n\nexport default function(series) {\n return ascending(series).reverse();\n}\n","import appearance from \"./appearance.js\";\nimport {sum} from \"./ascending.js\";\n\nexport default function(series) {\n var n = series.length,\n i,\n j,\n sums = series.map(sum),\n order = appearance(series),\n top = 0,\n bottom = 0,\n tops = [],\n bottoms = [];\n\n for (i = 0; i < n; ++i) {\n j = order[i];\n if (top < bottom) {\n top += sums[j];\n tops.push(j);\n } else {\n bottom += sums[j];\n bottoms.push(j);\n }\n }\n\n return bottoms.reverse().concat(tops);\n}\n","import none from \"./none.js\";\n\nexport default function(series) {\n return none(series).reverse();\n}\n","import * as d3Shape from \"victory-vendor/d3-shape\";\n\nvar defined = function (d) {\n var y = d._y1 !== undefined ? d._y1 : d._y;\n return y !== null && y !== undefined && d._y0 !== null;\n};\n\nvar getXAccessor = function (scale) {\n return function (d) {\n return scale.x(d._x1 !== undefined ? d._x1 : d._x);\n };\n};\n\nvar getYAccessor = function (scale) {\n return function (d) {\n return scale.y(d._y1 !== undefined ? d._y1 : d._y);\n };\n};\n\nvar getAngleAccessor = function (scale) {\n return function (d) {\n var x = scale.x(d._x1 !== undefined ? d._x1 : d._x);\n return -1 * x + Math.PI / 2;\n };\n};\n\nvar toNewName = function (interpolation) {\n // d3 shape changed the naming scheme for interpolators from \"basis\" -> \"curveBasis\" etc.\n var capitalize = function (s) {\n return s && s[0].toUpperCase() + s.slice(1);\n };\n\n return \"curve\".concat(capitalize(interpolation));\n};\n\nvar toNewNameClosed = function (interpolation) {\n return \"\".concat(toNewName(interpolation), \"Closed\");\n};\n\nexport var getInterpolationFunction = function (props) {\n var interpolation = props.interpolation;\n\n if (typeof interpolation === \"function\") {\n return interpolation;\n }\n\n if (typeof interpolation === \"string\") {\n var polar = props.polar,\n _props$openCurve = props.openCurve,\n openCurve = _props$openCurve === void 0 ? !polar : _props$openCurve;\n var interpolationName = !openCurve ? toNewNameClosed(interpolation) : toNewName(interpolation);\n return d3Shape[interpolationName];\n }\n\n return d3Shape.curveLinear;\n};\nexport var getLineFunction = function (props) {\n var polar = props.polar,\n scale = props.scale,\n horizontal = props.horizontal;\n return polar ? d3Shape.lineRadial().defined(defined).curve(getInterpolationFunction(props)).angle(getAngleAccessor(scale)).radius(getYAccessor(scale)) : d3Shape.line().defined(defined).curve(getInterpolationFunction(props)).x(horizontal ? getYAccessor(scale) : getXAccessor(scale)).y(horizontal ? getXAccessor(scale) : getYAccessor(scale));\n};","/* global console */\n\n/* eslint-disable no-console */\n// TODO: Use \"warning\" npm module like React is switching to.\nexport function warn(message) {\n if (process.env.NODE_ENV !== \"production\") {\n if (console && console.warn) {\n console.warn(message);\n }\n }\n}","import _isRegExp from \"lodash/isRegExp\";\nimport _find from \"lodash/find\";\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 * as Log from \"./log\";\nimport PropTypes from \"prop-types\";\nimport * as Scale from \"./scale\";\n\n/**\n * Return a new validator based on `validator` but with the option to chain\n * `isRequired` onto the validation. This is nearly identical to how React\n * does it internally, but they don't expose their helper for us to use.\n * @param {Function} validator Validation function.\n * @returns {Function} Validator with `isRequired` option.\n */\nvar makeChainable = function (validator) {\n var createChainable = function (isRequired) {\n return function (props, propName, componentName) {\n var value = props[propName];\n\n if (value === undefined || value === null) {\n if (isRequired) {\n return new Error(\"Required `\".concat(propName, \"` was not specified in `\").concat(componentName, \"`.\"));\n }\n\n return null;\n }\n\n for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n rest[_key - 3] = arguments[_key];\n }\n\n return validator.apply(void 0, [props, propName, componentName].concat(rest));\n };\n };\n\n var chainable = Object.assign(createChainable(false), {\n isRequired: createChainable(true)\n });\n return chainable;\n};\n\nvar nullConstructor = function () {\n return null;\n};\n\nvar undefinedConstructor = function () {\n return undefined;\n};\n/**\n * Get the constructor of `value`. If `value` is null or undefined, return the\n * special singletons `nullConstructor` or `undefinedConstructor`, respectively.\n * @param {*} value Instance to return the constructor of.\n * @returns {Function} Constructor of `value`.\n */\n\n\nvar getConstructor = function (value) {\n if (value === undefined) {\n return undefinedConstructor;\n } else if (value === null) {\n return nullConstructor;\n }\n\n return value.constructor;\n};\n/**\n * Get the name of the constructor used to create `value`, using\n * `Object.prototype.toString`. If the value is null or undefined, return\n * \"null\" or \"undefined\", respectively.\n * @param {*} value Instance to return the constructor name of.\n * @returns {String} Name of the constructor.\n */\n\n\nvar getConstructorName = function (value) {\n if (value === undefined) {\n return \"undefined\";\n } else if (value === null) {\n return \"null\";\n }\n\n return Object.prototype.toString.call(value).slice(8, -1); // eslint-disable-line no-magic-numbers\n};\n/**\n * Return a new validator based on `propType` but which logs a `console.error`\n * with `explanation` if used.\n * @param {Function} propType The old, deprecated propType.\n * @param {String} explanation The message to provide the user of the deprecated propType.\n * @returns {Function} Validator which logs usage of this propType\n */\n\n\nexport function deprecated(propType, explanation) {\n return function (props, propName, componentName) {\n var value = props[propName];\n\n if (value !== null && value !== undefined) {\n Log.warn(\"\\\"\".concat(propName, \"\\\" property of \\\"\").concat(componentName, \"\\\" has been deprecated \").concat(explanation));\n }\n\n PropTypes.checkPropTypes(_defineProperty({}, propName, propType), props, propName, componentName);\n return null;\n };\n}\n/**\n * Return a new validator which returns true\n * if and only if all validators passed as arguments return true.\n * Like React.propTypes.oneOfType, except \"all\" instead of \"any\"\n * @param {Array} validators Validation functions.\n * @returns {Function} Combined validator function\n */\n\nexport function allOfType(validators) {\n return makeChainable(function (props, propName, componentName) {\n for (var _len2 = arguments.length, rest = new Array(_len2 > 3 ? _len2 - 3 : 0), _key2 = 3; _key2 < _len2; _key2++) {\n rest[_key2 - 3] = arguments[_key2];\n }\n\n return validators.reduce(function (result, validator) {\n return result || validator.apply(void 0, [props, propName, componentName].concat(rest));\n }, null);\n });\n}\n/**\n * Check that the value is a non-negative number.\n */\n\nexport var nonNegative = makeChainable(function (props, propName, componentName) {\n var value = props[propName];\n\n if (typeof value !== \"number\" || value < 0) {\n return new Error(\"`\".concat(propName, \"` in `\").concat(componentName, \"` must be a non-negative number.\"));\n }\n\n return null;\n});\n/**\n * Check that the value is an integer.\n */\n\nexport var integer = makeChainable(function (props, propName, componentName) {\n var value = props[propName];\n\n if (typeof value !== \"number\" || value % 1 !== 0) {\n return new Error(\"`\".concat(propName, \"` in `\").concat(componentName, \"` must be an integer.\"));\n }\n\n return null;\n});\n/**\n * Check that the value is greater than zero.\n */\n\nexport var greaterThanZero = makeChainable(function (props, propName, componentName) {\n var value = props[propName];\n\n if (typeof value !== \"number\" || value <= 0) {\n return new Error(\"`\".concat(propName, \"` in `\").concat(componentName, \"` must be a number greater than zero.\"));\n }\n\n return null;\n});\n/**\n * Check that the value is an Array of two unique values.\n */\n\nexport var domain = makeChainable(function (props, propName, componentName) {\n var value = props[propName];\n\n if (!Array.isArray(value) || value.length !== 2 || value[1] === value[0]) {\n return new Error(\"`\".concat(propName, \"` in `\").concat(componentName, \"` must be an array of two unique numeric values.\"));\n }\n\n return null;\n});\n/**\n * Check that the value looks like a d3 `scale` function.\n */\n\nexport var scale = makeChainable(function (props, propName, componentName) {\n var value = props[propName];\n\n if (!Scale.validScale(value)) {\n return new Error(\"`\".concat(propName, \"` in `\").concat(componentName, \"` must be a d3 scale.\"));\n }\n\n return null;\n});\n/**\n * Check that an array contains items of the same type.\n */\n\nexport var homogeneousArray = makeChainable(function (props, propName, componentName) {\n var values = props[propName];\n\n if (!Array.isArray(values)) {\n return new Error(\"`\".concat(propName, \"` in `\").concat(componentName, \"` must be an array.\"));\n }\n\n if (values.length < 2) {\n return null;\n }\n\n var comparisonConstructor = getConstructor(values[0]);\n\n var typeMismatchedValue = _find(values, function (value) {\n return comparisonConstructor !== getConstructor(value);\n });\n\n if (typeMismatchedValue) {\n var constructorName = getConstructorName(values[0]);\n var otherConstructorName = getConstructorName(typeMismatchedValue);\n return new Error(\"Expected `\".concat(propName, \"` in `\").concat(componentName, \"` to be a \") + \"homogeneous array, but found types `\".concat(constructorName, \"` and \") + \"`\".concat(otherConstructorName, \"`.\"));\n }\n\n return null;\n});\n/**\n * Check that array prop length matches props.data.length\n */\n\nexport var matchDataLength = makeChainable(function (props, propName) {\n if (props[propName] && Array.isArray(props[propName]) && props[propName].length !== props.data.length) {\n return new Error(\"Length of data and \".concat(propName, \" arrays must match.\"));\n }\n\n return null;\n});\n/**\n * Check that the value is a regular expression\n */\n\nexport var regExp = makeChainable(function (props, propName, componentName) {\n if (props[propName] && !_isRegExp(props[propName])) {\n return new Error(\"`\".concat(propName, \"` in `\").concat(componentName, \"` must be a regular expression.\"));\n }\n\n return null;\n});","export function initRange(domain, range) {\n switch (arguments.length) {\n case 0: break;\n case 1: this.range(domain); break;\n default: this.range(range).domain(domain); break;\n }\n return this;\n}\n\nexport function initInterpolator(domain, interpolator) {\n switch (arguments.length) {\n case 0: break;\n case 1: {\n if (typeof domain === \"function\") this.interpolator(domain);\n else this.range(domain);\n break;\n }\n default: {\n this.domain(domain);\n if (typeof interpolator === \"function\") this.interpolator(interpolator);\n else this.range(interpolator);\n break;\n }\n }\n return this;\n}\n","export class InternMap extends Map {\n constructor(entries, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (entries != null) for (const [key, value] of entries) this.set(key, value);\n }\n get(key) {\n return super.get(intern_get(this, key));\n }\n has(key) {\n return super.has(intern_get(this, key));\n }\n set(key, value) {\n return super.set(intern_set(this, key), value);\n }\n delete(key) {\n return super.delete(intern_delete(this, key));\n }\n}\n\nexport class InternSet extends Set {\n constructor(values, key = keyof) {\n super();\n Object.defineProperties(this, {_intern: {value: new Map()}, _key: {value: key}});\n if (values != null) for (const value of values) this.add(value);\n }\n has(value) {\n return super.has(intern_get(this, value));\n }\n add(value) {\n return super.add(intern_set(this, value));\n }\n delete(value) {\n return super.delete(intern_delete(this, value));\n }\n}\n\nfunction intern_get({_intern, _key}, value) {\n const key = _key(value);\n return _intern.has(key) ? _intern.get(key) : value;\n}\n\nfunction intern_set({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) return _intern.get(key);\n _intern.set(key, value);\n return value;\n}\n\nfunction intern_delete({_intern, _key}, value) {\n const key = _key(value);\n if (_intern.has(key)) {\n value = _intern.get(key);\n _intern.delete(key);\n }\n return value;\n}\n\nfunction keyof(value) {\n return value !== null && typeof value === \"object\" ? value.valueOf() : value;\n}\n","import {InternMap} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport const implicit = Symbol(\"implicit\");\n\nexport default function ordinal() {\n var index = new InternMap(),\n domain = [],\n range = [],\n unknown = implicit;\n\n function scale(d) {\n let i = index.get(d);\n if (i === undefined) {\n if (unknown !== implicit) return unknown;\n index.set(d, i = domain.push(d) - 1);\n }\n return range[i % range.length];\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [], index = new InternMap();\n for (const value of _) {\n if (index.has(value)) continue;\n index.set(value, domain.push(value) - 1);\n }\n return scale;\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), scale) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return ordinal(domain, range).unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n","import {range as sequence} from \"d3-array\";\nimport {initRange} from \"./init.js\";\nimport ordinal from \"./ordinal.js\";\n\nexport default function band() {\n var scale = ordinal().unknown(undefined),\n domain = scale.domain,\n ordinalRange = scale.range,\n r0 = 0,\n r1 = 1,\n step,\n bandwidth,\n round = false,\n paddingInner = 0,\n paddingOuter = 0,\n align = 0.5;\n\n delete scale.unknown;\n\n function rescale() {\n var n = domain().length,\n reverse = r1 < r0,\n start = reverse ? r1 : r0,\n stop = reverse ? r0 : r1;\n step = (stop - start) / Math.max(1, n - paddingInner + paddingOuter * 2);\n if (round) step = Math.floor(step);\n start += (stop - start - step * (n - paddingInner)) * align;\n bandwidth = step * (1 - paddingInner);\n if (round) start = Math.round(start), bandwidth = Math.round(bandwidth);\n var values = sequence(n).map(function(i) { return start + step * i; });\n return ordinalRange(reverse ? values.reverse() : values);\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? ([r0, r1] = _, r0 = +r0, r1 = +r1, rescale()) : [r0, r1];\n };\n\n scale.rangeRound = function(_) {\n return [r0, r1] = _, r0 = +r0, r1 = +r1, round = true, rescale();\n };\n\n scale.bandwidth = function() {\n return bandwidth;\n };\n\n scale.step = function() {\n return step;\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, rescale()) : round;\n };\n\n scale.padding = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, paddingOuter = +_), rescale()) : paddingInner;\n };\n\n scale.paddingInner = function(_) {\n return arguments.length ? (paddingInner = Math.min(1, _), rescale()) : paddingInner;\n };\n\n scale.paddingOuter = function(_) {\n return arguments.length ? (paddingOuter = +_, rescale()) : paddingOuter;\n };\n\n scale.align = function(_) {\n return arguments.length ? (align = Math.max(0, Math.min(1, _)), rescale()) : align;\n };\n\n scale.copy = function() {\n return band(domain(), [r0, r1])\n .round(round)\n .paddingInner(paddingInner)\n .paddingOuter(paddingOuter)\n .align(align);\n };\n\n return initRange.apply(rescale(), arguments);\n}\n\nfunction pointish(scale) {\n var copy = scale.copy;\n\n scale.padding = scale.paddingOuter;\n delete scale.paddingInner;\n delete scale.paddingOuter;\n\n scale.copy = function() {\n return pointish(copy());\n };\n\n return scale;\n}\n\nexport function point() {\n return pointish(band.apply(null, arguments).paddingInner(1));\n}\n","export default function range(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","const e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nfunction tickSpec(start, stop, count) {\n const step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log10(step)),\n error = step / Math.pow(10, power),\n factor = error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1;\n let i1, i2, inc;\n if (power < 0) {\n inc = Math.pow(10, -power) / factor;\n i1 = Math.round(start * inc);\n i2 = Math.round(stop * inc);\n if (i1 / inc < start) ++i1;\n if (i2 / inc > stop) --i2;\n inc = -inc;\n } else {\n inc = Math.pow(10, power) * factor;\n i1 = Math.round(start / inc);\n i2 = Math.round(stop / inc);\n if (i1 * inc < start) ++i1;\n if (i2 * inc > stop) --i2;\n }\n if (i2 < i1 && 0.5 <= count && count < 2) return tickSpec(start, stop, count * 2);\n return [i1, i2, inc];\n}\n\nexport default function ticks(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n if (!(count > 0)) return [];\n if (start === stop) return [start];\n const reverse = stop < start, [i1, i2, inc] = reverse ? tickSpec(stop, start, count) : tickSpec(start, stop, count);\n if (!(i2 >= i1)) return [];\n const n = i2 - i1 + 1, ticks = new Array(n);\n if (reverse) {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i2 - i) * inc;\n } else {\n if (inc < 0) for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) / -inc;\n else for (let i = 0; i < n; ++i) ticks[i] = (i1 + i) * inc;\n }\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n return tickSpec(start, stop, count)[2];\n}\n\nexport function tickStep(start, stop, count) {\n stop = +stop, start = +start, count = +count;\n const reverse = stop < start, inc = reverse ? tickIncrement(stop, start, count) : tickIncrement(start, stop, count);\n return (reverse ? -1 : 1) * (inc < 0 ? 1 / -inc : inc);\n}\n","export default function ascending(a, b) {\n return a == null || b == null ? NaN : a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function descending(a, b) {\n return a == null || b == null ? NaN\n : b < a ? -1\n : b > a ? 1\n : b >= a ? 0\n : NaN;\n}\n","import ascending from \"./ascending.js\";\nimport descending from \"./descending.js\";\n\nexport default function bisector(f) {\n let compare1, compare2, delta;\n\n // If an accessor is specified, promote it to a comparator. In this case we\n // can test whether the search value is (self-) comparable. We can’t do this\n // for a comparator (except for specific, known comparators) because we can’t\n // tell if the comparator is symmetric, and an asymmetric comparator can’t be\n // used to test whether a single value is comparable.\n if (f.length !== 2) {\n compare1 = ascending;\n compare2 = (d, x) => ascending(f(d), x);\n delta = (d, x) => f(d) - x;\n } else {\n compare1 = f === ascending || f === descending ? f : zero;\n compare2 = f;\n delta = f;\n }\n\n function left(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function right(a, x, lo = 0, hi = a.length) {\n if (lo < hi) {\n if (compare1(x, x) !== 0) return hi;\n do {\n const mid = (lo + hi) >>> 1;\n if (compare2(a[mid], x) <= 0) lo = mid + 1;\n else hi = mid;\n } while (lo < hi);\n }\n return lo;\n }\n\n function center(a, x, lo = 0, hi = a.length) {\n const i = left(a, x, lo, hi - 1);\n return i > lo && delta(a[i - 1], x) > -delta(a[i], x) ? i - 1 : i;\n }\n\n return {left, center, right};\n}\n\nfunction zero() {\n return 0;\n}\n","export default function number(x) {\n return x === null ? NaN : +x;\n}\n\nexport function* numbers(values, valueof) {\n if (valueof === undefined) {\n for (let value of values) {\n if (value != null && (value = +value) >= value) {\n yield value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null && (value = +value) >= value) {\n yield value;\n }\n }\n }\n}\n","import ascending from \"./ascending.js\";\nimport bisector from \"./bisector.js\";\nimport number from \"./number.js\";\n\nconst ascendingBisect = bisector(ascending);\nexport const bisectRight = ascendingBisect.right;\nexport const bisectLeft = ascendingBisect.left;\nexport const bisectCenter = bisector(number).center;\nexport default bisectRight;\n","export 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 number(x) {\n return +x;\n}\n","import {bisect} from \"d3-array\";\nimport {interpolate as interpolateValue, interpolateNumber, interpolateRound} from \"d3-interpolate\";\nimport constant from \"./constant.js\";\nimport number from \"./number.js\";\n\nvar unit = [0, 1];\n\nexport function identity(x) {\n return x;\n}\n\nfunction normalize(a, b) {\n return (b -= (a = +a))\n ? function(x) { return (x - a) / b; }\n : constant(isNaN(b) ? NaN : 0.5);\n}\n\nfunction clamper(a, b) {\n var t;\n if (a > b) t = a, a = b, b = t;\n return function(x) { return Math.max(a, Math.min(b, x)); };\n}\n\n// normalize(a, b)(x) takes a domain value x in [a,b] and returns the corresponding parameter t in [0,1].\n// interpolate(a, b)(t) takes a parameter t in [0,1] and returns the corresponding range value x in [a,b].\nfunction bimap(domain, range, interpolate) {\n var d0 = domain[0], d1 = domain[1], r0 = range[0], r1 = range[1];\n if (d1 < d0) d0 = normalize(d1, d0), r0 = interpolate(r1, r0);\n else d0 = normalize(d0, d1), r0 = interpolate(r0, r1);\n return function(x) { return r0(d0(x)); };\n}\n\nfunction polymap(domain, range, interpolate) {\n var j = Math.min(domain.length, range.length) - 1,\n d = new Array(j),\n r = new Array(j),\n i = -1;\n\n // Reverse descending domains.\n if (domain[j] < domain[0]) {\n domain = domain.slice().reverse();\n range = range.slice().reverse();\n }\n\n while (++i < j) {\n d[i] = normalize(domain[i], domain[i + 1]);\n r[i] = interpolate(range[i], range[i + 1]);\n }\n\n return function(x) {\n var i = bisect(domain, x, 1, j) - 1;\n return r[i](d[i](x));\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .range(source.range())\n .interpolate(source.interpolate())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport function transformer() {\n var domain = unit,\n range = unit,\n interpolate = interpolateValue,\n transform,\n untransform,\n unknown,\n clamp = identity,\n piecewise,\n output,\n input;\n\n function rescale() {\n var n = Math.min(domain.length, range.length);\n if (clamp !== identity) clamp = clamper(domain[0], domain[n - 1]);\n piecewise = n > 2 ? polymap : bimap;\n output = input = null;\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : (output || (output = piecewise(domain.map(transform), range, interpolate)))(transform(clamp(x)));\n }\n\n scale.invert = function(y) {\n return clamp(untransform((input || (input = piecewise(range, domain.map(transform), interpolateNumber)))(y)));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_, number), rescale()) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return range = Array.from(_), interpolate = interpolateRound, rescale();\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = _ ? true : identity, rescale()) : clamp !== identity;\n };\n\n scale.interpolate = function(_) {\n return arguments.length ? (interpolate = _, rescale()) : interpolate;\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t, u) {\n transform = t, untransform = u;\n return rescale();\n };\n}\n\nexport default function continuous() {\n return transformer()(identity, identity);\n}\n","export default function constants(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","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","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 default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": (x, p) => (x * 100).toFixed(p),\n \"b\": (x) => Math.round(x).toString(2),\n \"c\": (x) => x + \"\",\n \"d\": formatDecimal,\n \"e\": (x, p) => x.toExponential(p),\n \"f\": (x, p) => x.toFixed(p),\n \"g\": (x, p) => x.toPrecision(p),\n \"o\": (x) => Math.round(x).toString(8),\n \"p\": (x, p) => formatRounded(x * 100, p),\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": (x) => Math.round(x).toString(16).toUpperCase(),\n \"x\": (x) => Math.round(x).toString(16)\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"−\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","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 {tickStep} from \"d3-array\";\nimport {format, formatPrefix, formatSpecifier, precisionFixed, precisionPrefix, precisionRound} from \"d3-format\";\n\nexport default function tickFormat(start, stop, count, specifier) {\n var step = tickStep(start, stop, count),\n precision;\n specifier = formatSpecifier(specifier == null ? \",f\" : specifier);\n switch (specifier.type) {\n case \"s\": {\n var value = Math.max(Math.abs(start), Math.abs(stop));\n if (specifier.precision == null && !isNaN(precision = precisionPrefix(step, value))) specifier.precision = precision;\n return formatPrefix(specifier, value);\n }\n case \"\":\n case \"e\":\n case \"g\":\n case \"p\":\n case \"r\": {\n if (specifier.precision == null && !isNaN(precision = precisionRound(step, Math.max(Math.abs(start), Math.abs(stop))))) specifier.precision = precision - (specifier.type === \"e\");\n break;\n }\n case \"f\":\n case \"%\": {\n if (specifier.precision == null && !isNaN(precision = precisionFixed(step))) specifier.precision = precision - (specifier.type === \"%\") * 2;\n break;\n }\n }\n return format(specifier);\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, value) {\n return Math.max(0, Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3 - exponent(Math.abs(step)));\n}\n","import exponent from \"./exponent.js\";\n\nexport default function(step, max) {\n step = Math.abs(step), max = Math.abs(max) - step;\n return Math.max(0, exponent(max) - exponent(step)) + 1;\n}\n","import 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} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport tickFormat from \"./tickFormat.js\";\n\nexport function linearish(scale) {\n var domain = scale.domain;\n\n scale.ticks = function(count) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], count == null ? 10 : count);\n };\n\n scale.tickFormat = function(count, specifier) {\n var d = domain();\n return tickFormat(d[0], d[d.length - 1], count == null ? 10 : count, specifier);\n };\n\n scale.nice = function(count) {\n if (count == null) count = 10;\n\n var d = domain();\n var i0 = 0;\n var i1 = d.length - 1;\n var start = d[i0];\n var stop = d[i1];\n var prestep;\n var step;\n var maxIter = 10;\n\n if (stop < start) {\n step = start, start = stop, stop = step;\n step = i0, i0 = i1, i1 = step;\n }\n \n while (maxIter-- > 0) {\n step = tickIncrement(start, stop, count);\n if (step === prestep) {\n d[i0] = start\n d[i1] = stop\n return domain(d);\n } else if (step > 0) {\n start = Math.floor(start / step) * step;\n stop = Math.ceil(stop / step) * step;\n } else if (step < 0) {\n start = Math.ceil(start * step) / step;\n stop = Math.floor(stop * step) / step;\n } else {\n break;\n }\n prestep = step;\n }\n\n return scale;\n };\n\n return scale;\n}\n\nexport default function linear() {\n var scale = continuous();\n\n scale.copy = function() {\n return copy(scale, linear());\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","import {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nexport default function identity(domain) {\n var unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : x;\n }\n\n scale.invert = scale;\n\n scale.domain = scale.range = function(_) {\n return arguments.length ? (domain = Array.from(_, number), scale) : domain.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return identity(domain).unknown(unknown);\n };\n\n domain = arguments.length ? Array.from(domain, number) : [0, 1];\n\n return linearish(scale);\n}\n","export default function nice(domain, interval) {\n domain = domain.slice();\n\n var i0 = 0,\n i1 = domain.length - 1,\n x0 = domain[i0],\n x1 = domain[i1],\n t;\n\n if (x1 < x0) {\n t = i0, i0 = i1, i1 = t;\n t = x0, x0 = x1, x1 = t;\n }\n\n domain[i0] = interval.floor(x0);\n domain[i1] = interval.ceil(x1);\n return domain;\n}\n","import {ticks} from \"d3-array\";\nimport {format, formatSpecifier} from \"d3-format\";\nimport nice from \"./nice.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformLog(x) {\n return Math.log(x);\n}\n\nfunction transformExp(x) {\n return Math.exp(x);\n}\n\nfunction transformLogn(x) {\n return -Math.log(-x);\n}\n\nfunction transformExpn(x) {\n return -Math.exp(-x);\n}\n\nfunction pow10(x) {\n return isFinite(x) ? +(\"1e\" + x) : x < 0 ? 0 : x;\n}\n\nfunction powp(base) {\n return base === 10 ? pow10\n : base === Math.E ? Math.exp\n : x => Math.pow(base, x);\n}\n\nfunction logp(base) {\n return base === Math.E ? Math.log\n : base === 10 && Math.log10\n || base === 2 && Math.log2\n || (base = Math.log(base), x => Math.log(x) / base);\n}\n\nfunction reflect(f) {\n return (x, k) => -f(-x, k);\n}\n\nexport function loggish(transform) {\n const scale = transform(transformLog, transformExp);\n const domain = scale.domain;\n let base = 10;\n let logs;\n let pows;\n\n function rescale() {\n logs = logp(base), pows = powp(base);\n if (domain()[0] < 0) {\n logs = reflect(logs), pows = reflect(pows);\n transform(transformLogn, transformExpn);\n } else {\n transform(transformLog, transformExp);\n }\n return scale;\n }\n\n scale.base = function(_) {\n return arguments.length ? (base = +_, rescale()) : base;\n };\n\n scale.domain = function(_) {\n return arguments.length ? (domain(_), rescale()) : domain();\n };\n\n scale.ticks = count => {\n const d = domain();\n let u = d[0];\n let v = d[d.length - 1];\n const r = v < u;\n\n if (r) ([u, v] = [v, u]);\n\n let i = logs(u);\n let j = logs(v);\n let k;\n let t;\n const n = count == null ? 10 : +count;\n let z = [];\n\n if (!(base % 1) && j - i < n) {\n i = Math.floor(i), j = Math.ceil(j);\n if (u > 0) for (; i <= j; ++i) {\n for (k = 1; k < base; ++k) {\n t = i < 0 ? k / pows(-i) : k * pows(i);\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n } else for (; i <= j; ++i) {\n for (k = base - 1; k >= 1; --k) {\n t = i > 0 ? k / pows(-i) : k * pows(i);\n if (t < u) continue;\n if (t > v) break;\n z.push(t);\n }\n }\n if (z.length * 2 < n) z = ticks(u, v, n);\n } else {\n z = ticks(i, j, Math.min(j - i, n)).map(pows);\n }\n return r ? z.reverse() : z;\n };\n\n scale.tickFormat = (count, specifier) => {\n if (count == null) count = 10;\n if (specifier == null) specifier = base === 10 ? \"s\" : \",\";\n if (typeof specifier !== \"function\") {\n if (!(base % 1) && (specifier = formatSpecifier(specifier)).precision == null) specifier.trim = true;\n specifier = format(specifier);\n }\n if (count === Infinity) return specifier;\n const k = Math.max(1, base * count / scale.ticks().length); // TODO fast estimate?\n return d => {\n let i = d / pows(Math.round(logs(d)));\n if (i * base < base - 0.5) i *= base;\n return i <= k ? specifier(d) : \"\";\n };\n };\n\n scale.nice = () => {\n return domain(nice(domain(), {\n floor: x => pows(Math.floor(logs(x))),\n ceil: x => pows(Math.ceil(logs(x)))\n }));\n };\n\n return scale;\n}\n\nexport default function log() {\n const scale = loggish(transformer()).domain([1, 10]);\n scale.copy = () => copy(scale, log()).base(scale.base());\n initRange.apply(scale, arguments);\n return scale;\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformSymlog(c) {\n return function(x) {\n return Math.sign(x) * Math.log1p(Math.abs(x / c));\n };\n}\n\nfunction transformSymexp(c) {\n return function(x) {\n return Math.sign(x) * Math.expm1(Math.abs(x)) * c;\n };\n}\n\nexport function symlogish(transform) {\n var c = 1, scale = transform(transformSymlog(c), transformSymexp(c));\n\n scale.constant = function(_) {\n return arguments.length ? transform(transformSymlog(c = +_), transformSymexp(c)) : c;\n };\n\n return linearish(scale);\n}\n\nexport default function symlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, symlog()).constant(scale.constant());\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {linearish} from \"./linear.js\";\nimport {copy, identity, transformer} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\n\nfunction transformPow(exponent) {\n return function(x) {\n return x < 0 ? -Math.pow(-x, exponent) : Math.pow(x, exponent);\n };\n}\n\nfunction transformSqrt(x) {\n return x < 0 ? -Math.sqrt(-x) : Math.sqrt(x);\n}\n\nfunction transformSquare(x) {\n return x < 0 ? -x * x : x * x;\n}\n\nexport function powish(transform) {\n var scale = transform(identity, identity),\n exponent = 1;\n\n function rescale() {\n return exponent === 1 ? transform(identity, identity)\n : exponent === 0.5 ? transform(transformSqrt, transformSquare)\n : transform(transformPow(exponent), transformPow(1 / exponent));\n }\n\n scale.exponent = function(_) {\n return arguments.length ? (exponent = +_, rescale()) : exponent;\n };\n\n return linearish(scale);\n}\n\nexport default function pow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, pow()).exponent(scale.exponent());\n };\n\n initRange.apply(scale, arguments);\n\n return scale;\n}\n\nexport function sqrt() {\n return pow.apply(null, arguments).exponent(0.5);\n}\n","import continuous from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport number from \"./number.js\";\n\nfunction square(x) {\n return Math.sign(x) * x * x;\n}\n\nfunction unsquare(x) {\n return Math.sign(x) * Math.sqrt(Math.abs(x));\n}\n\nexport default function radial() {\n var squared = continuous(),\n range = [0, 1],\n round = false,\n unknown;\n\n function scale(x) {\n var y = unsquare(squared(x));\n return isNaN(y) ? unknown : round ? Math.round(y) : y;\n }\n\n scale.invert = function(y) {\n return squared.invert(square(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? (squared.domain(_), scale) : squared.domain();\n };\n\n scale.range = function(_) {\n return arguments.length ? (squared.range((range = Array.from(_, number)).map(square)), scale) : range.slice();\n };\n\n scale.rangeRound = function(_) {\n return scale.range(_).round(true);\n };\n\n scale.round = function(_) {\n return arguments.length ? (round = !!_, scale) : round;\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (squared.clamp(_), scale) : squared.clamp();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return radial(squared.domain(), range)\n .round(round)\n .clamp(squared.clamp())\n .unknown(unknown);\n };\n\n initRange.apply(scale, arguments);\n\n return linearish(scale);\n}\n","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","import ascending from \"./ascending.js\";\nimport permute from \"./permute.js\";\n\nexport default function sort(values, ...F) {\n if (typeof values[Symbol.iterator] !== \"function\") throw new TypeError(\"values is not iterable\");\n values = Array.from(values);\n let [f] = F;\n if ((f && f.length !== 2) || F.length > 1) {\n const index = Uint32Array.from(values, (d, i) => i);\n if (F.length > 1) {\n F = F.map(f => values.map(f));\n index.sort((i, j) => {\n for (const f of F) {\n const c = ascendingDefined(f[i], f[j]);\n if (c) return c;\n }\n });\n } else {\n f = values.map(f);\n index.sort((i, j) => ascendingDefined(f[i], f[j]));\n }\n return permute(values, index);\n }\n return values.sort(compareDefined(f));\n}\n\nexport function compareDefined(compare = ascending) {\n if (compare === ascending) return ascendingDefined;\n if (typeof compare !== \"function\") throw new TypeError(\"compare is not a function\");\n return (a, b) => {\n const x = compare(a, b);\n if (x || x === 0) return x;\n return (compare(b, b) === 0) - (compare(a, a) === 0);\n };\n}\n\nexport function ascendingDefined(a, b) {\n return (a == null || !(a >= a)) - (b == null || !(b >= b)) || (a < b ? -1 : a > b ? 1 : 0);\n}\n","import {ascendingDefined, compareDefined} from \"./sort.js\";\n\n// Based on https://github.com/mourner/quickselect\n// ISC license, Copyright 2018 Vladimir Agafonkin.\nexport default function quickselect(array, k, left = 0, right = Infinity, compare) {\n k = Math.floor(k);\n left = Math.floor(Math.max(0, left));\n right = Math.floor(Math.min(array.length - 1, right));\n\n if (!(left <= k && k <= right)) return array;\n\n compare = compare === undefined ? ascendingDefined : compareDefined(compare);\n\n while (right > left) {\n if (right - left > 600) {\n const n = right - left + 1;\n const m = k - left + 1;\n const z = Math.log(n);\n const s = 0.5 * Math.exp(2 * z / 3);\n const sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);\n const newLeft = Math.max(left, Math.floor(k - m * s / n + sd));\n const newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));\n quickselect(array, k, newLeft, newRight, compare);\n }\n\n const t = array[k];\n let i = left;\n let j = right;\n\n swap(array, left, k);\n if (compare(array[right], t) > 0) swap(array, left, right);\n\n while (i < j) {\n swap(array, i, j), ++i, --j;\n while (compare(array[i], t) < 0) ++i;\n while (compare(array[j], t) > 0) --j;\n }\n\n if (compare(array[left], t) === 0) swap(array, left, j);\n else ++j, swap(array, j, right);\n\n if (j <= k) left = j + 1;\n if (k <= j) right = j - 1;\n }\n\n return array;\n}\n\nfunction swap(array, i, j) {\n const t = array[i];\n array[i] = array[j];\n array[j] = t;\n}\n","import max from \"./max.js\";\nimport maxIndex from \"./maxIndex.js\";\nimport min from \"./min.js\";\nimport minIndex from \"./minIndex.js\";\nimport quickselect from \"./quickselect.js\";\nimport number, {numbers} from \"./number.js\";\nimport {ascendingDefined} from \"./sort.js\";\nimport greatest from \"./greatest.js\";\n\nexport default function quantile(values, p, valueof) {\n values = Float64Array.from(numbers(values, valueof));\n if (!(n = values.length) || isNaN(p = +p)) return;\n if (p <= 0 || n < 2) return min(values);\n if (p >= 1) return max(values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = max(quickselect(values, i0).subarray(0, i0 + 1)),\n value1 = min(values.subarray(i0 + 1));\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileSorted(values, p, valueof = number) {\n if (!(n = values.length) || isNaN(p = +p)) return;\n if (p <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n\nexport function quantileIndex(values, p, valueof) {\n values = Float64Array.from(numbers(values, valueof));\n if (!(n = values.length) || isNaN(p = +p)) return;\n if (p <= 0 || n < 2) return minIndex(values);\n if (p >= 1) return maxIndex(values);\n var n,\n i = Math.floor((n - 1) * p),\n order = (i, j) => ascendingDefined(values[i], values[j]),\n index = quickselect(Uint32Array.from(values, (_, i) => i), i, 0, n - 1, order);\n return greatest(index.subarray(0, i + 1), i => values[i]);\n}\n","import {ascending, bisect, quantileSorted as threshold} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantile() {\n var domain = [],\n range = [],\n thresholds = [],\n unknown;\n\n function rescale() {\n var i = 0, n = Math.max(1, range.length);\n thresholds = new Array(n - 1);\n while (++i < n) thresholds[i - 1] = threshold(domain, i / n);\n return scale;\n }\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : range[bisect(thresholds, x)];\n }\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN] : [\n i > 0 ? thresholds[i - 1] : domain[0],\n i < thresholds.length ? thresholds[i] : domain[domain.length - 1]\n ];\n };\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return rescale();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), rescale()) : range.slice();\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.quantiles = function() {\n return thresholds.slice();\n };\n\n scale.copy = function() {\n return quantile()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {linearish} from \"./linear.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function quantize() {\n var x0 = 0,\n x1 = 1,\n n = 1,\n domain = [0.5],\n range = [0, 1],\n unknown;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n function rescale() {\n var i = -1;\n domain = new Array(n);\n while (++i < n) domain[i] = ((i + 1) * x1 - (i - n) * x0) / (n + 1);\n return scale;\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, x0 = +x0, x1 = +x1, rescale()) : [x0, x1];\n };\n\n scale.range = function(_) {\n return arguments.length ? (n = (range = Array.from(_)).length - 1, rescale()) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return i < 0 ? [NaN, NaN]\n : i < 1 ? [x0, domain[0]]\n : i >= n ? [domain[n - 1], x1]\n : [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : scale;\n };\n\n scale.thresholds = function() {\n return domain.slice();\n };\n\n scale.copy = function() {\n return quantize()\n .domain([x0, x1])\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(linearish(scale), arguments);\n}\n","import {bisect} from \"d3-array\";\nimport {initRange} from \"./init.js\";\n\nexport default function threshold() {\n var domain = [0.5],\n range = [0, 1],\n unknown,\n n = 1;\n\n function scale(x) {\n return x != null && x <= x ? range[bisect(domain, x, 0, n)] : unknown;\n }\n\n scale.domain = function(_) {\n return arguments.length ? (domain = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : domain.slice();\n };\n\n scale.range = function(_) {\n return arguments.length ? (range = Array.from(_), n = Math.min(domain.length, range.length - 1), scale) : range.slice();\n };\n\n scale.invertExtent = function(y) {\n var i = range.indexOf(y);\n return [domain[i - 1], domain[i]];\n };\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n scale.copy = function() {\n return threshold()\n .domain(domain)\n .range(range)\n .unknown(unknown);\n };\n\n return initRange.apply(scale, arguments);\n}\n","export const durationSecond = 1000;\nexport const durationMinute = durationSecond * 60;\nexport const durationHour = durationMinute * 60;\nexport const durationDay = durationHour * 24;\nexport const durationWeek = durationDay * 7;\nexport const durationMonth = durationDay * 30;\nexport const durationYear = durationDay * 365;\n","const t0 = new Date, t1 = new Date;\n\nexport function timeInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = (date) => {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = (date) => {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = (date) => {\n const d0 = interval(date), d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = (date, step) => {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = (start, stop, step) => {\n const range = [];\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n let previous;\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = (test) => {\n return timeInterval((date) => {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, (date, step) => {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = (start, end) => {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = (step) => {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? (d) => field(d) % step === 0\n : (d) => interval.count(0, d) % step === 0);\n };\n }\n\n return interval;\n}\n","import {timeInterval} from \"./interval.js\";\n\nexport const millisecond = timeInterval(() => {\n // noop\n}, (date, step) => {\n date.setTime(+date + step);\n}, (start, end) => {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = (k) => {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return timeInterval((date) => {\n date.setTime(Math.floor(date / k) * k);\n }, (date, step) => {\n date.setTime(+date + step * k);\n }, (start, end) => {\n return (end - start) / k;\n });\n};\n\nexport const milliseconds = millisecond.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nexport const second = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds());\n}, (date, step) => {\n date.setTime(+date + step * durationSecond);\n}, (start, end) => {\n return (end - start) / durationSecond;\n}, (date) => {\n return date.getUTCSeconds();\n});\n\nexport const seconds = second.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeMinute = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getMinutes();\n});\n\nexport const timeMinutes = timeMinute.range;\n\nexport const utcMinute = timeInterval((date) => {\n date.setUTCSeconds(0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationMinute);\n}, (start, end) => {\n return (end - start) / durationMinute;\n}, (date) => {\n return date.getUTCMinutes();\n});\n\nexport const utcMinutes = utcMinute.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nexport const timeHour = timeInterval((date) => {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getHours();\n});\n\nexport const timeHours = timeHour.range;\n\nexport const utcHour = timeInterval((date) => {\n date.setUTCMinutes(0, 0, 0);\n}, (date, step) => {\n date.setTime(+date + step * durationHour);\n}, (start, end) => {\n return (end - start) / durationHour;\n}, (date) => {\n return date.getUTCHours();\n});\n\nexport const utcHours = utcHour.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nexport const timeDay = timeInterval(\n date => date.setHours(0, 0, 0, 0),\n (date, step) => date.setDate(date.getDate() + step),\n (start, end) => (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay,\n date => date.getDate() - 1\n);\n\nexport const timeDays = timeDay.range;\n\nexport const utcDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return date.getUTCDate() - 1;\n});\n\nexport const utcDays = utcDay.range;\n\nexport const unixDay = timeInterval((date) => {\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step);\n}, (start, end) => {\n return (end - start) / durationDay;\n}, (date) => {\n return Math.floor(date / durationDay);\n});\n\nexport const unixDays = unixDay.range;\n","import {timeInterval} from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction timeWeekday(i) {\n return timeInterval((date) => {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setDate(date.getDate() + step * 7);\n }, (start, end) => {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport const timeSunday = timeWeekday(0);\nexport const timeMonday = timeWeekday(1);\nexport const timeTuesday = timeWeekday(2);\nexport const timeWednesday = timeWeekday(3);\nexport const timeThursday = timeWeekday(4);\nexport const timeFriday = timeWeekday(5);\nexport const timeSaturday = timeWeekday(6);\n\nexport const timeSundays = timeSunday.range;\nexport const timeMondays = timeMonday.range;\nexport const timeTuesdays = timeTuesday.range;\nexport const timeWednesdays = timeWednesday.range;\nexport const timeThursdays = timeThursday.range;\nexport const timeFridays = timeFriday.range;\nexport const timeSaturdays = timeSaturday.range;\n\nfunction utcWeekday(i) {\n return timeInterval((date) => {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, (start, end) => {\n return (end - start) / durationWeek;\n });\n}\n\nexport const utcSunday = utcWeekday(0);\nexport const utcMonday = utcWeekday(1);\nexport const utcTuesday = utcWeekday(2);\nexport const utcWednesday = utcWeekday(3);\nexport const utcThursday = utcWeekday(4);\nexport const utcFriday = utcWeekday(5);\nexport const utcSaturday = utcWeekday(6);\n\nexport const utcSundays = utcSunday.range;\nexport const utcMondays = utcMonday.range;\nexport const utcTuesdays = utcTuesday.range;\nexport const utcWednesdays = utcWednesday.range;\nexport const utcThursdays = utcThursday.range;\nexport const utcFridays = utcFriday.range;\nexport const utcSaturdays = utcSaturday.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeMonth = timeInterval((date) => {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setMonth(date.getMonth() + step);\n}, (start, end) => {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, (date) => {\n return date.getMonth();\n});\n\nexport const timeMonths = timeMonth.range;\n\nexport const utcMonth = timeInterval((date) => {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, (start, end) => {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, (date) => {\n return date.getUTCMonth();\n});\n\nexport const utcMonths = utcMonth.range;\n","import {timeInterval} from \"./interval.js\";\n\nexport const timeYear = timeInterval((date) => {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setFullYear(date.getFullYear() + step);\n}, (start, end) => {\n return end.getFullYear() - start.getFullYear();\n}, (date) => {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\ntimeYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport const timeYears = timeYear.range;\n\nexport const utcYear = timeInterval((date) => {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, (start, end) => {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, (date) => {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = (k) => {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : timeInterval((date) => {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, (date, step) => {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport const utcYears = utcYear.range;\n","import {bisector, tickStep} from \"d3-array\";\nimport {durationDay, durationHour, durationMinute, durationMonth, durationSecond, durationWeek, durationYear} from \"./duration.js\";\nimport {millisecond} from \"./millisecond.js\";\nimport {second} from \"./second.js\";\nimport {timeMinute, utcMinute} from \"./minute.js\";\nimport {timeHour, utcHour} from \"./hour.js\";\nimport {timeDay, unixDay} from \"./day.js\";\nimport {timeSunday, utcSunday} from \"./week.js\";\nimport {timeMonth, utcMonth} from \"./month.js\";\nimport {timeYear, utcYear} from \"./year.js\";\n\nfunction ticker(year, month, week, day, hour, minute) {\n\n const tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function ticks(start, stop, count) {\n const reverse = stop < start;\n if (reverse) [start, stop] = [stop, start];\n const interval = count && typeof count.range === \"function\" ? count : tickInterval(start, stop, count);\n const ticks = interval ? interval.range(start, +stop + 1) : []; // inclusive stop\n return reverse ? ticks.reverse() : ticks;\n }\n\n function tickInterval(start, stop, count) {\n const target = Math.abs(stop - start) / count;\n const i = bisector(([,, step]) => step).right(tickIntervals, target);\n if (i === tickIntervals.length) return year.every(tickStep(start / durationYear, stop / durationYear, count));\n if (i === 0) return millisecond.every(Math.max(tickStep(start, stop, count), 1));\n const [t, step] = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n return t.every(step);\n }\n\n return [ticks, tickInterval];\n}\n\nconst [utcTicks, utcTickInterval] = ticker(utcYear, utcMonth, utcSunday, unixDay, utcHour, utcMinute);\nconst [timeTicks, timeTickInterval] = ticker(timeYear, timeMonth, timeSunday, timeDay, timeHour, timeMinute);\n\nexport {utcTicks, utcTickInterval, timeTicks, timeTickInterval};\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup.get(n[0].toLowerCase()), i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n return new Map(names.map((name, i) => [name.toLowerCase(), i]));\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeTicks, timeTickInterval} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport continuous, {copy} from \"./continuous.js\";\nimport {initRange} from \"./init.js\";\nimport nice from \"./nice.js\";\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format) {\n var scale = continuous(),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(Array.from(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval) {\n var d = domain();\n return ticks(d[0], d[d.length - 1], interval == null ? 10 : interval);\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval) {\n var d = domain();\n if (!interval || typeof interval.range !== \"function\") interval = tickInterval(d[0], d[d.length - 1], interval == null ? 10 : interval);\n return interval ? domain(nice(d, interval)) : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(ticks, tickInterval, year, month, week, day, hour, minute, second, format));\n };\n\n return scale;\n}\n\nexport default function time() {\n return initRange.apply(calendar(timeTicks, timeTickInterval, timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import {utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcTicks, utcTickInterval} from \"d3-time\";\nimport {utcFormat} from \"d3-time-format\";\nimport {calendar} from \"./time.js\";\nimport {initRange} from \"./init.js\";\n\nexport default function utcTime() {\n return initRange.apply(calendar(utcTicks, utcTickInterval, utcYear, utcMonth, utcWeek, utcDay, utcHour, utcMinute, utcSecond, utcFormat).domain([Date.UTC(2000, 0, 1), Date.UTC(2000, 0, 2)]), arguments);\n}\n","import {interpolate, interpolateRound} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 1,\n t0,\n t1,\n k10,\n transform,\n interpolator = identity,\n clamp = false,\n unknown;\n\n function scale(x) {\n return x == null || isNaN(x = +x) ? unknown : interpolator(k10 === 0 ? 0.5 : (x = (transform(x) - t0) * k10, clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0), scale) : [x0, x1];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1;\n return arguments.length ? ([r0, r1] = _, interpolator = interpolate(r0, r1), scale) : [interpolator(0), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), k10 = t0 === t1 ? 0 : 1 / (t1 - t0);\n return scale;\n };\n}\n\nexport function copy(source, target) {\n return target\n .domain(source.domain())\n .interpolator(source.interpolator())\n .clamp(source.clamp())\n .unknown(source.unknown());\n}\n\nexport default function sequential() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, sequential());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialLog() {\n var scale = loggish(transformer()).domain([1, 10]);\n\n scale.copy = function() {\n return copy(scale, sequentialLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, sequentialPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function sequentialSqrt() {\n return sequentialPow.apply(null, arguments).exponent(0.5);\n}\n","import {ascending, bisect, quantile} from \"d3-array\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\n\nexport default function sequentialQuantile() {\n var domain = [],\n interpolator = identity;\n\n function scale(x) {\n if (x != null && !isNaN(x = +x)) return interpolator((bisect(domain, x, 1) - 1) / (domain.length - 1));\n }\n\n scale.domain = function(_) {\n if (!arguments.length) return domain.slice();\n domain = [];\n for (let d of _) if (d != null && !isNaN(d = +d)) domain.push(d);\n domain.sort(ascending);\n return scale;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n scale.range = function() {\n return domain.map((d, i) => interpolator(i / (domain.length - 1)));\n };\n\n scale.quantiles = function(n) {\n return Array.from({length: n + 1}, (_, i) => quantile(domain, i / n));\n };\n\n scale.copy = function() {\n return sequentialQuantile(interpolator).domain(domain);\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n","import {interpolate, interpolateRound, piecewise} from \"d3-interpolate\";\nimport {identity} from \"./continuous.js\";\nimport {initInterpolator} from \"./init.js\";\nimport {linearish} from \"./linear.js\";\nimport {loggish} from \"./log.js\";\nimport {copy} from \"./sequential.js\";\nimport {symlogish} from \"./symlog.js\";\nimport {powish} from \"./pow.js\";\n\nfunction transformer() {\n var x0 = 0,\n x1 = 0.5,\n x2 = 1,\n s = 1,\n t0,\n t1,\n t2,\n k10,\n k21,\n interpolator = identity,\n transform,\n clamp = false,\n unknown;\n\n function scale(x) {\n return isNaN(x = +x) ? unknown : (x = 0.5 + ((x = +transform(x)) - t1) * (s * x < s * t1 ? k10 : k21), interpolator(clamp ? Math.max(0, Math.min(1, x)) : x));\n }\n\n scale.domain = function(_) {\n return arguments.length ? ([x0, x1, x2] = _, t0 = transform(x0 = +x0), t1 = transform(x1 = +x1), t2 = transform(x2 = +x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1, scale) : [x0, x1, x2];\n };\n\n scale.clamp = function(_) {\n return arguments.length ? (clamp = !!_, scale) : clamp;\n };\n\n scale.interpolator = function(_) {\n return arguments.length ? (interpolator = _, scale) : interpolator;\n };\n\n function range(interpolate) {\n return function(_) {\n var r0, r1, r2;\n return arguments.length ? ([r0, r1, r2] = _, interpolator = piecewise(interpolate, [r0, r1, r2]), scale) : [interpolator(0), interpolator(0.5), interpolator(1)];\n };\n }\n\n scale.range = range(interpolate);\n\n scale.rangeRound = range(interpolateRound);\n\n scale.unknown = function(_) {\n return arguments.length ? (unknown = _, scale) : unknown;\n };\n\n return function(t) {\n transform = t, t0 = t(x0), t1 = t(x1), t2 = t(x2), k10 = t0 === t1 ? 0 : 0.5 / (t1 - t0), k21 = t1 === t2 ? 0 : 0.5 / (t2 - t1), s = t1 < t0 ? -1 : 1;\n return scale;\n };\n}\n\nexport default function diverging() {\n var scale = linearish(transformer()(identity));\n\n scale.copy = function() {\n return copy(scale, diverging());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingLog() {\n var scale = loggish(transformer()).domain([0.1, 1, 10]);\n\n scale.copy = function() {\n return copy(scale, divergingLog()).base(scale.base());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSymlog() {\n var scale = symlogish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingSymlog()).constant(scale.constant());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingPow() {\n var scale = powish(transformer());\n\n scale.copy = function() {\n return copy(scale, divergingPow()).exponent(scale.exponent());\n };\n\n return initInterpolator.apply(scale, arguments);\n}\n\nexport function divergingSqrt() {\n return divergingPow.apply(null, arguments).exponent(0.5);\n}\n","import {default as value} from \"./value.js\";\n\nexport default function piecewise(interpolate, values) {\n if (values === undefined) values = interpolate, interpolate = value;\n var i = 0, n = values.length - 1, v = values[0], I = new Array(n < 0 ? 0 : n);\n while (i < n) I[i] = interpolate(v, v = values[++i]);\n return function(t) {\n var i = Math.max(0, Math.min(n - 1, Math.floor(t *= n)));\n return I[i](t - i);\n };\n}\n","import _isPlainObject from \"lodash/isPlainObject\";\nimport _isFunction from \"lodash/isFunction\";\nimport _includes from \"lodash/includes\";\nimport * as Helpers from \"./helpers\";\nimport * as Collection from \"./collection\";\nimport * as d3Scale from \"victory-vendor/d3-scale\";\nvar supportedScaleStrings = [\"linear\", \"time\", \"log\", \"sqrt\"];\n\n// Private Functions\nfunction toNewName(scale) {\n // d3 scale changed the naming scheme for scale from \"linear\" -> \"scaleLinear\" etc.\n var capitalize = function (s) {\n return s && s[0].toUpperCase() + s.slice(1);\n };\n\n return \"scale\".concat(capitalize(scale));\n}\n\nexport function validScale(scale) {\n if (typeof scale === \"function\") {\n return _isFunction(scale.copy) && _isFunction(scale.domain) && _isFunction(scale.range);\n } else if (typeof scale === \"string\") {\n return _includes(supportedScaleStrings, scale);\n }\n\n return false;\n}\n\nfunction isScaleDefined(props, axis) {\n if (!props.scale) {\n return false;\n } else if (props.scale.x || props.scale.y) {\n return !!props.scale[axis];\n }\n\n return true;\n}\n\nfunction getScaleTypeFromProps(props, axis) {\n if (!isScaleDefined(props, axis)) {\n return undefined;\n }\n\n var scale = props.scale[axis] || props.scale;\n return typeof scale === \"string\" ? scale : getType(scale);\n}\n\nfunction getScaleFromDomain(props, axis) {\n var domain;\n\n if (props.domain && props.domain[axis]) {\n domain = props.domain[axis];\n } else if (props.domain && Array.isArray(props.domain)) {\n domain = props.domain;\n }\n\n if (!domain) {\n return undefined;\n }\n\n return Collection.containsDates(domain) ? \"time\" : \"linear\";\n}\n\nfunction getScaleTypeFromData(props, axis) {\n if (!props.data) {\n return \"linear\";\n }\n\n var accessor = Helpers.createAccessor(props[axis]);\n var axisData = props.data.map(function (datum) {\n var processedData = _isPlainObject(accessor(datum)) ? accessor(datum)[axis] : accessor(datum);\n return processedData !== undefined ? processedData : datum[axis];\n });\n return Collection.containsDates(axisData) ? \"time\" : \"linear\";\n} // Exported Functions\n\n\nexport function getScaleFromName(name) {\n if (validScale(name)) {\n var methodName = toNewName(name); // @ts-expect-error scaleTime is not directly compatible with our D3Scale definition\n\n return d3Scale[methodName]();\n }\n\n return d3Scale.scaleLinear();\n}\nexport function getBaseScale(props, axis) {\n var scale = getScaleFromProps(props, axis);\n\n if (scale) {\n return typeof scale === \"string\" ? getScaleFromName(scale) : scale;\n }\n\n var defaultScale = getScaleFromDomain(props, axis) || getScaleTypeFromData(props, axis);\n return getScaleFromName(defaultScale);\n}\nexport function getDefaultScale() {\n return d3Scale.scaleLinear();\n}\nexport function getScaleFromProps(props, axis) {\n if (!isScaleDefined(props, axis)) {\n return undefined;\n }\n\n var scale = props.scale[axis] || props.scale;\n\n if (validScale(scale)) {\n return _isFunction(scale) ? scale : getScaleFromName(scale);\n }\n\n return undefined;\n}\nexport function getScaleType(props, axis) {\n // if the scale was not given in props, it will be set to linear or time depending on data\n return getScaleTypeFromProps(props, axis) || getScaleTypeFromData(props, axis);\n} // Ordered type inference off of function fields.\n// **Note**: Brittle because reliant on d3 internals.\n\nvar DUCK_TYPES = [{\n name: \"quantile\",\n method: \"quantiles\"\n}, {\n name: \"log\",\n method: \"base\"\n} // TODO(2214): Re-evaluate (1) duck typing approach, and (2) if duck typing,\n// do we need a different approach? (Multiple keys? Stringifying functions?)\n// https://github.com/FormidableLabs/victory/issues/2214\n// Below are matches that don't seem to otherwise occur in Victory code base.\n// { name: \"ordinal\", method: \"unknown\" },\n// { name: \"pow-sqrt\", method: \"exponent\" },\n// { name: \"quantize-threshold\", method: \"invertExtent\" }\n];\nexport function getType(scale) {\n if (typeof scale === \"string\") {\n return scale;\n }\n\n var scaleType = DUCK_TYPES.filter(function (type) {\n return scale[type.method] !== undefined;\n })[0];\n return scaleType ? scaleType.name : undefined;\n}","/**\n * Given an object with CSS/SVG transform definitions, return the string value\n * for use with the `transform` CSS property or SVG attribute. Note that we\n * can't always guarantee the order will match the author's intended order, so\n * authors should only use the object notation if they know that their transform\n * is commutative or that there is only one.\n * @param {Object} obj An object of transform definitions.\n * @returns {String} The generated transform string.\n */\nexport var toTransformString = function (obj) {\n for (var _len = arguments.length, more = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n more[_key - 1] = arguments[_key];\n }\n\n if (more.length > 0) {\n return more.reduce(function (memo, currentObj) {\n return [memo, toTransformString(currentObj)].join(\" \");\n }, toTransformString(obj)).trim();\n }\n\n if (obj === undefined || obj === null || typeof obj === \"string\") {\n return obj;\n }\n\n var transforms = [];\n\n for (var key in obj) {\n if (obj.hasOwnProperty(key)) {\n var value = obj[key];\n transforms.push(\"\".concat(key, \"(\").concat(value, \")\"));\n }\n }\n\n return transforms.join(\" \").trim();\n};\n/**\n * Given the name of a color scale, getColorScale will return an array\n * of 5 hex string values in that color scale. If no 'name' parameter\n * is given, it will return the Victory default grayscale.\n * @param {String} name The name of the color scale to return (optional).\n * @returns {Array} An array of 5 hex string values composing a color scale.\n */\n\nexport function getColorScale(name) {\n var scales = {\n grayscale: [\"#cccccc\", \"#969696\", \"#636363\", \"#252525\"],\n qualitative: [\"#334D5C\", \"#45B29D\", \"#EFC94C\", \"#E27A3F\", \"#DF5A49\", \"#4F7DA1\", \"#55DBC1\", \"#EFDA97\", \"#E2A37F\", \"#DF948A\"],\n heatmap: [\"#428517\", \"#77D200\", \"#D6D305\", \"#EC8E19\", \"#C92B05\"],\n warm: [\"#940031\", \"#C43343\", \"#DC5429\", \"#FF821D\", \"#FFAF55\"],\n cool: [\"#2746B9\", \"#0B69D4\", \"#2794DB\", \"#31BB76\", \"#60E83B\"],\n red: [\"#FCAE91\", \"#FB6A4A\", \"#DE2D26\", \"#A50F15\", \"#750B0E\"],\n blue: [\"#002C61\", \"#004B8F\", \"#006BC9\", \"#3795E5\", \"#65B4F4\"],\n green: [\"#354722\", \"#466631\", \"#649146\", \"#8AB25C\", \"#A9C97E\"]\n };\n return name ? scales[name] : scales.grayscale;\n}","import _memoize from \"lodash/memoize\";\nimport _defaults from \"lodash/defaults\";\nimport _assign from \"lodash/assign\";\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 _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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) || _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\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) 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\n// Based on measuring specific character widths\n// as in the following example https://bl.ocks.org/tophtucker/62f93a4658387bb61e4510c37e2e97cf\n// prettier-ignore\nvar fonts = {\n \"American Typewriter\": {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.25, 0.4203125, 0.3296875, 0.6, 0.6375, 0.8015625, 0.8203125, 0.1875, 0.45625, 0.45625, 0.6375, 0.5, 0.2734375, 0.309375, 0.2734375, 0.4390625, 0.6375, 0.6375, 0.6375, 0.6375, 0.6375, 0.6375, 0.6375, 0.6375, 0.6375, 0.6375, 0.2734375, 0.2734375, 0.5, 0.5, 0.5, 0.6, 0.6921875, 0.7640625, 0.6921875, 0.6375, 0.728125, 0.6734375, 0.6203125, 0.7109375, 0.784375, 0.3828125, 0.6421875, 0.7859375, 0.6375, 0.9484375, 0.7640625, 0.65625, 0.6375, 0.65625, 0.7296875, 0.6203125, 0.6375, 0.7109375, 0.740625, 0.940625, 0.784375, 0.7578125, 0.6203125, 0.4375, 0.5, 0.4375, 0.5, 0.5, 0.4921875, 0.5734375, 0.5890625, 0.5109375, 0.6, 0.528125, 0.43125, 0.5578125, 0.6375, 0.3109375, 0.40625, 0.6234375, 0.309375, 0.928125, 0.6375, 0.546875, 0.6, 0.58125, 0.4921875, 0.4921875, 0.4, 0.6203125, 0.625, 0.825, 0.6375, 0.640625, 0.528125, 0.5, 0.5, 0.5, 0.6671875],\n avg: 0.5793421052631578\n },\n Arial: {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.278125, 0.278125, 0.35625, 0.55625, 0.55625, 0.890625, 0.6671875, 0.1921875, 0.334375, 0.334375, 0.390625, 0.584375, 0.278125, 0.334375, 0.278125, 0.278125, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.278125, 0.278125, 0.584375, 0.584375, 0.584375, 0.55625, 1.015625, 0.6703125, 0.6671875, 0.7234375, 0.7234375, 0.6671875, 0.6109375, 0.778125, 0.7234375, 0.278125, 0.5, 0.6671875, 0.55625, 0.834375, 0.7234375, 0.778125, 0.6671875, 0.778125, 0.7234375, 0.6671875, 0.6109375, 0.7234375, 0.6671875, 0.9453125, 0.6671875, 0.6671875, 0.6109375, 0.278125, 0.278125, 0.278125, 0.4703125, 0.584375, 0.334375, 0.55625, 0.55625, 0.5, 0.55625, 0.55625, 0.3125, 0.55625, 0.55625, 0.2234375, 0.2703125, 0.5, 0.2234375, 0.834375, 0.55625, 0.55625, 0.55625, 0.55625, 0.346875, 0.5, 0.278125, 0.55625, 0.5, 0.7234375, 0.5, 0.5, 0.5, 0.334375, 0.2609375, 0.334375, 0.584375],\n avg: 0.528733552631579\n },\n \"Arial Black\": {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.33125, 0.334375, 0.5, 0.6609375, 0.6671875, 1, 0.890625, 0.278125, 0.390625, 0.390625, 0.55625, 0.6609375, 0.334375, 0.334375, 0.334375, 0.28125, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.334375, 0.334375, 0.6609375, 0.6609375, 0.6609375, 0.6109375, 0.7453125, 0.78125, 0.778125, 0.778125, 0.778125, 0.7234375, 0.6671875, 0.834375, 0.834375, 0.390625, 0.6671875, 0.834375, 0.6671875, 0.9453125, 0.834375, 0.834375, 0.7234375, 0.834375, 0.78125, 0.7234375, 0.7234375, 0.834375, 0.7796875, 1.003125, 0.78125, 0.78125, 0.7234375, 0.390625, 0.28125, 0.390625, 0.6609375, 0.5125, 0.334375, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.41875, 0.6671875, 0.6671875, 0.334375, 0.384375, 0.6671875, 0.334375, 1, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.4703125, 0.6109375, 0.4453125, 0.6671875, 0.6140625, 0.946875, 0.6671875, 0.615625, 0.55625, 0.390625, 0.278125, 0.390625, 0.6609375],\n avg: 0.6213157894736842\n },\n Baskerville: {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.25, 0.25, 0.40625, 0.6671875, 0.490625, 0.875, 0.7015625, 0.178125, 0.2453125, 0.246875, 0.4171875, 0.6671875, 0.25, 0.3125, 0.25, 0.521875, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.25, 0.25, 0.6671875, 0.6671875, 0.6671875, 0.396875, 0.9171875, 0.684375, 0.615625, 0.71875, 0.7609375, 0.625, 0.553125, 0.771875, 0.803125, 0.3546875, 0.515625, 0.78125, 0.6046875, 0.928125, 0.75, 0.8234375, 0.5625, 0.96875, 0.7296875, 0.5421875, 0.6984375, 0.771875, 0.7296875, 0.9484375, 0.771875, 0.678125, 0.6359375, 0.3640625, 0.521875, 0.3640625, 0.46875, 0.5125, 0.334375, 0.46875, 0.521875, 0.428125, 0.521875, 0.4375, 0.3890625, 0.4765625, 0.53125, 0.25, 0.359375, 0.4640625, 0.240625, 0.803125, 0.53125, 0.5, 0.521875, 0.521875, 0.365625, 0.334375, 0.2921875, 0.521875, 0.4640625, 0.678125, 0.4796875, 0.465625, 0.428125, 0.4796875, 0.5109375, 0.4796875, 0.6671875],\n avg: 0.5323519736842108\n },\n Courier: {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5984375, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6078125, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.61875, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.615625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6140625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625],\n avg: 0.6020559210526316\n },\n \"Courier New\": {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5984375, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625],\n avg: 0.6015296052631579\n },\n cursive: {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.1921875, 0.24375, 0.40625, 0.5671875, 0.3984375, 0.721875, 0.909375, 0.2328125, 0.434375, 0.365625, 0.4734375, 0.5578125, 0.19375, 0.3484375, 0.19375, 0.7734375, 0.503125, 0.4171875, 0.5453125, 0.45, 0.6046875, 0.4703125, 0.5984375, 0.55625, 0.503125, 0.5546875, 0.20625, 0.2, 0.5625, 0.5546875, 0.546875, 0.403125, 0.70625, 0.734375, 0.7078125, 0.64375, 0.85, 0.753125, 0.75, 0.6484375, 1.0765625, 0.44375, 0.5359375, 0.8359375, 0.653125, 1.0109375, 1.1515625, 0.6796875, 0.6984375, 1.0625, 0.8234375, 0.5125, 0.9234375, 0.8546875, 0.70625, 0.9109375, 0.7421875, 0.715625, 0.6015625, 0.4640625, 0.3359375, 0.4109375, 0.5421875, 0.5421875, 0.4328125, 0.5125, 0.5, 0.3859375, 0.7375, 0.359375, 0.75625, 0.540625, 0.5328125, 0.3203125, 0.5296875, 0.5015625, 0.484375, 0.7890625, 0.5640625, 0.4203125, 0.703125, 0.471875, 0.4734375, 0.35, 0.4125, 0.5640625, 0.471875, 0.6484375, 0.5296875, 0.575, 0.4140625, 0.415625, 0.20625, 0.3796875, 0.5421875],\n avg: 0.5604440789473684\n },\n fantasy: {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.215625, 0.2625, 0.3265625, 0.6109375, 0.534375, 0.7625, 0.7828125, 0.2, 0.4359375, 0.4359375, 0.3765625, 0.5109375, 0.2796875, 0.4609375, 0.2796875, 0.5296875, 0.6640625, 0.253125, 0.521875, 0.4765625, 0.6640625, 0.490625, 0.528125, 0.5546875, 0.496875, 0.5421875, 0.2796875, 0.2796875, 0.5625, 0.4609375, 0.5625, 0.4828125, 0.609375, 0.740625, 0.7234375, 0.740625, 0.8265625, 0.7234375, 0.6171875, 0.7359375, 0.765625, 0.240625, 0.5453125, 0.715625, 0.6078125, 0.8640625, 0.653125, 0.9125, 0.6484375, 0.946875, 0.6921875, 0.653125, 0.6953125, 0.8015625, 0.58125, 0.784375, 0.671875, 0.6265625, 0.690625, 0.4359375, 0.5296875, 0.4359375, 0.53125, 0.5, 0.2875, 0.5375, 0.603125, 0.4984375, 0.60625, 0.53125, 0.434375, 0.6421875, 0.56875, 0.209375, 0.4671875, 0.5484375, 0.2203125, 0.709375, 0.55, 0.5984375, 0.6140625, 0.5765625, 0.40625, 0.4734375, 0.3734375, 0.559375, 0.4421875, 0.6421875, 0.4890625, 0.578125, 0.4484375, 0.2546875, 0.2203125, 0.2546875, 0.55],\n avg: 0.536496710526316\n },\n Geneva: {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.3328125, 0.3046875, 0.5, 0.6671875, 0.6671875, 0.90625, 0.728125, 0.3046875, 0.446875, 0.446875, 0.5078125, 0.6671875, 0.3046875, 0.3796875, 0.3046875, 0.5390625, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.6671875, 0.3046875, 0.3046875, 0.6671875, 0.6671875, 0.6671875, 0.56875, 0.871875, 0.728125, 0.6375, 0.6515625, 0.7015625, 0.5765625, 0.5546875, 0.675, 0.690625, 0.2421875, 0.4921875, 0.6640625, 0.584375, 0.7890625, 0.709375, 0.7359375, 0.584375, 0.78125, 0.60625, 0.60625, 0.640625, 0.6671875, 0.728125, 0.946875, 0.6109375, 0.6109375, 0.5765625, 0.446875, 0.5390625, 0.446875, 0.6671875, 0.6671875, 0.5921875, 0.5546875, 0.6109375, 0.546875, 0.603125, 0.5765625, 0.390625, 0.6109375, 0.584375, 0.2359375, 0.334375, 0.5390625, 0.2359375, 0.8953125, 0.584375, 0.60625, 0.603125, 0.603125, 0.3875, 0.509375, 0.44375, 0.584375, 0.565625, 0.78125, 0.53125, 0.571875, 0.5546875, 0.4515625, 0.246875, 0.4515625, 0.6671875],\n avg: 0.5762664473684211\n },\n Georgia: {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2421875, 0.33125, 0.4125, 0.64375, 0.6109375, 0.81875, 0.7109375, 0.215625, 0.375, 0.375, 0.4734375, 0.64375, 0.2703125, 0.375, 0.2703125, 0.46875, 0.6140625, 0.4296875, 0.559375, 0.553125, 0.565625, 0.5296875, 0.5671875, 0.503125, 0.596875, 0.5671875, 0.3125, 0.3125, 0.64375, 0.64375, 0.64375, 0.4796875, 0.9296875, 0.715625, 0.6546875, 0.6421875, 0.75, 0.6546875, 0.6, 0.7265625, 0.815625, 0.390625, 0.51875, 0.7203125, 0.6046875, 0.928125, 0.7671875, 0.7453125, 0.6109375, 0.7453125, 0.7234375, 0.5625, 0.61875, 0.7578125, 0.70625, 0.99375, 0.7125, 0.6640625, 0.6015625, 0.375, 0.46875, 0.375, 0.64375, 0.65, 0.5, 0.5046875, 0.56875, 0.4546875, 0.575, 0.484375, 0.39375, 0.509375, 0.5828125, 0.29375, 0.3671875, 0.546875, 0.2875, 0.88125, 0.5921875, 0.5390625, 0.571875, 0.5640625, 0.4109375, 0.4328125, 0.3453125, 0.5765625, 0.5203125, 0.75625, 0.50625, 0.5171875, 0.4453125, 0.43125, 0.375, 0.43125, 0.64375],\n avg: 0.5551809210526316\n },\n \"Gill Sans\": {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2765625, 0.271875, 0.3546875, 0.584375, 0.5421875, 0.6765625, 0.625, 0.1890625, 0.3234375, 0.3234375, 0.4171875, 0.584375, 0.2203125, 0.3234375, 0.2203125, 0.28125, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.2203125, 0.2296875, 0.584375, 0.584375, 0.584375, 0.334375, 1.0109375, 0.6671875, 0.5640625, 0.709375, 0.75, 0.5, 0.4703125, 0.740625, 0.7296875, 0.25, 0.3125, 0.65625, 0.490625, 0.78125, 0.78125, 0.8234375, 0.5109375, 0.8234375, 0.6046875, 0.459375, 0.6046875, 0.709375, 0.6046875, 1.0421875, 0.709375, 0.6046875, 0.646875, 0.334375, 0.28125, 0.334375, 0.4703125, 0.5828125, 0.334375, 0.428125, 0.5, 0.4390625, 0.5109375, 0.4796875, 0.296875, 0.428125, 0.5, 0.2203125, 0.2265625, 0.5, 0.2203125, 0.771875, 0.5, 0.553125, 0.5, 0.5, 0.3984375, 0.3859375, 0.334375, 0.5, 0.4390625, 0.7203125, 0.5, 0.4390625, 0.4171875, 0.334375, 0.2609375, 0.334375, 0.584375],\n avg: 0.4933717105263159\n },\n Helvetica: {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2796875, 0.2765625, 0.3546875, 0.5546875, 0.5546875, 0.8890625, 0.665625, 0.190625, 0.3328125, 0.3328125, 0.3890625, 0.5828125, 0.2765625, 0.3328125, 0.2765625, 0.3015625, 0.5546875, 0.5546875, 0.5546875, 0.5546875, 0.5546875, 0.5546875, 0.5546875, 0.5546875, 0.5546875, 0.5546875, 0.2765625, 0.2765625, 0.584375, 0.5828125, 0.584375, 0.5546875, 1.0140625, 0.665625, 0.665625, 0.721875, 0.721875, 0.665625, 0.609375, 0.7765625, 0.721875, 0.2765625, 0.5, 0.665625, 0.5546875, 0.8328125, 0.721875, 0.7765625, 0.665625, 0.7765625, 0.721875, 0.665625, 0.609375, 0.721875, 0.665625, 0.94375, 0.665625, 0.665625, 0.609375, 0.2765625, 0.3546875, 0.2765625, 0.4765625, 0.5546875, 0.3328125, 0.5546875, 0.5546875, 0.5, 0.5546875, 0.5546875, 0.2765625, 0.5546875, 0.5546875, 0.221875, 0.240625, 0.5, 0.221875, 0.8328125, 0.5546875, 0.5546875, 0.5546875, 0.5546875, 0.3328125, 0.5, 0.2765625, 0.5546875, 0.5, 0.721875, 0.5, 0.5, 0.5, 0.3546875, 0.259375, 0.353125, 0.5890625],\n avg: 0.5279276315789471\n },\n \"Helvetica Neue\": {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.278125, 0.259375, 0.4265625, 0.55625, 0.55625, 1, 0.6453125, 0.278125, 0.2703125, 0.26875, 0.353125, 0.6, 0.278125, 0.3890625, 0.278125, 0.36875, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.278125, 0.278125, 0.6, 0.6, 0.6, 0.55625, 0.8, 0.6625, 0.6859375, 0.7234375, 0.7046875, 0.6125, 0.575, 0.759375, 0.7234375, 0.259375, 0.5203125, 0.6703125, 0.55625, 0.871875, 0.7234375, 0.7609375, 0.6484375, 0.7609375, 0.6859375, 0.6484375, 0.575, 0.7234375, 0.6140625, 0.9265625, 0.6125, 0.6484375, 0.6125, 0.259375, 0.36875, 0.259375, 0.6, 0.5, 0.25625, 0.5375, 0.59375, 0.5375, 0.59375, 0.5375, 0.2984375, 0.575, 0.55625, 0.2234375, 0.2375, 0.5203125, 0.2234375, 0.853125, 0.55625, 0.575, 0.59375, 0.59375, 0.334375, 0.5, 0.315625, 0.55625, 0.5, 0.759375, 0.51875, 0.5, 0.48125, 0.334375, 0.2234375, 0.334375, 0.6],\n avg: 0.5279440789473684\n },\n \"Hoefler Text\": {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2359375, 0.2234375, 0.3921875, 0.7125, 0.49375, 0.8859375, 0.771875, 0.2125, 0.3078125, 0.309375, 0.375, 0.4234375, 0.234375, 0.3125, 0.234375, 0.3, 0.5828125, 0.365625, 0.434375, 0.3921875, 0.5234375, 0.3984375, 0.5125, 0.4328125, 0.46875, 0.5125, 0.234375, 0.234375, 0.515625, 0.4234375, 0.515625, 0.340625, 0.7609375, 0.7359375, 0.6359375, 0.721875, 0.8125, 0.6375, 0.5875, 0.8078125, 0.853125, 0.4296875, 0.503125, 0.78125, 0.609375, 0.9609375, 0.8515625, 0.8140625, 0.6125, 0.8140625, 0.71875, 0.49375, 0.7125, 0.76875, 0.771875, 1.125, 0.7765625, 0.7734375, 0.65625, 0.321875, 0.3078125, 0.321875, 0.3546875, 0.5, 0.3375, 0.446875, 0.5359375, 0.45, 0.5296875, 0.4546875, 0.425, 0.4921875, 0.54375, 0.2671875, 0.240625, 0.5390625, 0.25, 0.815625, 0.5375, 0.5234375, 0.5390625, 0.5421875, 0.365625, 0.36875, 0.35625, 0.5171875, 0.5015625, 0.75, 0.5, 0.509375, 0.44375, 0.2421875, 0.14375, 0.2421875, 0.35],\n avg: 0.5116447368421051\n },\n \"Montserrat\": {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2625, 0.2609375, 0.3734375, 0.696875, 0.615625, 0.8296875, 0.6703125, 0.203125, 0.3296875, 0.3296875, 0.3875, 0.575, 0.2125, 0.3828125, 0.2125, 0.3953125, 0.6625, 0.3625, 0.56875, 0.5640625, 0.6625, 0.5671875, 0.609375, 0.5890625, 0.6390625, 0.609375, 0.2125, 0.2125, 0.575, 0.575, 0.575, 0.5671875, 1.034375, 0.7171875, 0.7546875, 0.7203125, 0.8265625, 0.6703125, 0.634375, 0.7734375, 0.8140625, 0.303125, 0.5078125, 0.7125, 0.5890625, 0.95625, 0.8140625, 0.8390625, 0.71875, 0.8390625, 0.7234375, 0.615625, 0.575, 0.7921875, 0.6984375, 1.1125, 0.65625, 0.6359375, 0.6515625, 0.31875, 0.396875, 0.31875, 0.5765625, 0.5, 0.6, 0.590625, 0.678125, 0.5640625, 0.678125, 0.6046875, 0.375, 0.6875, 0.678125, 0.2703125, 0.365625, 0.6015625, 0.2703125, 1.0625, 0.678125, 0.628125, 0.678125, 0.678125, 0.4015625, 0.4890625, 0.40625, 0.6734375, 0.5421875, 0.8796875, 0.534375, 0.5671875, 0.5125, 0.334375, 0.2953125, 0.334375, 0.575],\n avg: 0.571792763157895\n },\n monospace: {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.5984375, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6078125, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.61875, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.615625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6140625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625, 0.6015625],\n avg: 0.6020559210526316\n },\n Overpass: {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2296875, 0.2765625, 0.4203125, 0.68125, 0.584375, 0.8515625, 0.7015625, 0.2203125, 0.3453125, 0.3453125, 0.53125, 0.63125, 0.2234375, 0.3953125, 0.2234375, 0.509375, 0.65, 0.4046875, 0.6171875, 0.60625, 0.6484375, 0.60625, 0.6015625, 0.5375, 0.615625, 0.6015625, 0.2234375, 0.2234375, 0.63125, 0.63125, 0.63125, 0.5015625, 0.8203125, 0.696875, 0.6671875, 0.65, 0.6859375, 0.6015625, 0.559375, 0.690625, 0.7078125, 0.2953125, 0.565625, 0.678125, 0.58125, 0.8046875, 0.7109375, 0.740625, 0.6421875, 0.740625, 0.6765625, 0.6046875, 0.590625, 0.696875, 0.6640625, 0.853125, 0.65, 0.6671875, 0.6625, 0.3734375, 0.509375, 0.3734375, 0.63125, 0.5125, 0.4, 0.5328125, 0.5625, 0.51875, 0.5625, 0.546875, 0.3359375, 0.5625, 0.565625, 0.25625, 0.3203125, 0.55, 0.265625, 0.85, 0.565625, 0.5671875, 0.5625, 0.5625, 0.4046875, 0.4765625, 0.3796875, 0.565625, 0.521875, 0.7265625, 0.53125, 0.5390625, 0.5125, 0.3671875, 0.275, 0.3671875, 0.63125],\n avg: 0.5430756578947369\n },\n Palatino: {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.25, 0.278125, 0.371875, 0.60625, 0.5, 0.840625, 0.778125, 0.209375, 0.334375, 0.334375, 0.390625, 0.60625, 0.2578125, 0.334375, 0.25, 0.60625, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.25, 0.25, 0.60625, 0.60625, 0.60625, 0.4453125, 0.7484375, 0.778125, 0.6109375, 0.709375, 0.775, 0.6109375, 0.55625, 0.7640625, 0.8328125, 0.3375, 0.346875, 0.7265625, 0.6109375, 0.946875, 0.83125, 0.7875, 0.6046875, 0.7875, 0.66875, 0.525, 0.6140625, 0.778125, 0.7234375, 1, 0.6671875, 0.6671875, 0.6671875, 0.334375, 0.60625, 0.334375, 0.60625, 0.5, 0.334375, 0.5, 0.565625, 0.4453125, 0.6109375, 0.4796875, 0.340625, 0.55625, 0.5828125, 0.2921875, 0.2671875, 0.5640625, 0.2921875, 0.8828125, 0.5828125, 0.546875, 0.6015625, 0.5609375, 0.3953125, 0.425, 0.3265625, 0.603125, 0.565625, 0.834375, 0.5171875, 0.55625, 0.5, 0.334375, 0.60625, 0.334375, 0.60625],\n avg: 0.5408552631578947\n },\n \"RedHatText\": {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2328125, 0.2203125, 0.35625, 0.6890625, 0.55, 0.7390625, 0.6703125, 0.2140625, 0.4015625, 0.4015625, 0.4546875, 0.53125, 0.2203125, 0.45625, 0.2203125, 0.515625, 0.6609375, 0.3078125, 0.5484375, 0.5875, 0.61875, 0.5703125, 0.6203125, 0.559375, 0.6140625, 0.6203125, 0.2203125, 0.2234375, 0.465625, 0.534375, 0.465625, 0.5125, 0.7671875, 0.6609375, 0.6703125, 0.7265625, 0.728125, 0.6203125, 0.6109375, 0.8, 0.73125, 0.253125, 0.6, 0.6125, 0.6078125, 0.8625, 0.7390625, 0.8109375, 0.6546875, 0.809375, 0.6484375, 0.6234375, 0.6171875, 0.7125, 0.6609375, 0.8984375, 0.6546875, 0.646875, 0.60625, 0.3625, 0.5203125, 0.3625, 0.540625, 0.4609375, 0.5234375, 0.5265625, 0.584375, 0.509375, 0.5828125, 0.5578125, 0.3703125, 0.5828125, 0.553125, 0.2234375, 0.24375, 0.4890625, 0.2234375, 0.8453125, 0.553125, 0.58125, 0.584375, 0.5828125, 0.353125, 0.453125, 0.378125, 0.553125, 0.5015625, 0.6984375, 0.4875, 0.4984375, 0.459375, 0.3953125, 0.2921875, 0.3953125, 0.58125],\n avg: 0.5341940789473685\n },\n \"sans-serif\": {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.278125, 0.278125, 0.35625, 0.55625, 0.55625, 0.890625, 0.6671875, 0.1921875, 0.334375, 0.334375, 0.390625, 0.584375, 0.278125, 0.334375, 0.278125, 0.303125, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.55625, 0.278125, 0.278125, 0.5859375, 0.584375, 0.5859375, 0.55625, 1.015625, 0.6671875, 0.6671875, 0.7234375, 0.7234375, 0.6671875, 0.6109375, 0.778125, 0.7234375, 0.278125, 0.5, 0.6671875, 0.55625, 0.834375, 0.7234375, 0.778125, 0.6671875, 0.778125, 0.7234375, 0.6671875, 0.6109375, 0.7234375, 0.6671875, 0.9453125, 0.6671875, 0.6671875, 0.6109375, 0.278125, 0.35625, 0.278125, 0.478125, 0.55625, 0.334375, 0.55625, 0.55625, 0.5, 0.55625, 0.55625, 0.278125, 0.55625, 0.55625, 0.2234375, 0.2421875, 0.5, 0.2234375, 0.834375, 0.55625, 0.55625, 0.55625, 0.55625, 0.334375, 0.5, 0.278125, 0.55625, 0.5, 0.7234375, 0.5, 0.5, 0.5, 0.35625, 0.2609375, 0.3546875, 0.590625],\n avg: 0.5293256578947368\n },\n Seravek: {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.215625, 0.296875, 0.4171875, 0.6734375, 0.4953125, 0.9125, 0.740625, 0.2421875, 0.3375, 0.3375, 0.409375, 0.60625, 0.2609375, 0.35625, 0.25625, 0.41875, 0.5921875, 0.3515625, 0.475, 0.4875, 0.5375, 0.509375, 0.5484375, 0.4546875, 0.5421875, 0.5484375, 0.25625, 0.2546875, 0.5875, 0.6171875, 0.5875, 0.4578125, 0.8140625, 0.6765625, 0.5703125, 0.6109375, 0.684375, 0.5109375, 0.4953125, 0.678125, 0.6859375, 0.2625, 0.2625, 0.5859375, 0.4734375, 0.846875, 0.709375, 0.740625, 0.509375, 0.740625, 0.584375, 0.5015625, 0.528125, 0.675, 0.5953125, 0.9453125, 0.596875, 0.540625, 0.540625, 0.359375, 0.4203125, 0.359375, 0.5109375, 0.421875, 0.4046875, 0.5015625, 0.5421875, 0.446875, 0.5453125, 0.484375, 0.38125, 0.5140625, 0.5546875, 0.240625, 0.2640625, 0.490625, 0.2765625, 0.8625, 0.5546875, 0.546875, 0.5453125, 0.5453125, 0.3625, 0.41875, 0.3890625, 0.5453125, 0.4703125, 0.7546875, 0.4921875, 0.4609375, 0.453125, 0.4015625, 0.2640625, 0.4015625, 0.58125],\n avg: 0.5044078947368421\n },\n serif: {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2484375, 0.334375, 0.409375, 0.5, 0.5, 0.834375, 0.778125, 0.18125, 0.334375, 0.334375, 0.5, 0.5640625, 0.25, 0.334375, 0.25, 0.278125, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.278125, 0.278125, 0.5640625, 0.5640625, 0.5640625, 0.4453125, 0.921875, 0.7234375, 0.6671875, 0.6671875, 0.7234375, 0.6109375, 0.55625, 0.7234375, 0.7234375, 0.334375, 0.390625, 0.7234375, 0.6109375, 0.890625, 0.7234375, 0.7234375, 0.55625, 0.7234375, 0.6671875, 0.55625, 0.6109375, 0.7234375, 0.7234375, 0.9453125, 0.7234375, 0.7234375, 0.6109375, 0.334375, 0.340625, 0.334375, 0.4703125, 0.5, 0.3453125, 0.4453125, 0.5, 0.4453125, 0.5, 0.4453125, 0.3828125, 0.5, 0.5, 0.278125, 0.3359375, 0.5, 0.278125, 0.778125, 0.5, 0.5, 0.5, 0.5, 0.3375, 0.390625, 0.2796875, 0.5, 0.5, 0.7234375, 0.5, 0.5, 0.4453125, 0.48125, 0.2015625, 0.48125, 0.5421875],\n avg: 0.5126315789473684\n },\n Tahoma: {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.3109375, 0.3328125, 0.4015625, 0.728125, 0.546875, 0.9765625, 0.70625, 0.2109375, 0.3828125, 0.3828125, 0.546875, 0.728125, 0.303125, 0.3640625, 0.303125, 0.3953125, 0.546875, 0.546875, 0.546875, 0.546875, 0.546875, 0.546875, 0.546875, 0.546875, 0.546875, 0.546875, 0.3546875, 0.3546875, 0.728125, 0.728125, 0.728125, 0.475, 0.909375, 0.6109375, 0.590625, 0.6015625, 0.6796875, 0.5625, 0.521875, 0.66875, 0.6765625, 0.3734375, 0.4171875, 0.6046875, 0.4984375, 0.771875, 0.66875, 0.7078125, 0.5515625, 0.7078125, 0.6375, 0.5578125, 0.5875, 0.65625, 0.60625, 0.903125, 0.58125, 0.5890625, 0.559375, 0.3828125, 0.39375, 0.3828125, 0.728125, 0.5625, 0.546875, 0.525, 0.553125, 0.4625, 0.553125, 0.5265625, 0.3546875, 0.553125, 0.5578125, 0.2296875, 0.328125, 0.51875, 0.2296875, 0.840625, 0.5578125, 0.54375, 0.553125, 0.553125, 0.3609375, 0.446875, 0.3359375, 0.5578125, 0.4984375, 0.7421875, 0.4953125, 0.4984375, 0.4453125, 0.48125, 0.3828125, 0.48125, 0.728125],\n avg: 0.5384374999999998\n },\n \"Times New Roman\": {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2484375, 0.334375, 0.409375, 0.5, 0.5, 0.834375, 0.778125, 0.18125, 0.334375, 0.334375, 0.5, 0.5640625, 0.25, 0.334375, 0.25, 0.28125, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.278125, 0.278125, 0.5640625, 0.5640625, 0.5640625, 0.4453125, 0.921875, 0.7234375, 0.6671875, 0.6671875, 0.7234375, 0.6109375, 0.55625, 0.7234375, 0.7234375, 0.334375, 0.390625, 0.73125, 0.6109375, 0.890625, 0.7375, 0.7234375, 0.55625, 0.7234375, 0.6765625, 0.55625, 0.6109375, 0.7234375, 0.7234375, 0.9453125, 0.7234375, 0.7234375, 0.6109375, 0.334375, 0.28125, 0.334375, 0.4703125, 0.51875, 0.334375, 0.4453125, 0.503125, 0.4453125, 0.503125, 0.4453125, 0.4359375, 0.5, 0.5, 0.278125, 0.35625, 0.50625, 0.278125, 0.778125, 0.5, 0.5, 0.5046875, 0.5, 0.340625, 0.390625, 0.2796875, 0.5, 0.5, 0.7234375, 0.5, 0.5, 0.4453125, 0.48125, 0.2015625, 0.48125, 0.5421875],\n avg: 0.5134375\n },\n \"Trebuchet MS\": {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.3015625, 0.3671875, 0.325, 0.53125, 0.525, 0.6015625, 0.70625, 0.1609375, 0.3671875, 0.3671875, 0.3671875, 0.525, 0.3671875, 0.3671875, 0.3671875, 0.525, 0.525, 0.525, 0.525, 0.525, 0.525, 0.525, 0.525, 0.525, 0.525, 0.525, 0.3671875, 0.3671875, 0.525, 0.525, 0.525, 0.3671875, 0.771875, 0.590625, 0.5671875, 0.5984375, 0.6140625, 0.5359375, 0.525, 0.6765625, 0.6546875, 0.2796875, 0.4765625, 0.5765625, 0.5078125, 0.7109375, 0.6390625, 0.675, 0.5578125, 0.7421875, 0.5828125, 0.48125, 0.58125, 0.6484375, 0.5875, 0.853125, 0.5578125, 0.5703125, 0.5515625, 0.3671875, 0.3578125, 0.3671875, 0.525, 0.53125, 0.525, 0.5265625, 0.5578125, 0.4953125, 0.5578125, 0.546875, 0.375, 0.503125, 0.546875, 0.2859375, 0.3671875, 0.5046875, 0.2953125, 0.83125, 0.546875, 0.5375, 0.5578125, 0.5578125, 0.3890625, 0.40625, 0.396875, 0.546875, 0.490625, 0.7453125, 0.5015625, 0.49375, 0.475, 0.3671875, 0.525, 0.3671875, 0.525],\n avg: 0.5085197368421052\n },\n Verdana: {\n widths: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.35, 0.39375, 0.459375, 0.81875, 0.6359375, 1.0765625, 0.759375, 0.26875, 0.4546875, 0.4546875, 0.6359375, 0.81875, 0.3640625, 0.4546875, 0.3640625, 0.4703125, 0.6359375, 0.6359375, 0.6359375, 0.6359375, 0.6359375, 0.6359375, 0.6359375, 0.6359375, 0.6359375, 0.6359375, 0.4546875, 0.4546875, 0.81875, 0.81875, 0.81875, 0.546875, 1, 0.684375, 0.6859375, 0.6984375, 0.771875, 0.6328125, 0.575, 0.7765625, 0.7515625, 0.421875, 0.4546875, 0.69375, 0.5578125, 0.84375, 0.7484375, 0.7875, 0.603125, 0.7875, 0.7, 0.684375, 0.6171875, 0.7328125, 0.684375, 0.9890625, 0.6859375, 0.615625, 0.6859375, 0.4546875, 0.46875, 0.4546875, 0.81875, 0.6421875, 0.6359375, 0.6015625, 0.6234375, 0.521875, 0.6234375, 0.596875, 0.384375, 0.6234375, 0.6328125, 0.275, 0.3765625, 0.5921875, 0.275, 0.9734375, 0.6328125, 0.6078125, 0.6234375, 0.6234375, 0.43125, 0.521875, 0.3953125, 0.6328125, 0.5921875, 0.81875, 0.5921875, 0.5921875, 0.5265625, 0.6359375, 0.4546875, 0.6359375, 0.81875],\n avg: 0.6171875000000003\n }\n}; // https://developer.mozilla.org/en/docs/Web/CSS/length\n// Absolute sizes in pixels for obsolete measurement units.\n\nvar absoluteMeasurementUnitsToPixels = {\n mm: 3.8,\n sm: 38,\n pt: 1.33,\n pc: 16,\n in: 96,\n px: 1\n};\nvar relativeMeasurementUnitsCoef = {\n em: 1,\n ex: 0.5\n};\nvar coefficients = {\n heightOverlapCoef: 1.05,\n // Coefficient for height value to prevent overlap.\n lineCapitalCoef: 1.15 // Coefficient for height value. Reserve space for capital chars.\n\n};\nvar defaultStyle = {\n lineHeight: 1,\n letterSpacing: \"0px\",\n fontSize: 0,\n angle: 0,\n fontFamily: \"\"\n};\n\nvar _degreeToRadian = function (angle) {\n return angle * Math.PI / 180;\n};\n\nvar _getFontData = function (fontFamily) {\n var possibleFonts = fontFamily.split(\",\").map(function (f) {\n return f.replace(/'|\"/g, \"\");\n });\n var fontMatch = possibleFonts.find(function (f) {\n return fonts[f];\n }) || \"Helvetica\";\n return fonts[fontMatch];\n};\n\nvar _splitToLines = function (text) {\n return Array.isArray(text) ? text : text.toString().split(/\\r\\n|\\r|\\n/g);\n};\n\nvar _getSizeWithRotate = function (axisSize, dependentSize, angle) {\n var angleInRadian = _degreeToRadian(angle);\n\n return Math.abs(Math.cos(angleInRadian) * axisSize) + Math.abs(Math.sin(angleInRadian) * dependentSize);\n};\n/**\n * Convert length-type parameters from specific measurement units to pixels\n * @param {string} length Css length string value.\n * @param {number} fontSize Current text font-size.\n * @returns {number} Approximate Css length in pixels.\n */\n\n\nexport var convertLengthToPixels = function (length, fontSize) {\n var _length$match;\n\n var attribute = (_length$match = length.match(/[a-zA-Z%]+/)) === null || _length$match === void 0 ? void 0 : _length$match[0];\n var value = Number(length.match(/[0-9.,]+/));\n var result;\n\n if (!attribute) {\n result = value || 0;\n } else if (absoluteMeasurementUnitsToPixels.hasOwnProperty(attribute)) {\n result = value * absoluteMeasurementUnitsToPixels[attribute];\n } else if (relativeMeasurementUnitsCoef.hasOwnProperty(attribute)) {\n result = (fontSize ? value * fontSize : value * defaultStyle.fontSize) * relativeMeasurementUnitsCoef[attribute];\n } else {\n result = value;\n }\n\n return result;\n};\n\nvar _prepareParams = function (inputStyle, index) {\n var lineStyle = Array.isArray(inputStyle) ? inputStyle[index] : inputStyle;\n\n var style = _defaults({}, lineStyle, defaultStyle);\n\n return _assign({}, style, {\n fontFamily: style.fontFamily,\n letterSpacing: typeof style.letterSpacing === \"number\" ? style.letterSpacing : convertLengthToPixels(String(style.letterSpacing), style.fontSize),\n fontSize: typeof style.fontSize === \"number\" ? style.fontSize : convertLengthToPixels(String(style.fontSize))\n });\n};\n\nvar _approximateTextWidthInternal = function (text, style) {\n if (text === undefined || text === \"\" || text === null) {\n return 0;\n }\n\n var widths = _splitToLines(text).map(function (line, index) {\n var len = line.toString().length;\n\n var _prepareParams2 = _prepareParams(style, index),\n fontSize = _prepareParams2.fontSize,\n letterSpacing = _prepareParams2.letterSpacing,\n fontFamily = _prepareParams2.fontFamily;\n\n var fontData = _getFontData(fontFamily);\n\n var width = line.toString().split(\"\").map(function (c) {\n return c.charCodeAt(0) < fontData.widths.length ? fontData.widths[c.charCodeAt(0)] : fontData.avg;\n }).reduce(function (cur, acc) {\n return acc + cur;\n }, 0) * fontSize;\n return width + letterSpacing * Math.max(len - 1, 0);\n });\n\n return Math.max.apply(Math, _toConsumableArray(widths));\n};\n\nvar _approximateTextHeightInternal = function (text, style) {\n if (text === undefined || text === \"\" || text === null) {\n return 0;\n }\n\n return _splitToLines(text).reduce(function (total, line, index) {\n var lineStyle = _prepareParams(style, index);\n\n var containsCaps = line.toString().match(/[(A-Z)(0-9)]/);\n var height = containsCaps ? lineStyle.fontSize * coefficients.lineCapitalCoef : lineStyle.fontSize;\n return total + lineStyle.lineHeight * height;\n }, 0);\n};\n\nvar _approximateDimensionsInternal = function (text, style) {\n var angle = Array.isArray(style) ? style[0] && style[0].angle : style && style.angle;\n\n var height = _approximateTextHeightInternal(text, style);\n\n var width = _approximateTextWidthInternal(text, style);\n\n var widthWithRotate = angle ? _getSizeWithRotate(width, height, angle) : width;\n var heightWithRotate = angle ? _getSizeWithRotate(height, width, angle) : height;\n return {\n width: widthWithRotate,\n height: heightWithRotate * coefficients.heightOverlapCoef\n };\n};\n\nvar _getMeasurementContainer = _memoize(function () {\n var element = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\");\n element.setAttribute(\"xlink\", \"http://www.w3.org/1999/xlink\");\n var containerElement = document.createElementNS(\"http://www.w3.org/2000/svg\", \"text\");\n element.appendChild(containerElement);\n element.style.position = \"fixed\";\n element.style.top = \"-9999px\";\n element.style.left = \"-9999px\";\n document.body.appendChild(element);\n return containerElement;\n});\n\nvar styleToKeyComponent = function (style) {\n if (!style) {\n return \"null\";\n }\n\n return \"\".concat(style.angle, \":\").concat(style.fontFamily, \":\").concat(style.fontSize, \":\").concat(style.letterSpacing, \":\").concat(style.lineHeight);\n};\n\nvar _measureDimensionsInternal = _memoize(function (text, style) {\n var containerElement = _getMeasurementContainer();\n\n var lines = _splitToLines(text);\n\n var heightAcc = 0;\n\n for (var _ref of lines.entries()) {\n var _ref2 = _slicedToArray(_ref, 2);\n\n var i = _ref2[0];\n var line = _ref2[1];\n var textElement = document.createElementNS(\"http://www.w3.org/2000/svg\", \"tspan\");\n\n var params = _prepareParams(style, i);\n\n textElement.style.fontFamily = params.fontFamily;\n textElement.style.transform = \"rotate(\".concat(params.angle, \")\");\n textElement.style.fontSize = \"\".concat(params.fontSize, \"px\");\n textElement.style.lineHeight = params.lineHeight;\n textElement.style.fontFamily = params.fontFamily;\n textElement.style.letterSpacing = params.letterSpacing;\n textElement.textContent = line;\n textElement.setAttribute(\"x\", \"0\");\n textElement.setAttribute(\"y\", \"\".concat(heightAcc));\n heightAcc += params.lineHeight * params.fontSize;\n containerElement.appendChild(textElement);\n }\n\n var _containerElement$get = containerElement.getBoundingClientRect(),\n width = _containerElement$get.width,\n height = _containerElement$get.height;\n\n containerElement.innerHTML = \"\";\n return {\n width: width,\n height: height\n };\n}, function (text, style) {\n var totalText = Array.isArray(text) ? text.join() : text;\n var totalStyle = Array.isArray(style) ? style.map(styleToKeyComponent).join() : styleToKeyComponent(style);\n return \"\".concat(totalText, \"::\").concat(totalStyle);\n});\n\n// Stubbable implementation.\nexport var _approximateTextSizeInternal = {\n impl: function (text, style) {\n var __debugForceApproximate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n // Attempt to first measure the element in DOM. If there is no DOM, fallback\n // to the less accurate approximation algorithm.\n var isClient = typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.document.createElement !== \"undefined\";\n\n if (!isClient || __debugForceApproximate) {\n return _approximateDimensionsInternal(text, style);\n }\n\n return _measureDimensionsInternal(text, style);\n }\n};\n/**\n * Predict text size by font params.\n * @param {string|string[]} text Content for width calculation.\n * @param {Object} style Text styles, ,fontFamily, fontSize, etc.\n * @param {string} style.fontFamily Text fontFamily.\n * @param {(number|string)} style.fontSize Text fontSize.\n * @param {number} style.angle Text rotate angle.\n * @param {string} style.letterSpacing Text letterSpacing(space between letters).\n * @param {number} style.lineHeight Line height coefficient.\n * @returns {number} Approximate text label height.\n */\n\nexport var approximateTextSize = function (text, style) {\n return _approximateTextSizeInternal.impl(text, style);\n};","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","function _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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nimport { timer, now } from \"victory-vendor/d3-timer\";\n\nvar Timer = /*#__PURE__*/function () {\n function Timer() {\n var _this = this;\n\n _classCallCheck(this, Timer);\n\n this.shouldAnimate = void 0;\n this.subscribers = void 0;\n this.activeSubscriptions = void 0;\n this.timer = void 0;\n\n this.loop = function () {\n _this.subscribers.forEach(function (s) {\n s.callback(now() - s.startTime, s.duration);\n });\n };\n\n this.shouldAnimate = true;\n this.subscribers = [];\n this.timer = null;\n this.activeSubscriptions = 0;\n }\n\n _createClass(Timer, [{\n key: \"bypassAnimation\",\n value: function bypassAnimation() {\n this.shouldAnimate = false;\n }\n }, {\n key: \"resumeAnimation\",\n value: function resumeAnimation() {\n this.shouldAnimate = true;\n }\n }, {\n key: \"start\",\n value: function start() {\n if (!this.timer) {\n this.timer = timer(this.loop);\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.timer) {\n this.timer.stop();\n this.timer = null;\n }\n }\n }, {\n key: \"subscribe\",\n value: function subscribe(callback, duration) {\n duration = this.shouldAnimate ? duration : 0;\n var subscriptionID = this.subscribers.push({\n startTime: now(),\n callback: callback,\n duration: duration\n });\n this.activeSubscriptions++;\n this.start();\n return subscriptionID;\n }\n }, {\n key: \"unsubscribe\",\n value: function unsubscribe(id) {\n if (id !== null && this.subscribers[id - 1]) {\n delete this.subscribers[id - 1];\n this.activeSubscriptions--;\n }\n\n if (this.activeSubscriptions === 0) {\n this.stop();\n }\n }\n }]);\n\n return Timer;\n}();\n\nexport { Timer as default };","import React from \"react\";\nimport Timer from \"./timer\";\n/**\n * The React context object consumers may use to access or override the global\n * timer.\n */\n\nvar TimerContext = /*#__PURE__*/React.createContext({\n transitionTimer: new Timer(),\n animationTimer: new Timer()\n});\nTimerContext.displayName = \"TimerContext\";\nexport default TimerContext;","import _keys from \"lodash/keys\";\nimport _identity from \"lodash/identity\";\nimport _defaults from \"lodash/defaults\";\nimport _assign from \"lodash/assign\";\nimport React from \"react\";\n\nfunction getDatumKey(datum, idx) {\n return (datum.key || idx).toString();\n}\n\nfunction getKeyedData(data) {\n return data.reduce(function (keyedData, datum, idx) {\n var key = getDatumKey(datum, idx);\n keyedData[key] = datum;\n return keyedData;\n }, {});\n}\n\nfunction getKeyedDataDifference(a, b) {\n var hasDifference = false;\n\n var difference = _keys(a).reduce(function (_difference, key) {\n if (!(key in b)) {\n hasDifference = true;\n _difference[key] = true;\n }\n\n return _difference;\n }, {});\n\n return hasDifference && difference;\n}\n/**\n * Calculate which data-points exist in oldData and not nextData -\n * these are the `exiting` data-points. Also calculate which\n * data-points exist in nextData and not oldData - these are the\n * `entering` data-points.\n *\n * @param {Array} oldData this.props.data Array\n * @param {Array} nextData this.props.data Array\n *\n * @return {Object} Object with `entering` and `exiting` properties.\n * entering[datum.key] will be true if the data is\n * entering, and similarly for `exiting`.\n */\n\n\nfunction getNodeTransitions(oldData, nextData) {\n var oldDataKeyed = oldData && getKeyedData(oldData);\n var nextDataKeyed = nextData && getKeyedData(nextData);\n return {\n entering: oldDataKeyed && getKeyedDataDifference(nextDataKeyed, oldDataKeyed),\n exiting: nextDataKeyed && getKeyedDataDifference(oldDataKeyed, nextDataKeyed)\n };\n}\n\nfunction getChildData(child) {\n if (child.type && child.type.getData) {\n return child.type.getData(child.props);\n }\n\n return child.props && child.props.data || false;\n}\n/**\n * If a parent component has animation enabled, calculate the transitions\n * for any data of any child component that supports data transitions.\n * Data transitions are defined as any two datasets where data nodes exist\n * in the first set and not the second, in the second and not the first,\n * or both.\n *\n * @param {Children} oldChildren this.props.children from old props\n * @param {Children} nextChildren this.props.children from next props\n *\n * @return {Object} Object with the following properties:\n * - nodesWillExit\n * - nodesWillEnter\n * - childrenTransitions\n * - nodesShouldEnter\n */\n\n\nexport function getInitialTransitionState(oldChildren, nextChildren) {\n var nodesWillExit = false;\n var nodesWillEnter = false;\n\n var getTransition = function (oldChild, newChild) {\n if (!newChild || oldChild.type !== newChild.type) {\n return {};\n }\n\n var _ref = getNodeTransitions(getChildData(oldChild), getChildData(newChild)) || {},\n entering = _ref.entering,\n exiting = _ref.exiting;\n\n nodesWillExit = nodesWillExit || !!exiting;\n nodesWillEnter = nodesWillEnter || !!entering;\n return {\n entering: entering || false,\n exiting: exiting || false\n };\n };\n\n var getTransitionsFromChildren = function (old, next) {\n return old.map(function (child, idx) {\n if (child && child.props && child.props.children && next[idx]) {\n return getTransitionsFromChildren(React.Children.toArray(old[idx].props.children), React.Children.toArray(next[idx].props.children));\n } // get Transition entering and exiting nodes\n\n\n return getTransition(child, next[idx]);\n });\n };\n\n var childrenTransitions = getTransitionsFromChildren(React.Children.toArray(oldChildren), React.Children.toArray(nextChildren));\n return {\n nodesWillExit: nodesWillExit,\n nodesWillEnter: nodesWillEnter,\n childrenTransitions: childrenTransitions,\n // TODO: This may need to be refactored for the following situation.\n // The component receives new props, and the data provided\n // is a perfect match for the previous data and domain except\n // for new nodes. In this case, we wouldn't want a delay before\n // the new nodes appear.\n nodesShouldEnter: false\n };\n}\n\nfunction getInitialChildProps(animate, data) {\n var after = animate.onEnter && animate.onEnter.after ? animate.onEnter.after : _identity;\n return {\n data: data.map(function (datum, idx) {\n return _assign({}, datum, after(datum, idx, data));\n })\n };\n} // eslint-disable-next-line max-params\n\n\nfunction getChildBeforeLoad(animate, child, data, cb) {\n animate = _assign({}, animate, {\n onEnd: cb\n });\n\n if (animate && animate.onLoad && !animate.onLoad.duration) {\n return {\n animate: animate,\n data: data\n };\n }\n\n var before = animate.onLoad && animate.onLoad.before ? animate.onLoad.before : _identity; // If nodes need to exit, transform them with the provided onLoad.before function.\n\n data = data.map(function (datum, idx) {\n return _assign({}, datum, before(datum, idx, data));\n });\n return {\n animate: animate,\n data: data,\n clipWidth: 0\n };\n} // eslint-disable-next-line max-params\n\n\nfunction getChildOnLoad(animate, data, cb) {\n animate = _assign({}, animate, {\n onEnd: cb\n });\n\n if (animate && animate.onLoad && !animate.onLoad.duration) {\n return {\n animate: animate,\n data: data\n };\n }\n\n var after = animate.onLoad && animate.onLoad.after ? animate.onLoad.after : _identity; // If nodes need to exit, transform them with the provided onLoad.after function.\n\n data = data.map(function (datum, idx) {\n return _assign({}, datum, after(datum, idx, data));\n });\n return {\n animate: animate,\n data: data\n };\n} // eslint-disable-next-line max-params, max-len\n\n\nfunction getChildPropsOnExit(animate, child, data, exitingNodes, cb) {\n // Whether or not _this_ child has exiting nodes, we want the exit-\n // transition for all children to have the same duration, delay, etc.\n var onExit = animate && animate.onExit;\n animate = _assign({}, animate, onExit);\n\n if (exitingNodes) {\n // After the exit transition occurs, trigger the animations for\n // nodes that are neither exiting nor entering.\n animate.onEnd = cb;\n var before = animate.onExit && animate.onExit.before ? animate.onExit.before : _identity; // If nodes need to exit, transform them with the provided onExit.before function.\n\n data = data.map(function (datum, idx) {\n var key = (datum.key || idx).toString();\n return exitingNodes[key] ? _assign({}, datum, before(datum, idx, data)) : datum;\n });\n }\n\n return {\n animate: animate,\n data: data\n };\n} // eslint-disable-next-line max-params,max-len\n\n\nfunction getChildPropsBeforeEnter(animate, child, data, enteringNodes, cb) {\n if (enteringNodes) {\n // Perform a normal animation here, except - when it finishes - trigger\n // the transition for entering nodes.\n animate = _assign({}, animate, {\n onEnd: cb\n });\n var before = animate.onEnter && animate.onEnter.before ? animate.onEnter.before : _identity; // We want the entering nodes to be included in the transition target\n // domain. However, we may not want these nodes to be displayed initially,\n // so perform the `onEnter.before` transformation on each node.\n\n data = data.map(function (datum, idx) {\n var key = (datum.key || idx).toString();\n return enteringNodes[key] ? _assign({}, datum, before(datum, idx, data)) : datum;\n });\n }\n\n return {\n animate: animate,\n data: data\n };\n} // eslint-disable-next-line max-params, max-len\n\n\nfunction getChildPropsOnEnter(animate, data, enteringNodes, cb) {\n // Whether or not _this_ child has entering nodes, we want the entering-\n // transition for all children to have the same duration, delay, etc.\n var onEnter = animate && animate.onEnter;\n animate = _assign({}, animate, onEnter);\n\n if (enteringNodes) {\n // Old nodes have been transitioned to their new values, and the\n // domain should encompass the nodes that will now enter. So perform\n // the `onEnter.after` transformation on each node.\n animate.onEnd = cb;\n var after = animate.onEnter && animate.onEnter.after ? animate.onEnter.after : _identity;\n data = data.map(function (datum, idx) {\n var key = getDatumKey(datum, idx);\n return enteringNodes[key] ? _assign({}, datum, after(datum, idx, data)) : datum;\n });\n }\n\n return {\n animate: animate,\n data: data\n };\n}\n/**\n * getTransitionPropsFactory - putting the Java in JavaScript. This will return a\n * function that returns prop transformations for a child, given that child's props\n * and its index in the parent's children array.\n *\n * In particular, this will include an `animate` object that is set appropriately\n * so that each child will be synchronized for each stage of a transition\n * animation. It will also include a transformed `data` object, where each datum\n * is transformed by `animate.onExit` and `animate.onEnter` `before` and `after`\n * functions.\n *\n * @param {Object} props `this.props` for the parent component.\n * @param {Object} state `this.state` for the parent component.\n * @param {Function} setState Function that, when called, will `this.setState` on\n * the parent component with the provided object.\n *\n * @return {Function} Child-prop transformation function.\n */\n\n\nexport function getTransitionPropsFactory(props, state, setState) {\n var nodesWillExit = state && state.nodesWillExit;\n var nodesWillEnter = state && state.nodesWillEnter;\n var nodesShouldEnter = state && state.nodesShouldEnter;\n var nodesShouldLoad = state && state.nodesShouldLoad;\n var nodesDoneLoad = state && state.nodesDoneLoad;\n var childrenTransitions = state && state.childrenTransitions || [];\n var transitionDurations = {\n enter: props.animate && props.animate.onEnter && props.animate.onEnter.duration,\n exit: props.animate && props.animate.onExit && props.animate.onExit.duration,\n load: props.animate && props.animate.onLoad && props.animate.onLoad.duration,\n move: props.animate && props.animate.duration\n };\n\n var onLoad = function (child, data, animate) {\n if (nodesShouldLoad) {\n return getChildOnLoad(animate, data, function () {\n setState({\n nodesShouldLoad: false,\n nodesDoneLoad: true\n });\n });\n }\n\n return getChildBeforeLoad(animate, child, data, function () {\n setState({\n nodesDoneLoad: true\n });\n });\n }; // eslint-disable-next-line max-params\n\n\n var onExit = function (nodes, child, data, animate) {\n return getChildPropsOnExit(animate, child, data, nodes, function () {\n setState({\n nodesWillExit: false\n });\n });\n }; // eslint-disable-next-line max-params\n\n\n var onEnter = function (nodes, child, data, animate) {\n if (nodesShouldEnter) {\n return getChildPropsOnEnter(animate, data, nodes, function () {\n setState({\n nodesWillEnter: false\n });\n });\n }\n\n return getChildPropsBeforeEnter(animate, child, data, nodes, function () {\n setState({\n nodesShouldEnter: true\n });\n });\n };\n\n var getChildTransitionDuration = function (child, type) {\n var animate = child.props.animate;\n\n if (!child.type) {\n return {};\n }\n\n var defaultTransitions = child.props && child.props.polar ? child.type.defaultPolarTransitions || child.type.defaultTransitions : child.type.defaultTransitions;\n\n if (defaultTransitions) {\n var animationDuration = animate[type] && animate[type].duration;\n return animationDuration !== undefined ? animationDuration : defaultTransitions[type] && defaultTransitions[type].duration;\n }\n\n return {};\n }; // eslint-disable-next-line max-statements, complexity, max-len\n\n\n return function getTransitionProps(child, index) {\n var data = getChildData(child) || [];\n\n var animate = _defaults({}, props.animate, child.props.animate);\n\n var defaultTransitions = child.props.polar ? child.type.defaultPolarTransitions || child.type.defaultTransitions : child.type.defaultTransitions;\n animate.onExit = _defaults({}, animate.onExit, defaultTransitions && defaultTransitions.onExit);\n animate.onEnter = _defaults({}, animate.onEnter, defaultTransitions && defaultTransitions.onEnter);\n animate.onLoad = _defaults({}, animate.onLoad, defaultTransitions && defaultTransitions.onLoad);\n var childTransitions = childrenTransitions[index] || childrenTransitions[0];\n\n if (!nodesDoneLoad) {\n // should do onLoad animation\n var load = transitionDurations.load !== undefined ? transitionDurations.load : getChildTransitionDuration(child, \"onLoad\");\n var animation = {\n duration: load\n };\n return onLoad(child, data, _assign({}, animate, animation));\n } else if (nodesWillExit) {\n var exitingNodes = childTransitions && childTransitions.exiting;\n var exit = transitionDurations.exit !== undefined ? transitionDurations.exit : getChildTransitionDuration(child, \"onExit\"); // if nodesWillExit, but this child has no exiting nodes, set a delay instead of a duration\n\n var _animation = exitingNodes ? {\n duration: exit\n } : {\n delay: exit\n };\n\n return onExit(exitingNodes, child, data, _assign({}, animate, _animation));\n } else if (nodesWillEnter) {\n var enteringNodes = childTransitions && childTransitions.entering;\n var enter = transitionDurations.enter !== undefined ? transitionDurations.enter : getChildTransitionDuration(child, \"onEnter\");\n var move = transitionDurations.move !== undefined ? transitionDurations.move : child.props.animate && child.props.animate.duration;\n var _animation2 = {\n duration: nodesShouldEnter && enteringNodes ? enter : move\n };\n return onEnter(enteringNodes, child, data, _assign({}, animate, _animation2));\n } else if (!state && animate && animate.onExit) {\n // This is the initial render, and nodes may enter when props change. Because\n // animation interpolation is determined by old- and next- props, data may need\n // to be augmented with certain properties.\n //\n // For example, it may be desired that exiting nodes go from `opacity: 1` to\n // `opacity: 0`. Without setting this on a per-datum basis, the interpolation\n // might go from `opacity: undefined` to `opacity: 0`, which would result in\n // interpolated `opacity: NaN` values.\n //\n return getInitialChildProps(animate, data);\n }\n\n return {\n animate: animate,\n data: data\n };\n };\n}","function _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) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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 * as React from \"react\";\n/*\n USER_PROPS_SAFELIST is to contain any string deemed safe for user props.\n The startsWidth array will contain the start of any accepted user-prop that\n starts with these characters.\n The exactMatch will contain a list of exact prop names that are accepted.\n*/\n\nvar USER_PROPS_SAFELIST = {\n startsWith: [\"data-\", \"aria-\"],\n exactMatch: []\n}; // Normally we'd use Template Literal Types, but we're avoiding it to maximize TS compatibility with TS < 4.1\n\n// `data-${string}` | `aria-${string}`;\n\n/**\n * doesPropStartWith: Function that takes a prop's key and runs it against all\n * options in the USER_PROPS_SAFELIST and checks to see if it starts with any\n * of those options.\n * @param {string} key: prop key to be tested against whitelist\n * @returns {Boolean}: returns true if the key starts with an option or false if\n * otherwise\n */\nvar doesPropStartWith = function (key) {\n var startsWith = false;\n USER_PROPS_SAFELIST.startsWith.forEach(function (starterString) {\n var regex = new RegExp(\"\\\\b(\".concat(starterString, \")(\\\\w|-)+\"), \"g\");\n if (regex.test(key)) startsWith = true;\n });\n return startsWith;\n};\n/**\n * isExactMatch: checks to see if the given key matches any of the 'exactMatch'\n * items in the whitelist\n * @param {String} key: prop key to be tested against the whitelist-exact match\n * array.\n * @returns {Boolean}: return true if whitelist contains that key, otherwise\n * returns false.\n */\n\n\nvar isExactMatch = function (key) {\n return USER_PROPS_SAFELIST.exactMatch.includes(key);\n};\n/**\n * testIfSafeProp: tests prop's key against both startsWith and exactMatch values\n * @param {String} key: prop key to be tested against the whitelist\n * @returns {Boolean}: returns true if found in whitelist, otherwise returns false\n */\n\n\nvar testIfSafeProp = function (key) {\n if (doesPropStartWith(key) || isExactMatch(key)) return true;\n return false;\n};\n/**\n * Gets the value from props if a function value is provided\n * @param {any} value: maybe function value\n * @param {Object} props: props object\n * @returns {any} newValue\n */\n\n\nvar getValue = function (value, props) {\n if (typeof value === \"function\") {\n return value(props);\n }\n\n return value;\n};\n/**\n * getSafeUserProps - function that takes in a props object and removes any\n * key-value entries that do not match filter strings in the USER_PROPS_SAFELIST\n * object.\n *\n * @param {Object} props: props to be filtered against USER_PROPS_SAFELIST\n * @returns {Object}: object containing remaining acceptable props\n */\n\n\nexport var getSafeUserProps = function (props) {\n var propsToFilter = _objectSpread({}, props);\n\n return Object.fromEntries(Object.entries(propsToFilter).filter(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n key = _ref2[0];\n\n return testIfSafeProp(key);\n }).map(function (_ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n key = _ref4[0],\n value = _ref4[1];\n\n return [key, getValue(value, props)];\n }));\n};\n/**\n * Wraps a component and adds safe user props\n *\n * @param {ReactElement} component: parent component\n * @param {Object} props: props to be filtered\n * @returns {ReactElement} modified component\n */\n\nexport var withSafeUserProps = function (component, props) {\n return /*#__PURE__*/React.cloneElement(component, getSafeUserProps(props));\n};","import _isPlainObject from \"lodash/isPlainObject\";\nimport _values from \"lodash/values\";\nimport _uniqBy from \"lodash/uniqBy\";\nimport _groupBy from \"lodash/groupBy\";\nimport _uniq from \"lodash/uniq\";\nimport _isFunction from \"lodash/isFunction\";\nimport _flatten from \"lodash/flatten\";\nimport _defaults from \"lodash/defaults\";\nimport _assign from \"lodash/assign\";\n\nfunction _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\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) 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\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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 from \"react\";\nimport * as Axis from \"./axis\";\nimport * as Style from \"./style\";\nimport * as Data from \"./data\";\nimport * as Domain from \"./domain\";\nimport * as Events from \"./events\";\nimport * as Collection from \"./collection\";\nimport * as Helpers from \"./helpers\";\nimport * as Scale from \"./scale\";\nimport * as Log from \"./log\";\nexport function addBinsToParentPropsIfHistogram(_ref) {\n var children = _ref.children,\n props = _ref.props,\n childComponents = _ref.childComponents,\n parentProps = _ref.parentProps;\n var someChildrenAreHistograms = children.some(function (child) {\n return child.type && child.type.role === \"histogram\";\n });\n var allChildrenAreHistograms = someChildrenAreHistograms && children.length && children.every(function (child) {\n return child.type && child.type.role === \"histogram\";\n });\n\n if (someChildrenAreHistograms && !allChildrenAreHistograms) {\n Log.warn(\"VictoryHistogram only supports being stacked with other VictoryHistogram components. Check to make sure that you are only passing VictoryHistogram components to VictoryStack\");\n } // if we are stacking histograms, we need to generate explicit bins\n // or else each histogram may end up having different bins\n\n\n if (!allChildrenAreHistograms) {\n return parentProps;\n }\n\n var childBins = props.bins || childComponents[0].props.bins; // if we have explicit bins then we don't need to calculate them\n\n if (!Array.isArray(childBins)) {\n var combinedData = children.reduce(function (memo, child) {\n var xAccessor = Helpers.createAccessor(child.props.x || \"x\");\n return memo.concat(child.props.data.map(function (datum) {\n return {\n x: xAccessor(datum)\n };\n }));\n }, []); // use the same function to generate bins as VictoryHistogram but with\n // the combined data from above, then get explicit bins from that\n\n var getFormattedHistogramData = children[0].type.getFormattedData;\n childBins = getFormattedHistogramData({\n data: combinedData,\n bins: childBins\n }).reduce(function (memo, _ref2, index) {\n var x0 = _ref2.x0,\n x1 = _ref2.x1;\n return index === 0 ? memo.concat([x0, x1]) : memo.concat(x1);\n }, []);\n }\n\n return _objectSpread(_objectSpread({}, parentProps), {}, {\n bins: childBins\n });\n}\nexport function getDataFromChildren(props, childComponents) {\n var polar = props.polar,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n categories = props.categories,\n minDomain = props.minDomain,\n maxDomain = props.maxDomain;\n var parentProps = {\n polar: polar,\n startAngle: startAngle,\n endAngle: endAngle,\n categories: categories,\n minDomain: minDomain,\n maxDomain: maxDomain\n };\n var stack = 0;\n var children = childComponents ? childComponents.slice(0) : React.Children.toArray(props.children);\n parentProps = addBinsToParentPropsIfHistogram({\n children: children,\n props: props,\n childComponents: childComponents,\n parentProps: parentProps\n });\n\n var iteratee = function (child, childName, parent) {\n var childProps = _assign({}, child.props, parentProps);\n\n var childData;\n\n if (!Data.isDataComponent(child)) {\n return null;\n } else if (child.type && _isFunction(child.type.getData)) {\n child = parent ? /*#__PURE__*/React.cloneElement(child, parent.props) : child;\n childData = child.type.getData(childProps);\n } else {\n childData = Data.getData(childProps);\n }\n\n stack += 1;\n return childData.map(function (datum, index) {\n return _assign({\n _stack: stack,\n _group: index\n }, datum);\n });\n };\n\n var stacked = children.filter(function (c) {\n return c.type && c.type.role === \"stack\";\n }).length;\n\n var combine = function (memo, val) {\n return memo.concat(_uniqBy(val, \"_group\"));\n };\n\n var datasets = Helpers.reduceChildren(children, iteratee, props, [], combine);\n var group = stacked ? \"_group\" : \"_stack\";\n return _values(_groupBy(datasets, group));\n}\nexport function getData(props, childComponents) {\n if (props.data) {\n return Data.getData(props);\n }\n\n childComponents = childComponents || React.Children.toArray(props.children);\n return getDataFromChildren(props, childComponents);\n}\nexport function getWidth(props, groupLength, seriesLength) {\n var datasets = props.datasets,\n horizontal = props.horizontal;\n var range = horizontal ? Helpers.getRange(props, \"y\") : Helpers.getRange(props, \"x\");\n var extent = Math.abs(range[1] - range[0]);\n seriesLength = seriesLength !== undefined ? seriesLength : Array.isArray(datasets[0]) && datasets[0].length || 1;\n groupLength = groupLength || datasets.length;\n var bars = groupLength * seriesLength;\n var barRatio = 0.5;\n return Math.round(barRatio * extent / bars);\n}\nexport function getDefaultDomainPadding(props, axis, childComponents) {\n if (props.polar || axis !== \"x\") {\n return undefined;\n }\n\n var groupComponent = childComponents.filter(function (child) {\n return child.type && child.type.role && child.type.role === \"group\";\n });\n\n if (groupComponent.length < 1) {\n return undefined;\n }\n\n var _groupComponent$0$pro = groupComponent[0].props,\n offset = _groupComponent$0$pro.offset,\n children = _groupComponent$0$pro.children;\n\n if (!offset) {\n return undefined;\n }\n\n var firstChild = Array.isArray(children) && children[0];\n\n if (!firstChild) {\n return undefined;\n }\n\n var barWidth = firstChild.props.barWidth;\n var dataLength = firstChild.props.data && firstChild.props.data.length || 1;\n\n if (firstChild && firstChild.type.role === \"stack\") {\n var nestedChild = firstChild.props.children && firstChild.props.children[0];\n\n if (!nestedChild) {\n return undefined;\n }\n\n barWidth = nestedChild.props.barWidth;\n dataLength = firstChild.props.children.length;\n }\n\n var width = barWidth || getWidth(props, children.length, dataLength);\n return {\n x: width * children.length / 2 + (offset - width * ((children.length - 1) / 2))\n };\n}\nexport function getDomainFromChildren(props, axis, childComponents) {\n // eslint-disable-line max-statements, complexity, max-len\n var children = childComponents ? childComponents.slice(0) : React.Children.toArray(props.children);\n var parentData = props.data ? Data.getData(props) : undefined;\n var polar = props.polar,\n startAngle = props.startAngle,\n endAngle = props.endAngle,\n categories = props.categories,\n minDomain = props.minDomain,\n maxDomain = props.maxDomain,\n horizontal = props.horizontal;\n var baseParentProps = {\n horizontal: horizontal,\n polar: polar,\n startAngle: startAngle,\n endAngle: endAngle,\n minDomain: minDomain,\n maxDomain: maxDomain,\n categories: categories\n };\n var parentProps = parentData ? _assign(baseParentProps, {\n data: parentData\n }) : baseParentProps;\n\n var iteratee = function (child) {\n var sharedProps = _assign({}, child.props, parentProps);\n\n if (!Domain.isDomainComponent(child)) {\n return null;\n } else if (child.type && _isFunction(child.type.getDomain)) {\n return child.props && child.type.getDomain(sharedProps, axis);\n }\n\n return Domain.getDomain(sharedProps, axis);\n };\n\n var childDomains = Helpers.reduceChildren(children, iteratee, props);\n var min = childDomains.length === 0 ? 0 : Collection.getMinValue(childDomains);\n var max = childDomains.length === 0 ? 1 : Collection.getMaxValue(childDomains);\n return [min, max];\n}\nexport function getDomain(props, axis, childComponents) {\n childComponents = childComponents || React.Children.toArray(props.children);\n var propsDomain = Domain.getDomainFromProps(props, axis);\n var domainPadding = getDefaultDomainPadding(props, axis, childComponents);\n var domain;\n\n if (propsDomain) {\n domain = propsDomain;\n } else {\n var minDomain = Domain.getMinFromProps(props, axis);\n var maxDomain = Domain.getMaxFromProps(props, axis);\n var dataset = (props.data || props.y) && Data.getData(props);\n var dataDomain = dataset ? Domain.getDomainFromData(props, axis, dataset) : [];\n var childDomain = getDomainFromChildren(props, axis, childComponents);\n var min = minDomain || Collection.getMinValue([].concat(_toConsumableArray(dataDomain), _toConsumableArray(childDomain)));\n var max = maxDomain || Collection.getMaxValue([].concat(_toConsumableArray(dataDomain), _toConsumableArray(childDomain)));\n domain = Domain.getDomainFromMinMax(min, max);\n }\n\n return Domain.formatDomain(domain, _assign({\n domainPadding: domainPadding\n }, props), axis);\n}\nexport function getScale(props, axis, childComponents) {\n if (props.data) {\n return Scale.getBaseScale(props, axis);\n }\n\n var children = childComponents ? childComponents.slice(0) : React.Children.toArray(props.children);\n\n var iteratee = function (child) {\n var sharedProps = _assign({}, child.props, {\n horizontal: props.horizontal\n });\n\n return Scale.getScaleType(sharedProps, axis);\n };\n\n var childScale = _uniq(Helpers.reduceChildren(children, iteratee, props)); // default to linear scale if more than one uniq scale type is given by children\n\n\n return childScale.length > 1 ? Scale.getScaleFromName(\"linear\") : Scale.getScaleFromName(childScale[0]);\n}\nexport function getAllEvents(props) {\n var components = [\"groupComponent\", \"containerComponent\", \"labelComponent\"];\n var componentEvents = Events.getComponentEvents(props, components);\n var events = props.events;\n\n if (Array.isArray(componentEvents)) {\n events = Array.isArray(props.events) ? componentEvents.concat.apply(componentEvents, _toConsumableArray(props.events)) : componentEvents;\n }\n\n return events || [];\n}\nexport function getColor(calculatedProps, child, index) {\n // check for styles first\n var style = calculatedProps.style;\n var colorScale = calculatedProps.colorScale,\n color = calculatedProps.color;\n\n if (style && style.data && style.data.fill) {\n return style.data.fill;\n }\n\n colorScale = child.props && child.props.colorScale ? child.props.colorScale : colorScale;\n color = child.props && child.props.color ? child.props.color : color;\n\n if (!colorScale && !color) {\n return undefined;\n }\n\n var colors = Array.isArray(colorScale) ? colorScale : Style.getColorScale(colorScale);\n return color || colors[index % colors.length];\n}\nexport function getStyle(theme, style, role) {\n var defaultStyle = theme && theme[role] && theme[role].style ? theme[role].style : {};\n return Helpers.getStyles(style, defaultStyle);\n}\nexport function getChildStyle(child, index, calculatedProps) {\n var style = calculatedProps.style,\n role = calculatedProps.role;\n var childStyle = child.props.style || {};\n\n if (Array.isArray(childStyle)) {\n return childStyle;\n }\n\n var childRole = child.type && child.type.role;\n var defaultFill = childRole === \"stack\" ? undefined : getColor(calculatedProps, child, index);\n var defaultColor = childRole === \"line\" ? {\n fill: \"none\",\n stroke: defaultFill\n } : {\n fill: defaultFill\n };\n var dataWidth = role === \"stack\" ? {} : {\n width: getWidth(calculatedProps)\n };\n\n var dataStyle = _defaults({}, childStyle.data, _assign({}, dataWidth, style.data, defaultColor));\n\n var labelsStyle = _defaults({}, childStyle.labels, style.labels);\n\n return {\n parent: style.parent,\n data: dataStyle,\n labels: labelsStyle\n };\n}\nexport function getStringsFromCategories(childComponents, axis) {\n var iteratee = function (child) {\n var childProps = child.props || {};\n\n if (!Domain.isDomainComponent(child) || !childProps.categories) {\n return null;\n }\n\n var categories = childProps.categories && !Array.isArray(childProps.categories) ? childProps.categories[axis] : childProps.props.categories;\n var categoryStrings = categories && categories.filter(function (val) {\n return typeof val === \"string\";\n });\n return categoryStrings ? Collection.removeUndefined(categoryStrings) : [];\n };\n\n return Helpers.reduceChildren(childComponents.slice(0), iteratee);\n}\nexport function getStringsFromData(childComponents) {\n var iteratee = function (child) {\n var childProps = child.props || {};\n var data;\n\n if (!Data.isDataComponent(child)) {\n return null;\n } else if (child.type && _isFunction(child.type.getData)) {\n data = child.type.getData(childProps);\n } else {\n data = Data.getData(childProps);\n }\n\n return data.map(function (d) {\n return {\n x: d.xName,\n y: d.yName\n };\n });\n };\n\n var initialMemo = {\n x: [],\n y: []\n };\n\n var combine = function (memo, datum) {\n var x = Array.isArray(datum) ? datum.map(function (d) {\n return d.x;\n }).filter(Boolean) : datum.x;\n var y = Array.isArray(datum) ? datum.map(function (d) {\n return d.y;\n }).filter(Boolean) : datum.y;\n return {\n x: x !== undefined ? memo.x.concat(x) : memo.x,\n y: y !== undefined ? memo.y.concat(y) : memo.y\n };\n };\n\n return Helpers.reduceChildren(childComponents.slice(0), iteratee, {}, initialMemo, combine);\n}\nexport function getCategoryAndAxisStringsFromChildren(props, axis, childComponents) {\n var categories = _isPlainObject(props.categories) ? props.categories[axis] : props.categories;\n var axisComponent = Axis.getAxisComponent(childComponents, axis);\n var axisStrings = axisComponent ? Data.getStringsFromAxes(axisComponent.props, axis) : [];\n var categoryStrings = categories || getStringsFromCategories(childComponents, axis);\n return _uniq(_flatten([].concat(_toConsumableArray(categoryStrings), _toConsumableArray(axisStrings))));\n}\nexport function getStringsFromChildren(props, childComponents) {\n childComponents = childComponents || React.Children.toArray(props.children);\n var xStrings = getCategoryAndAxisStringsFromChildren(props, \"x\", childComponents);\n var yStrings = getCategoryAndAxisStringsFromChildren(props, \"y\", childComponents);\n var dataStrings = getStringsFromData(childComponents);\n return {\n x: _uniq(_flatten([].concat(_toConsumableArray(xStrings), _toConsumableArray(dataStrings.x)))),\n y: _uniq(_flatten([].concat(_toConsumableArray(yStrings), _toConsumableArray(dataStrings.y))))\n };\n}\nexport function getCategories(props, childComponents, allStrings) {\n var xPropCategories = props.categories && !Array.isArray(props.categories) ? props.categories.x : props.categories;\n var yPropCategories = props.categories && !Array.isArray(props.categories) ? props.categories.y : props.categories;\n var fallbackRequired = !xPropCategories || !yPropCategories;\n var fallbackProps = fallbackRequired ? allStrings || getStringsFromChildren(props, childComponents) : {};\n var xCategories = xPropCategories || fallbackProps.x;\n var yCategories = yPropCategories || fallbackProps.y;\n return {\n x: xCategories.length > 0 ? xCategories : undefined,\n y: yCategories.length > 0 ? yCategories : undefined\n };\n}","import _assign from \"lodash/assign\";\n\nfunction _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\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) 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) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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 from \"react\";\nimport { Data, Helpers, Scale, Wrapper } from \"victory-core\";\nimport isEqual from \"react-fast-compare\";\nvar fallbackProps = {\n width: 450,\n height: 300,\n padding: 50,\n offset: 0\n}; // eslint-disable-next-line max-statements\n\nexport function getCalculatedProps(props, childComponents) {\n var role = \"group\";\n props = Helpers.modifyProps(props, fallbackProps, role);\n var style = Wrapper.getStyle(props.theme, props.style, role);\n var _props = props,\n offset = _props.offset,\n colorScale = _props.colorScale,\n color = _props.color,\n polar = _props.polar,\n horizontal = _props.horizontal;\n var categories = props.categories || Wrapper.getCategories(props, childComponents, null);\n var datasets = props.datasets || Wrapper.getDataFromChildren(props, null);\n var domain = {\n x: Wrapper.getDomain(_assign({}, props, {\n categories: categories\n }), \"x\", childComponents),\n y: Wrapper.getDomain(_assign({}, props, {\n categories: categories\n }), \"y\", childComponents)\n };\n var range = props.range || {\n x: Helpers.getRange(props, \"x\"),\n y: Helpers.getRange(props, \"y\")\n };\n var baseScale = {\n x: Scale.getScaleFromProps(props, \"x\") || Wrapper.getScale(props, \"x\"),\n y: Scale.getScaleFromProps(props, \"y\") || Wrapper.getScale(props, \"y\")\n };\n var scale = {\n x: baseScale.x.domain(domain.x).range(props.horizontal ? range.y : range.x),\n y: baseScale.y.domain(domain.y).range(props.horizontal ? range.x : range.y)\n };\n var origin = polar ? props.origin : Helpers.getPolarOrigin(props);\n var padding = Helpers.getPadding(props);\n return {\n datasets: datasets,\n categories: categories,\n range: range,\n domain: domain,\n horizontal: horizontal,\n scale: scale,\n style: style,\n colorScale: colorScale,\n color: color,\n offset: offset,\n origin: origin,\n padding: padding\n };\n} // We need to remove sharedEvents in order to memoize the calculated data\n// With shared events, the props change on every event, and every value is re-calculated\n\nvar withoutSharedEvents = function (props) {\n var children = props.children;\n var modifiedChildren = React.Children.toArray(children).map(function (child) {\n return _objectSpread(_objectSpread({}, child), {}, {\n props: Helpers.omit(child.props, [\"sharedEvents\"])\n });\n });\n props.children = modifiedChildren;\n return props;\n};\n\nexport function useMemoizedProps(initialProps) {\n var modifiedProps = withoutSharedEvents(initialProps);\n\n var _React$useState = React.useState(modifiedProps),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n props = _React$useState2[0],\n setProps = _React$useState2[1]; // React.memo uses shallow equality to compare objects. This way props\n // will only be re-calculated when they change.\n\n\n React.useEffect(function () {\n if (!isEqual(modifiedProps, props)) {\n setProps(modifiedProps);\n }\n }, [props, setProps, modifiedProps]);\n return React.useMemo(function () {\n return getCalculatedProps(props, props.children);\n }, [props]);\n}\n\nfunction pixelsToValue(props, axis, calculatedProps) {\n if (!props.offset) {\n return 0;\n }\n\n var currentAxis = Helpers.getCurrentAxis(axis, props.horizontal);\n var domain = calculatedProps.domain[axis];\n var range = calculatedProps.range[currentAxis];\n var domainExtent = Math.max.apply(Math, _toConsumableArray(domain)) - Math.min.apply(Math, _toConsumableArray(domain));\n var rangeExtent = Math.max.apply(Math, _toConsumableArray(range)) - Math.min.apply(Math, _toConsumableArray(range));\n return domainExtent / rangeExtent * props.offset;\n} // eslint-disable-next-line max-params\n\n\nfunction getX0(props, calculatedProps, index, role) {\n var groupLength = role === \"stack\" ? calculatedProps.datasets[0].length : calculatedProps.datasets.length;\n var center = (groupLength - 1) / 2;\n var totalWidth = pixelsToValue(props, \"x\", calculatedProps);\n return (index - center) * totalWidth;\n} // eslint-disable-next-line max-params\n\n\nfunction getPolarX0(props, calculatedProps, index, role) {\n var groupLength = role === \"stack\" ? calculatedProps.datasets[0].length : calculatedProps.datasets.length;\n var center = (groupLength - 1) / 2;\n var width = getAngularWidth(props, calculatedProps);\n return (index - center) * width;\n}\n\nfunction getAngularWidth(props, calculatedProps) {\n var range = calculatedProps.range;\n var angularRange = Math.abs(range.x[1] - range.x[0]);\n var r = Math.max.apply(Math, _toConsumableArray(range.y));\n return props.offset / (2 * Math.PI * r) * angularRange;\n}\n\nfunction getLabels(props, datasets, index) {\n if (!props.labels) {\n return undefined;\n }\n\n return Math.floor(datasets.length / 2) === index ? props.labels : undefined;\n}\n\nfunction getChildProps(props, calculatedProps) {\n var categories = calculatedProps.categories,\n domain = calculatedProps.domain,\n range = calculatedProps.range,\n scale = calculatedProps.scale,\n horizontal = calculatedProps.horizontal,\n origin = calculatedProps.origin,\n padding = calculatedProps.padding;\n var width = props.width,\n height = props.height,\n theme = props.theme,\n polar = props.polar;\n return {\n height: height,\n width: width,\n theme: theme,\n polar: polar,\n origin: origin,\n categories: categories,\n domain: domain,\n range: range,\n scale: scale,\n horizontal: horizontal,\n padding: padding,\n standalone: false\n };\n}\n\nfunction getColorScale(props, child) {\n var role = child.type && child.type.role;\n var colorScaleOptions = child.props.colorScale || props.colorScale;\n\n if (role !== \"group\" && role !== \"stack\") {\n return undefined;\n }\n\n return props.theme && props.theme.group ? colorScaleOptions || props.theme.group.colorScale : colorScaleOptions;\n}\n\nfunction getDataWithOffset(props) {\n var defaultDataset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var offset = arguments.length > 2 ? arguments[2] : undefined;\n var dataset = props.data || props.y ? Data.getData(props) : defaultDataset;\n var xOffset = offset || 0;\n return dataset.map(function (datum) {\n var _x1 = datum._x instanceof Date ? new Date(datum._x.getTime() + xOffset) : datum._x + xOffset;\n\n return _assign({}, datum, {\n _x1: _x1\n });\n });\n}\n\nexport function getChildren(props, childComponents, calculatedProps) {\n props = Helpers.modifyProps(props, fallbackProps, \"stack\");\n childComponents = childComponents || React.Children.toArray(props.children);\n calculatedProps = calculatedProps || getCalculatedProps(props, childComponents);\n var _calculatedProps = calculatedProps,\n datasets = _calculatedProps.datasets;\n var _props2 = props,\n labelComponent = _props2.labelComponent,\n polar = _props2.polar;\n var childProps = getChildProps(props, calculatedProps);\n var parentName = props.name || \"group\";\n return childComponents.map(function (child, index) {\n var role = child.type && child.type.role;\n var xOffset = polar ? getPolarX0(props, calculatedProps, index, role) : getX0(props, calculatedProps, index, role);\n var style = role === \"voronoi\" || role === \"tooltip\" || role === \"label\" ? child.props.style : Wrapper.getChildStyle(child, index, calculatedProps);\n var labels = props.labels ? getLabels(props, datasets, index) : child.props.labels;\n var name = child.props.name || \"\".concat(parentName, \"-\").concat(role, \"-\").concat(index);\n return /*#__PURE__*/React.cloneElement(child, _assign({\n labels: labels,\n style: style,\n key: \"\".concat(name, \"-key-\").concat(index),\n name: name,\n data: getDataWithOffset(props, datasets[index], xOffset),\n colorScale: getColorScale(props, child),\n labelComponent: labelComponent || child.props.labelComponent,\n xOffset: xOffset\n }, childProps));\n });\n}","import _isEmpty from \"lodash/isEmpty\";\nimport _defaults from \"lodash/defaults\";\nimport _assign from \"lodash/assign\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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 PropTypes from \"prop-types\";\nimport React from \"react\";\nimport { CommonProps, Helpers, Hooks, UserProps, VictoryContainer, VictoryTheme, Wrapper } from \"victory-core\";\nimport { VictorySharedEvents } from \"victory-shared-events\";\nimport { getChildren, useMemoizedProps } from \"./helper-methods\";\nimport isEqual from \"react-fast-compare\";\nvar fallbackProps = {\n width: 450,\n height: 300,\n padding: 50,\n offset: 0\n};\n\nvar VictoryGroupBase = function (initialProps) {\n // eslint-disable-next-line no-use-before-define\n var role = VictoryGroup === null || VictoryGroup === void 0 ? void 0 : VictoryGroup.role;\n\n var _Hooks$useAnimationSt = Hooks.useAnimationState(),\n getAnimationProps = _Hooks$useAnimationSt.getAnimationProps,\n setAnimationState = _Hooks$useAnimationSt.setAnimationState,\n getProps = _Hooks$useAnimationSt.getProps;\n\n var props = getProps(initialProps);\n var modifiedProps = Helpers.modifyProps(props, fallbackProps, role);\n var eventKey = modifiedProps.eventKey,\n containerComponent = modifiedProps.containerComponent,\n standalone = modifiedProps.standalone,\n groupComponent = modifiedProps.groupComponent,\n externalEventMutations = modifiedProps.externalEventMutations,\n width = modifiedProps.width,\n height = modifiedProps.height,\n theme = modifiedProps.theme,\n polar = modifiedProps.polar,\n horizontal = modifiedProps.horizontal,\n name = modifiedProps.name;\n var childComponents = React.Children.toArray(modifiedProps.children);\n var calculatedProps = useMemoizedProps(modifiedProps);\n var domain = calculatedProps.domain,\n scale = calculatedProps.scale,\n style = calculatedProps.style,\n origin = calculatedProps.origin;\n var newChildren = React.useMemo(function () {\n var children = getChildren(props, childComponents, calculatedProps);\n return children.map(function (child, index) {\n var childProps = _assign({\n animate: getAnimationProps(props, child, index)\n }, child.props);\n\n return /*#__PURE__*/React.cloneElement(child, childProps);\n });\n }, [props, childComponents, calculatedProps, getAnimationProps]);\n var containerProps = React.useMemo(function () {\n if (standalone) {\n return {\n domain: domain,\n scale: scale,\n width: width,\n height: height,\n standalone: standalone,\n theme: theme,\n style: style.parent,\n horizontal: horizontal,\n polar: polar,\n origin: origin,\n name: name\n };\n }\n\n return {};\n }, [standalone, domain, scale, width, height, theme, style, horizontal, polar, origin, name]);\n var userProps = React.useMemo(function () {\n return UserProps.getSafeUserProps(initialProps);\n }, [initialProps]);\n var container = React.useMemo(function () {\n if (standalone) {\n var defaultContainerProps = _defaults({}, containerComponent.props, containerProps, userProps);\n\n return /*#__PURE__*/React.cloneElement(containerComponent, defaultContainerProps);\n }\n\n return /*#__PURE__*/React.cloneElement(groupComponent, userProps);\n }, [groupComponent, standalone, containerComponent, containerProps, userProps]);\n var events = React.useMemo(function () {\n return Wrapper.getAllEvents(props);\n }, [props]);\n var previousProps = Hooks.usePreviousProps(initialProps);\n React.useEffect(function () {\n // This is called before dismount to keep state in sync\n return function () {\n if (initialProps.animate) {\n setAnimationState(previousProps, props);\n }\n };\n }, [setAnimationState, previousProps, initialProps, props]);\n\n if (!_isEmpty(events)) {\n return /*#__PURE__*/React.createElement(VictorySharedEvents, {\n container: container,\n eventKey: eventKey,\n events: events,\n externalEventMutations: externalEventMutations\n }, newChildren);\n }\n\n return /*#__PURE__*/React.cloneElement(container, container.props, newChildren);\n};\n\nVictoryGroupBase.propTypes = _objectSpread(_objectSpread(_objectSpread({}, CommonProps.baseProps), CommonProps.dataProps), {}, {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n horizontal: PropTypes.bool,\n offset: PropTypes.number\n});\nVictoryGroupBase.defaultProps = {\n containerComponent: /*#__PURE__*/React.createElement(VictoryContainer, null),\n groupComponent: /*#__PURE__*/React.createElement(\"g\", null),\n samples: 50,\n sortOrder: \"ascending\",\n standalone: true,\n theme: VictoryTheme.grayscale\n};\nvar componentConfig = {\n role: \"group\",\n expectedComponents: [\"groupComponent\", \"containerComponent\", \"labelComponent\"],\n getChildren: getChildren\n};\nexport var VictoryGroup = Object.assign( /*#__PURE__*/React.memo(VictoryGroupBase, isEqual), componentConfig);\nVictoryGroup.displayName = \"VictoryGroup\";","import _isNil from \"lodash/isNil\";\nimport _assign from \"lodash/assign\";\nimport { Helpers, LabelHelpers, Data, Domain, Scale } from \"victory-core\";\n\nvar getCalculatedValues = function (props) {\n var data = Data.getData(props);\n\n if (data.length < 2) {\n data = [];\n }\n\n var range = {\n x: Helpers.getRange(props, \"x\"),\n y: Helpers.getRange(props, \"y\")\n };\n var domain = {\n x: Domain.getDomain(props, \"x\"),\n y: Domain.getDomain(props, \"y\")\n };\n var scale = {\n x: Scale.getBaseScale(props, \"x\").domain(domain.x).range(props.horizontal ? range.y : range.x),\n y: Scale.getBaseScale(props, \"y\").domain(domain.y).range(props.horizontal ? range.x : range.y)\n };\n var origin = props.polar ? props.origin || Helpers.getPolarOrigin(props) : undefined;\n var defaultStyles = Helpers.getDefaultStyles(props, \"line\");\n var style = Helpers.getStyles(props.style, defaultStyles);\n return {\n domain: domain,\n data: data,\n scale: scale,\n style: style,\n origin: origin\n };\n};\n\nexport var getBaseProps = function (props, fallbackProps) {\n var modifiedProps = Helpers.modifyProps(props, fallbackProps, \"line\");\n props = _assign({}, modifiedProps, getCalculatedValues(modifiedProps));\n var _props = props,\n data = _props.data,\n domain = _props.domain,\n events = _props.events,\n groupComponent = _props.groupComponent,\n height = _props.height,\n horizontal = _props.horizontal,\n interpolation = _props.interpolation,\n origin = _props.origin,\n padding = _props.padding,\n polar = _props.polar,\n scale = _props.scale,\n sharedEvents = _props.sharedEvents,\n standalone = _props.standalone,\n style = _props.style,\n theme = _props.theme,\n width = _props.width,\n labels = _props.labels,\n name = _props.name,\n disableInlineStyles = _props.disableInlineStyles;\n var initialChildProps = {\n parent: {\n style: style.parent,\n scale: scale,\n data: data,\n height: height,\n width: width,\n name: name,\n domain: domain,\n standalone: standalone,\n polar: polar,\n origin: origin,\n padding: padding,\n horizontal: horizontal\n },\n all: {\n data: {\n horizontal: horizontal,\n polar: polar,\n origin: origin,\n scale: scale,\n data: data,\n interpolation: interpolation,\n groupComponent: groupComponent,\n style: disableInlineStyles ? {} : style.data,\n theme: theme,\n disableInlineStyles: disableInlineStyles\n }\n }\n };\n return data.reduce(function (childProps, datum, index) {\n var text = LabelHelpers.getText(props, datum, index);\n\n if (text !== undefined && text !== null || labels && (events || sharedEvents)) {\n var eventKey = !_isNil(datum.eventKey) ? datum.eventKey : index;\n childProps[eventKey] = {\n labels: LabelHelpers.getProps(props, index)\n };\n }\n\n return childProps;\n }, initialChildProps);\n};","import _assign from \"lodash/assign\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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-magic-numbers: [\"error\", { \"ignore\": [-1, 0, 1, 2] }]*/\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Helpers, CommonProps, Path, LineHelpers, UserProps } from \"victory-core\";\n\nvar evaluateProps = function (props) {\n /**\n * Potential evaluated props are:\n * `ariaLabel`\n * `id`\n * `style`\n * `tabIndex`\n */\n var ariaLabel = Helpers.evaluateProp(props.ariaLabel, props);\n var id = Helpers.evaluateProp(props.id, props);\n var style = Helpers.evaluateStyle(_assign({\n fill: \"none\",\n stroke: \"black\",\n pointerEvents: \"stroke\"\n }, props.style), props);\n var tabIndex = Helpers.evaluateProp(props.tabIndex, props);\n return _assign({}, props, {\n ariaLabel: ariaLabel,\n id: id,\n style: style,\n tabIndex: tabIndex\n });\n};\n\nexport var Curve = function (props) {\n props = evaluateProps(props);\n var userProps = UserProps.getSafeUserProps(props);\n var _props = props,\n polar = _props.polar,\n origin = _props.origin;\n var lineFunction = LineHelpers.getLineFunction(props);\n var defaultTransform = polar && origin ? \"translate(\".concat(origin.x, \", \").concat(origin.y, \")\") : undefined;\n var d = lineFunction(props.data);\n return /*#__PURE__*/React.cloneElement(props.pathComponent, _objectSpread(_objectSpread(_objectSpread({}, props.events), userProps), {}, {\n \"aria-label\": props.ariaLabel,\n d: d,\n style: props.style,\n transform: props.transform || defaultTransform,\n className: props.className,\n role: props.role,\n shapeRendering: props.shapeRendering,\n clipPath: props.clipPath,\n tabIndex: props.tabIndex\n }));\n};\nCurve.propTypes = _objectSpread(_objectSpread({}, CommonProps.primitiveProps), {}, {\n interpolation: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n openCurve: PropTypes.bool,\n origin: PropTypes.shape({\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired\n }),\n pathComponent: PropTypes.element,\n polar: PropTypes.bool\n});\nCurve.defaultProps = {\n pathComponent: /*#__PURE__*/React.createElement(Path, null),\n role: \"presentation\",\n shapeRendering: \"auto\"\n};","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\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 } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\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 _possibleConstructorReturn(self, call) { if (call && (typeof call === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\nimport { getBaseProps } from \"./helper-methods\";\nimport { Curve } from \"./curve\";\nimport { PropTypes as CustomPropTypes, Helpers, VictoryLabel, addEvents, VictoryContainer, VictoryTheme, DefaultTransitions, VictoryClipContainer, Data, Domain, CommonProps, UserProps } from \"victory-core\";\nvar fallbackProps = {\n width: 450,\n height: 300,\n padding: 50,\n interpolation: \"linear\"\n};\nvar options = {\n components: [{\n name: \"parent\",\n index: \"parent\"\n }, {\n name: \"data\",\n index: \"all\"\n }, {\n name: \"labels\"\n }]\n}; // eslint-disable-next-line @typescript-eslint/no-empty-interface\n\nvar VictoryLineBase = /*#__PURE__*/function (_React$Component) {\n _inherits(VictoryLineBase, _React$Component);\n\n var _super = _createSuper(VictoryLineBase);\n\n function VictoryLineBase(props) {\n _classCallCheck(this, VictoryLineBase);\n\n return _super.call(this, props);\n }\n\n _createClass(VictoryLineBase, [{\n key: \"shouldAnimate\",\n value: // Overridden in native versions\n function shouldAnimate() {\n return !!this.props.animate;\n }\n }, {\n key: \"render\",\n value: function render() {\n var animationWhitelist = VictoryLineBase.animationWhitelist,\n role = VictoryLineBase.role;\n var props = Helpers.modifyProps(this.props, fallbackProps, role);\n\n if (this.shouldAnimate()) {\n return this.animateComponent(props, animationWhitelist);\n }\n\n var children = this.renderContinuousData(props);\n var component = props.standalone ? this.renderContainer(props.containerComponent, children) : children;\n return UserProps.withSafeUserProps(component, props);\n }\n }]);\n\n return VictoryLineBase;\n}(React.Component);\n\nVictoryLineBase.animationWhitelist = [\"data\", \"domain\", \"height\", \"padding\", \"samples\", \"style\", \"width\"];\nVictoryLineBase.displayName = \"VictoryLine\";\nVictoryLineBase.role = \"line\";\nVictoryLineBase.defaultTransitions = DefaultTransitions.continuousTransitions();\nVictoryLineBase.defaultPolarTransitions = DefaultTransitions.continuousPolarTransitions();\nVictoryLineBase.continuous = true;\nVictoryLineBase.propTypes = _objectSpread(_objectSpread(_objectSpread({}, CommonProps.baseProps), CommonProps.dataProps), {}, {\n interpolation: PropTypes.oneOfType([PropTypes.oneOf([\"basis\", \"bundle\", \"cardinal\", \"catmullRom\", \"linear\", \"monotoneX\", \"monotoneY\", \"natural\", \"step\", \"stepAfter\", \"stepBefore\"]), PropTypes.func]),\n label: CustomPropTypes.deprecated(PropTypes.string, \"Use `labels` instead for individual data labels\")\n});\nVictoryLineBase.defaultProps = {\n containerComponent: /*#__PURE__*/React.createElement(VictoryContainer, null),\n dataComponent: /*#__PURE__*/React.createElement(Curve, null),\n labelComponent: /*#__PURE__*/React.createElement(VictoryLabel, {\n renderInPortal: true\n }),\n groupComponent: /*#__PURE__*/React.createElement(VictoryClipContainer, null),\n samples: 50,\n sortKey: \"x\",\n sortOrder: \"ascending\",\n standalone: true,\n theme: VictoryTheme.grayscale\n};\nVictoryLineBase.getDomain = Domain.getDomain;\nVictoryLineBase.getData = Data.getData;\n\nVictoryLineBase.getBaseProps = function (props) {\n return getBaseProps(props, fallbackProps);\n};\n\nVictoryLineBase.expectedComponents = [\"dataComponent\", \"labelComponent\", \"groupComponent\", \"containerComponent\"];\nexport var VictoryLine = addEvents(VictoryLineBase, options);","import _difference from \"lodash/difference\";\nimport _keys from \"lodash/keys\";\nimport _fromPairs from \"lodash/fromPairs\";\nimport _isEmpty from \"lodash/isEmpty\";\nimport _defaults from \"lodash/defaults\";\nimport _isFunction from \"lodash/isFunction\";\nimport _assign from \"lodash/assign\";\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 _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_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) || _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\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) 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\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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\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 } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\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 _possibleConstructorReturn(self, call) { if (call && (typeof call === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { PropTypes as CustomPropTypes, Events, Helpers, TimerContext } from \"victory-core\";\nimport isEqual from \"react-fast-compare\";\nimport stringify from \"json-stringify-safe\"; // DISCLAIMER:\n// This file is not currently tested, and it is first on the list of files\n// to refactor in our current refactoring effort. Please do not make changes\n// to this file without manual testing and/or refactoring and adding tests.\n\nvar VictorySharedEvents = /*#__PURE__*/function (_React$Component) {\n _inherits(VictorySharedEvents, _React$Component);\n\n var _super = _createSuper(VictorySharedEvents);\n\n function VictorySharedEvents(props) {\n var _this;\n\n _classCallCheck(this, VictorySharedEvents);\n\n _this = _super.call(this, props);\n _this.state = _this.state || {};\n _this.getScopedEvents = Events.getScopedEvents.bind(_assertThisInitialized(_this));\n _this.getEventState = Events.getEventState.bind(_assertThisInitialized(_this));\n _this.baseProps = _this.getBaseProps(props);\n _this.sharedEventsCache = {};\n _this.globalEvents = {};\n _this.prevGlobalEventKeys = [];\n _this.boundGlobalEvents = {};\n return _this;\n }\n\n _createClass(VictorySharedEvents, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n if (!isEqual(this.props, nextProps)) {\n this.baseProps = this.getBaseProps(nextProps);\n var externalMutations = this.getExternalMutations(nextProps, this.baseProps);\n this.applyExternalMutations(nextProps, externalMutations);\n }\n\n return true;\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n var globalEventKeys = _keys(this.globalEvents);\n\n globalEventKeys.forEach(function (key) {\n return _this2.addGlobalListener(key);\n });\n this.prevGlobalEventKeys = globalEventKeys;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n var _this3 = this;\n\n var globalEventKeys = _keys(this.globalEvents);\n\n var removedGlobalEventKeys = _difference(this.prevGlobalEventKeys, globalEventKeys);\n\n removedGlobalEventKeys.forEach(function (key) {\n return _this3.removeGlobalListener(key);\n });\n\n var addedGlobalEventKeys = _difference(globalEventKeys, this.prevGlobalEventKeys);\n\n addedGlobalEventKeys.forEach(function (key) {\n return _this3.addGlobalListener(key);\n });\n this.prevGlobalEventKeys = globalEventKeys;\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n var _this4 = this;\n\n this.prevGlobalEventKeys.forEach(function (key) {\n return _this4.removeGlobalListener(key);\n });\n }\n }, {\n key: \"addGlobalListener\",\n value: function addGlobalListener(key) {\n var _this5 = this;\n\n var boundListener = function (event) {\n var listener = _this5.globalEvents[key];\n return listener && listener(Events.emulateReactEvent(event));\n };\n\n this.boundGlobalEvents[key] = boundListener;\n window.addEventListener(Events.getGlobalEventNameFromKey(key), boundListener);\n }\n }, {\n key: \"removeGlobalListener\",\n value: function removeGlobalListener(key) {\n window.removeEventListener(Events.getGlobalEventNameFromKey(key), this.boundGlobalEvents[key]);\n }\n }, {\n key: \"getAllEvents\",\n value: function getAllEvents(props) {\n var components = [\"container\", \"groupComponent\"];\n var componentEvents = Events.getComponentEvents(props, components);\n\n if (Array.isArray(componentEvents)) {\n return Array.isArray(props.events) ? componentEvents.concat.apply(componentEvents, _toConsumableArray(props.events)) : componentEvents;\n }\n\n return props.events;\n }\n }, {\n key: \"applyExternalMutations\",\n value: function applyExternalMutations(props, externalMutations) {\n if (!_isEmpty(externalMutations)) {\n var callbacks = props.externalEventMutations.reduce(function (memo, mutation) {\n memo = _isFunction(mutation.callback) ? memo.concat(mutation.callback) : memo;\n return memo;\n }, []);\n var compiledCallbacks = callbacks.length ? function () {\n callbacks.forEach(function (c) {\n return c();\n });\n } : undefined;\n this.setState(externalMutations, compiledCallbacks);\n }\n }\n }, {\n key: \"getExternalMutations\",\n value: function getExternalMutations(props, baseProps) {\n return !_isEmpty(props.externalEventMutations) ? Events.getExternalMutationsWithChildren(props.externalEventMutations, baseProps, this.state, _keys(baseProps)) : undefined;\n }\n }, {\n key: \"cacheSharedEvents\",\n value: function cacheSharedEvents(name, sharedEvents, cacheValues) {\n this.sharedEventsCache[name] = [sharedEvents, cacheValues];\n }\n }, {\n key: \"getCachedSharedEvents\",\n value: function getCachedSharedEvents(name, cacheValues) {\n var _ref = this.sharedEventsCache[name] || [],\n _ref2 = _slicedToArray(_ref, 2),\n sharedEvents = _ref2[0],\n prevCacheValues = _ref2[1];\n\n if (sharedEvents && isEqual(cacheValues, prevCacheValues)) {\n return sharedEvents;\n }\n\n return undefined;\n }\n }, {\n key: \"getBaseProps\",\n value: function getBaseProps(props) {\n var container = props.container;\n var children = React.Children.toArray(this.props.children);\n var childBaseProps = this.getBasePropsFromChildren(children);\n var parentBaseProps = container ? container.props : {};\n return _assign({}, childBaseProps, {\n parent: parentBaseProps\n });\n }\n }, {\n key: \"getBasePropsFromChildren\",\n value: function getBasePropsFromChildren(childComponents) {\n var iteratee = function (child, childName) {\n if (child.type && _isFunction(child.type.getBaseProps)) {\n var _baseProps = child.props && child.type.getBaseProps(child.props);\n\n return _baseProps ? [[childName, _baseProps]] : null;\n }\n\n return null;\n };\n\n var baseProps = Helpers.reduceChildren(childComponents, iteratee);\n return _fromPairs(baseProps);\n }\n }, {\n key: \"getNewChildren\",\n value: function getNewChildren(props, baseProps) {\n var _this6 = this;\n\n var events = props.events,\n eventKey = props.eventKey;\n\n var alterChildren = function (children, childNames) {\n return children.reduce(function (memo, child, index) {\n if (child.props.children) {\n var newChildren = React.Children.toArray(child.props.children);\n var names = childNames.slice(index, index + newChildren.length);\n var results = /*#__PURE__*/React.cloneElement(child, child.props, alterChildren(newChildren, names));\n return memo.concat(results);\n } else if (childNames[index] !== \"parent\" && child.type && _isFunction(child.type.getBaseProps)) {\n var name = child.props.name || childNames[index];\n var childEvents = Array.isArray(events) && events.filter(function (event) {\n if (event.target === \"parent\") {\n return false;\n }\n\n return Array.isArray(event.childName) ? event.childName.indexOf(name) > -1 : event.childName === name || event.childName === \"all\";\n });\n var sharedEventsCacheValues = [name, baseProps, childEvents, stringify(_this6.state[name])];\n var sharedEvents = _this6.getCachedSharedEvents(name, sharedEventsCacheValues) || {\n events: childEvents,\n // partially apply child name and baseProps,\n getEvents: function (evts, target) {\n return _this6.getScopedEvents(evts, target, name, baseProps);\n },\n // partially apply child name\n getEventState: function (key, target) {\n return _this6.getEventState(key, target, name);\n }\n };\n\n _this6.cacheSharedEvents(name, sharedEvents, sharedEventsCacheValues);\n\n return memo.concat( /*#__PURE__*/React.cloneElement(child, _assign({\n key: \"events-\".concat(name),\n sharedEvents: sharedEvents,\n eventKey: eventKey,\n name: name\n }, child.props)));\n }\n\n return memo.concat(child);\n }, []);\n };\n\n var childNames = _keys(baseProps);\n\n var childComponents = React.Children.toArray(props.children);\n return alterChildren(childComponents, childNames);\n }\n }, {\n key: \"getContainer\",\n value: function getContainer(props, baseProps, events) {\n var _this7 = this;\n\n var children = this.getNewChildren(props, baseProps);\n var parents = Array.isArray(events) && events.filter(function (event) {\n return event.target === \"parent\";\n });\n var sharedEvents = parents.length > 0 ? {\n events: parents,\n // partially apply childName (null) and baseProps,\n getEvents: function (evts, target) {\n return _this7.getScopedEvents(evts, target, null, baseProps);\n },\n getEventState: this.getEventState\n } : null;\n var container = props.container || props.groupComponent;\n var role = container.type && container.type.role;\n var containerProps = container.props || {};\n var boundGetEvents = Events.getEvents.bind(this);\n var parentEvents = sharedEvents && boundGetEvents({\n sharedEvents: sharedEvents\n }, \"parent\");\n\n var parentProps = _defaults({}, this.getEventState(\"parent\", \"parent\"), containerProps, baseProps.parent, {\n children: children\n });\n\n var containerEvents = _defaults({}, Events.getPartialEvents(parentEvents, \"parent\", parentProps), containerProps.events);\n\n this.globalEvents = Events.getGlobalEvents(containerEvents);\n var localEvents = Events.omitGlobalEvents(containerEvents);\n return role === \"container\" ? /*#__PURE__*/React.cloneElement(container, _assign({}, parentProps, {\n events: localEvents\n })) : /*#__PURE__*/React.cloneElement(container, localEvents, children);\n }\n }, {\n key: \"render\",\n value: function render() {\n var events = this.getAllEvents(this.props);\n\n if (events) {\n return this.getContainer(this.props, this.baseProps, events);\n }\n\n return /*#__PURE__*/React.cloneElement(this.props.container, {\n children: this.props.children\n });\n }\n }]);\n\n return VictorySharedEvents;\n}(React.Component);\n\nVictorySharedEvents.displayName = \"VictorySharedEvents\";\nVictorySharedEvents.role = \"shared-event-wrapper\";\nVictorySharedEvents.propTypes = {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n container: PropTypes.node,\n eventKey: PropTypes.oneOfType([PropTypes.array, PropTypes.func, CustomPropTypes.allOfType([CustomPropTypes.integer, CustomPropTypes.nonNegative]), PropTypes.string]),\n events: PropTypes.arrayOf(PropTypes.shape({\n childName: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),\n eventHandlers: PropTypes.object,\n eventKey: PropTypes.oneOfType([PropTypes.array, PropTypes.func, CustomPropTypes.allOfType([CustomPropTypes.integer, CustomPropTypes.nonNegative]), PropTypes.string]),\n target: PropTypes.string\n })),\n externalEventMutations: PropTypes.arrayOf(PropTypes.shape({\n callback: PropTypes.func,\n childName: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),\n eventKey: PropTypes.oneOfType([PropTypes.array, CustomPropTypes.allOfType([CustomPropTypes.integer, CustomPropTypes.nonNegative]), PropTypes.string]),\n mutation: PropTypes.func,\n target: PropTypes.oneOfType([PropTypes.string, PropTypes.array])\n })),\n groupComponent: PropTypes.node\n};\nVictorySharedEvents.defaultProps = {\n groupComponent: /*#__PURE__*/React.createElement(\"g\", null)\n};\nVictorySharedEvents.contextType = TimerContext;\nexport { VictorySharedEvents as default };","import _assign from \"lodash/assign\";\nimport _isPlainObject from \"lodash/isPlainObject\";\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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-magic-numbers: [\"error\", { \"ignore\": [-1, 0, 1, 2] }]*/\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Helpers, CommonProps, Path, UserProps } from \"victory-core\";\n\nvar getVerticalPath = function (props) {\n var pointerWidth = props.pointerWidth,\n cornerRadius = props.cornerRadius,\n orientation = props.orientation,\n width = props.width,\n height = props.height,\n center = props.center;\n var sign = orientation === \"bottom\" ? 1 : -1;\n var x = props.x + (props.dx || 0);\n var y = props.y + (props.dy || 0);\n var centerX = _isPlainObject(center) && center.x;\n var centerY = _isPlainObject(center) && center.y;\n var pointerEdge = centerY + sign * (height / 2);\n var oppositeEdge = centerY - sign * (height / 2);\n var rightEdge = centerX + width / 2;\n var leftEdge = centerX - width / 2;\n var pointerLength = sign * (y - pointerEdge) < 0 ? 0 : props.pointerLength;\n var direction = orientation === \"bottom\" ? \"0 0 0\" : \"0 0 1\";\n var arc = \"\".concat(cornerRadius, \" \").concat(cornerRadius, \" \").concat(direction);\n return \"M \".concat(centerX - pointerWidth / 2, \", \").concat(pointerEdge, \"\\n L \").concat(pointerLength ? x : centerX + pointerWidth / 2, \", \").concat(pointerLength ? y : pointerEdge, \"\\n L \").concat(centerX + pointerWidth / 2, \", \").concat(pointerEdge, \"\\n L \").concat(rightEdge - cornerRadius, \", \").concat(pointerEdge, \"\\n A \").concat(arc, \" \").concat(rightEdge, \", \").concat(pointerEdge - sign * cornerRadius, \"\\n L \").concat(rightEdge, \", \").concat(oppositeEdge + sign * cornerRadius, \"\\n A \").concat(arc, \" \").concat(rightEdge - cornerRadius, \", \").concat(oppositeEdge, \"\\n L \").concat(leftEdge + cornerRadius, \", \").concat(oppositeEdge, \"\\n A \").concat(arc, \" \").concat(leftEdge, \", \").concat(oppositeEdge + sign * cornerRadius, \"\\n L \").concat(leftEdge, \", \").concat(pointerEdge - sign * cornerRadius, \"\\n A \").concat(arc, \" \").concat(leftEdge + cornerRadius, \", \").concat(pointerEdge, \"\\n z\");\n};\n\nvar getHorizontalPath = function (props) {\n var pointerWidth = props.pointerWidth,\n cornerRadius = props.cornerRadius,\n orientation = props.orientation,\n width = props.width,\n height = props.height,\n center = props.center;\n var sign = orientation === \"left\" ? 1 : -1;\n var x = props.x + (props.dx || 0);\n var y = props.y + (props.dy || 0);\n var centerX = _isPlainObject(center) && center.x;\n var centerY = _isPlainObject(center) && center.y;\n var pointerEdge = centerX - sign * (width / 2);\n var oppositeEdge = centerX + sign * (width / 2);\n var bottomEdge = centerY + height / 2;\n var topEdge = centerY - height / 2;\n var pointerLength = sign * (x - pointerEdge) > 0 ? 0 : props.pointerLength;\n var direction = orientation === \"left\" ? \"0 0 0\" : \"0 0 1\";\n var arc = \"\".concat(cornerRadius, \" \").concat(cornerRadius, \" \").concat(direction);\n return \"M \".concat(pointerEdge, \", \").concat(centerY - pointerWidth / 2, \"\\n L \").concat(pointerLength ? x : pointerEdge, \", \").concat(pointerLength ? y : centerY + pointerWidth / 2, \"\\n L \").concat(pointerEdge, \", \").concat(centerY + pointerWidth / 2, \"\\n L \").concat(pointerEdge, \", \").concat(bottomEdge - cornerRadius, \"\\n A \").concat(arc, \" \").concat(pointerEdge + sign * cornerRadius, \", \").concat(bottomEdge, \"\\n L \").concat(oppositeEdge - sign * cornerRadius, \", \").concat(bottomEdge, \"\\n A \").concat(arc, \" \").concat(oppositeEdge, \", \").concat(bottomEdge - cornerRadius, \"\\n L \").concat(oppositeEdge, \", \").concat(topEdge + cornerRadius, \"\\n A \").concat(arc, \" \").concat(oppositeEdge - sign * cornerRadius, \", \").concat(topEdge, \"\\n L \").concat(pointerEdge + sign * cornerRadius, \", \").concat(topEdge, \"\\n A \").concat(arc, \" \").concat(pointerEdge, \", \").concat(topEdge + cornerRadius, \"\\n z\");\n};\n\nvar getFlyoutPath = function (props) {\n var orientation = props.orientation || \"top\";\n return orientation === \"left\" || orientation === \"right\" ? getHorizontalPath(props) : getVerticalPath(props);\n};\n\nvar evaluateProps = function (props) {\n /**\n * Potential evaluated props are:\n * `id`\n * `style`\n */\n var id = Helpers.evaluateProp(props.id, props);\n var style = Helpers.evaluateStyle(props.style, props);\n return _assign({}, props, {\n id: id,\n style: style\n });\n};\n\nvar Flyout = function (props) {\n props = evaluateProps(props);\n var userProps = UserProps.getSafeUserProps(props);\n return /*#__PURE__*/React.cloneElement(props.pathComponent, _objectSpread(_objectSpread(_objectSpread({}, props.events), userProps), {}, {\n style: props.style,\n d: getFlyoutPath(props),\n className: props.className,\n shapeRendering: props.shapeRendering,\n role: props.role,\n transform: props.transform,\n clipPath: props.clipPath\n }));\n};\n\nFlyout.propTypes = _objectSpread(_objectSpread({}, CommonProps.primitiveProps), {}, {\n center: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number\n }),\n cornerRadius: PropTypes.number,\n datum: PropTypes.object,\n dx: PropTypes.number,\n dy: PropTypes.number,\n height: PropTypes.number,\n orientation: PropTypes.oneOf([\"top\", \"bottom\", \"left\", \"right\"]),\n pathComponent: PropTypes.element,\n pointerLength: PropTypes.number,\n pointerWidth: PropTypes.number,\n width: PropTypes.number,\n x: PropTypes.number,\n y: PropTypes.number\n});\nFlyout.defaultProps = {\n pathComponent: /*#__PURE__*/React.createElement(Path, null),\n role: \"presentation\",\n shapeRendering: \"auto\"\n};\nexport default Flyout;","import _orderBy from \"lodash/orderBy\";\nimport _isPlainObject from \"lodash/isPlainObject\";\nimport _uniqueId from \"lodash/uniqueId\";\nimport _defaults from \"lodash/defaults\";\nimport _assign from \"lodash/assign\";\n\nfunction _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\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) 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\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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\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 } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\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 _possibleConstructorReturn(self, call) { if (call && (typeof call === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nimport React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { PropTypes as CustomPropTypes, TextSize, Helpers, LabelHelpers, VictoryLabel, VictoryTheme, VictoryPortal } from \"victory-core\";\nimport Flyout from \"./flyout\";\nvar fallbackProps = {\n cornerRadius: 5,\n pointerLength: 10,\n pointerWidth: 10\n};\n\nvar VictoryTooltip = /*#__PURE__*/function (_React$Component) {\n _inherits(VictoryTooltip, _React$Component);\n\n var _super = _createSuper(VictoryTooltip);\n\n function VictoryTooltip(props) {\n var _this;\n\n _classCallCheck(this, VictoryTooltip);\n\n _this = _super.call(this, props);\n _this.id = props.id === undefined ? _uniqueId(\"tooltip-\") : props.id;\n return _this;\n }\n\n _createClass(VictoryTooltip, [{\n key: \"getDefaultOrientation\",\n value: function getDefaultOrientation(props) {\n var datum = props.datum,\n horizontal = props.horizontal,\n polar = props.polar;\n\n if (!polar) {\n var positive = horizontal ? \"right\" : \"top\";\n var negative = horizontal ? \"left\" : \"bottom\";\n return datum && datum.y < 0 ? negative : positive;\n }\n\n return this.getPolarOrientation(props, datum);\n }\n }, {\n key: \"getPolarOrientation\",\n value: function getPolarOrientation(props, datum) {\n var degrees = LabelHelpers.getDegrees(props, datum);\n var placement = props.labelPlacement || \"vertical\";\n\n if (placement === \" vertical\") {\n return this.getVerticalOrientations(degrees);\n } else if (placement === \"parallel\") {\n return degrees < 90 || degrees > 270 ? \"right\" : \"left\";\n }\n\n return degrees > 180 ? \"bottom\" : \"top\";\n }\n }, {\n key: \"getVerticalOrientations\",\n value: function getVerticalOrientations(degrees) {\n // eslint-disable-next-line no-magic-numbers\n if (degrees < 45 || degrees > 315) {\n return \"right\"; // eslint-disable-next-line no-magic-numbers\n } else if (degrees >= 45 && degrees <= 135) {\n return \"top\"; // eslint-disable-next-line no-magic-numbers\n } else if (degrees > 135 && degrees < 225) {\n return \"left\";\n }\n\n return \"bottom\";\n }\n }, {\n key: \"getStyles\",\n value: function getStyles(props) {\n var theme = props.theme || VictoryTheme.grayscale;\n var defaultLabelStyles = theme && theme.tooltip && theme.tooltip.style ? theme.tooltip.style : {};\n var baseLabelStyle = Array.isArray(props.style) ? props.style.map(function (s) {\n return _defaults({}, s, defaultLabelStyles);\n }) : _defaults({}, props.style, defaultLabelStyles);\n var defaultFlyoutStyles = theme && theme.tooltip && theme.tooltip.flyoutStyle ? theme.tooltip.flyoutStyle : {};\n var baseFlyoutStyle = props.flyoutStyle ? _defaults({}, props.flyoutStyle, defaultFlyoutStyles) : defaultFlyoutStyles;\n var style = Array.isArray(baseLabelStyle) ? baseLabelStyle.map(function (s) {\n return Helpers.evaluateStyle(s, props);\n }) : Helpers.evaluateStyle(baseLabelStyle, props);\n var flyoutStyle = Helpers.evaluateStyle(baseFlyoutStyle, _assign({}, props, {\n style: style\n }));\n return {\n style: style,\n flyoutStyle: flyoutStyle\n };\n }\n }, {\n key: \"getEvaluatedProps\",\n value: function getEvaluatedProps(props) {\n var cornerRadius = props.cornerRadius,\n centerOffset = props.centerOffset,\n dx = props.dx,\n dy = props.dy;\n var active = Helpers.evaluateProp(props.active, props);\n var text = Helpers.evaluateProp(props.text, _assign({}, props, {\n active: active\n }));\n\n var _this$getStyles = this.getStyles(_assign({}, props, {\n active: active,\n text: text\n })),\n style = _this$getStyles.style,\n flyoutStyle = _this$getStyles.flyoutStyle;\n\n var orientation = Helpers.evaluateProp(props.orientation, _assign({}, props, {\n active: active,\n text: text,\n style: style,\n flyoutStyle: flyoutStyle\n })) || this.getDefaultOrientation(props);\n var padding = Helpers.evaluateProp(props.flyoutPadding, _assign({}, props, {\n active: active,\n text: text,\n style: style,\n flyoutStyle: flyoutStyle,\n orientation: orientation\n })) || this.getLabelPadding(style);\n var flyoutPadding = Helpers.getPadding({\n padding: padding\n });\n var pointerWidth = Helpers.evaluateProp(props.pointerWidth, _assign({}, props, {\n active: active,\n text: text,\n style: style,\n flyoutStyle: flyoutStyle,\n orientation: orientation\n }));\n var pointerLength = Helpers.evaluateProp(props.pointerLength, _assign({}, props, {\n active: active,\n text: text,\n style: style,\n flyoutStyle: flyoutStyle,\n orientation: orientation\n }));\n var labelSize = TextSize.approximateTextSize(text, style);\n\n var _this$getDimensions = this.getDimensions(_assign({}, props, {\n style: style,\n flyoutStyle: flyoutStyle,\n active: active,\n text: text,\n orientation: orientation,\n flyoutPadding: flyoutPadding,\n pointerWidth: pointerWidth,\n pointerLength: pointerLength\n }), labelSize),\n flyoutHeight = _this$getDimensions.flyoutHeight,\n flyoutWidth = _this$getDimensions.flyoutWidth;\n\n var evaluatedProps = _assign({}, props, {\n active: active,\n text: text,\n style: style,\n flyoutStyle: flyoutStyle,\n orientation: orientation,\n flyoutHeight: flyoutHeight,\n flyoutWidth: flyoutWidth,\n flyoutPadding: flyoutPadding,\n pointerWidth: pointerWidth,\n pointerLength: pointerLength\n });\n\n var offsetX = _isPlainObject(centerOffset) && centerOffset.x !== undefined ? Helpers.evaluateProp(centerOffset.x, evaluatedProps) : 0;\n var offsetY = _isPlainObject(centerOffset) && centerOffset.y !== undefined ? Helpers.evaluateProp(centerOffset.y, evaluatedProps) : 0;\n return _assign({}, evaluatedProps, {\n centerOffset: {\n x: offsetX,\n y: offsetY\n },\n dx: dx !== undefined ? Helpers.evaluateProp(dx, evaluatedProps) : 0,\n dy: dy !== undefined ? Helpers.evaluateProp(dy, evaluatedProps) : 0,\n cornerRadius: Helpers.evaluateProp(cornerRadius, evaluatedProps)\n });\n }\n }, {\n key: \"getCalculatedValues\",\n value: function getCalculatedValues(props) {\n var style = props.style,\n text = props.text,\n flyoutStyle = props.flyoutStyle,\n flyoutHeight = props.flyoutHeight,\n flyoutWidth = props.flyoutWidth;\n var labelSize = TextSize.approximateTextSize(text, style);\n var flyoutDimensions = {\n height: flyoutHeight,\n width: flyoutWidth\n };\n var flyoutCenter = this.getFlyoutCenter(props, flyoutDimensions);\n var transform = this.getTransform(props);\n return {\n style: style,\n flyoutStyle: flyoutStyle,\n labelSize: labelSize,\n flyoutDimensions: flyoutDimensions,\n flyoutCenter: flyoutCenter,\n transform: transform\n };\n }\n }, {\n key: \"getTransform\",\n value: function getTransform(props) {\n var x = props.x,\n y = props.y,\n style = props.style;\n var labelStyle = style || {};\n var angle = labelStyle.angle || props.angle || this.getDefaultAngle(props);\n return angle ? \"rotate(\".concat(angle, \" \").concat(x, \" \").concat(y, \")\") : undefined;\n } // eslint-disable-next-line complexity\n\n }, {\n key: \"getDefaultAngle\",\n value: function getDefaultAngle(props) {\n var polar = props.polar,\n labelPlacement = props.labelPlacement,\n orientation = props.orientation,\n datum = props.datum;\n\n if (!polar || !labelPlacement || labelPlacement === \"vertical\") {\n return 0;\n }\n\n var degrees = LabelHelpers.getDegrees(props, datum);\n var sign = degrees > 90 && degrees < 180 || degrees > 270 ? 1 : -1;\n var labelRotation = labelPlacement === \"perpendicular\" ? 0 : 90;\n var angle;\n\n if (degrees === 0 || degrees === 180) {\n angle = orientation === \"top\" && degrees === 180 ? 270 : 90;\n } else if (degrees > 0 && degrees < 180) {\n angle = 90 - degrees;\n } else if (degrees > 180 && degrees < 360) {\n angle = 270 - degrees;\n }\n\n return angle + sign * labelRotation;\n }\n }, {\n key: \"constrainTooltip\",\n value: function constrainTooltip(center, props, dimensions) {\n var x = center.x,\n y = center.y;\n var width = dimensions.width,\n height = dimensions.height;\n var extent = {\n x: [0, props.width],\n y: [0, props.height]\n };\n var flyoutExtent = {\n x: [x - width / 2, x + width / 2],\n y: [y - height / 2, y + height / 2]\n };\n var adjustments = {\n x: [flyoutExtent.x[0] < extent.x[0] ? extent.x[0] - flyoutExtent.x[0] : 0, flyoutExtent.x[1] > extent.x[1] ? flyoutExtent.x[1] - extent.x[1] : 0],\n y: [flyoutExtent.y[0] < extent.y[0] ? extent.y[0] - flyoutExtent.y[0] : 0, flyoutExtent.y[1] > extent.y[1] ? flyoutExtent.y[1] - extent.y[1] : 0]\n };\n return {\n x: Math.round(x + adjustments.x[0] - adjustments.x[1]),\n y: Math.round(y + adjustments.y[0] - adjustments.y[1])\n };\n } // eslint-disable-next-line complexity\n\n }, {\n key: \"getFlyoutCenter\",\n value: function getFlyoutCenter(props, dimensions) {\n var x = props.x,\n y = props.y,\n dx = props.dx,\n dy = props.dy,\n pointerLength = props.pointerLength,\n orientation = props.orientation,\n constrainToVisibleArea = props.constrainToVisibleArea,\n centerOffset = props.centerOffset;\n var height = dimensions.height,\n width = dimensions.width;\n var xSign = orientation === \"left\" ? -1 : 1;\n var ySign = orientation === \"bottom\" ? -1 : 1;\n var flyoutCenter = {\n x: orientation === \"left\" || orientation === \"right\" ? x + xSign * (pointerLength + width / 2 + xSign * dx) : x + dx,\n y: orientation === \"top\" || orientation === \"bottom\" ? y - ySign * (pointerLength + height / 2 - ySign * dy) : y + dy\n };\n var center = {\n x: _isPlainObject(props.center) && props.center.x !== undefined ? props.center.x : flyoutCenter.x,\n y: _isPlainObject(props.center) && props.center.y !== undefined ? props.center.y : flyoutCenter.y\n };\n var centerWithOffset = {\n x: center.x + centerOffset.x,\n y: center.y + centerOffset.y\n };\n return constrainToVisibleArea ? this.constrainTooltip(centerWithOffset, props, dimensions) : centerWithOffset;\n }\n }, {\n key: \"getLabelPadding\",\n value: function getLabelPadding(style) {\n if (!style) {\n return 0;\n }\n\n var paddings = Array.isArray(style) ? style.map(function (s) {\n return s.padding;\n }) : [style.padding];\n return Math.max.apply(Math, _toConsumableArray(paddings).concat([0]));\n }\n }, {\n key: \"getDimensions\",\n value: function getDimensions(props, labelSize) {\n var orientation = props.orientation,\n pointerLength = props.pointerLength,\n pointerWidth = props.pointerWidth,\n flyoutHeight = props.flyoutHeight,\n flyoutWidth = props.flyoutWidth,\n flyoutPadding = props.flyoutPadding;\n var cornerRadius = Helpers.evaluateProp(props.cornerRadius, props);\n\n var getHeight = function () {\n var calculatedHeight = labelSize.height + flyoutPadding.top + flyoutPadding.bottom;\n var minHeight = orientation === \"top\" || orientation === \"bottom\" ? 2 * cornerRadius : 2 * cornerRadius + pointerWidth;\n return Math.max(minHeight, calculatedHeight);\n };\n\n var getWidth = function () {\n var calculatedWidth = labelSize.width + flyoutPadding.left + flyoutPadding.right;\n var minWidth = orientation === \"left\" || orientation === \"right\" ? 2 * cornerRadius + pointerLength : 2 * cornerRadius;\n return Math.max(minWidth, calculatedWidth);\n };\n\n return {\n flyoutHeight: flyoutHeight ? Helpers.evaluateProp(flyoutHeight, props) : getHeight(props, labelSize, orientation),\n flyoutWidth: flyoutWidth ? Helpers.evaluateProp(flyoutWidth, props) : getWidth(props, labelSize, orientation)\n };\n }\n }, {\n key: \"getLabelProps\",\n value: function getLabelProps(props, calculatedValues) {\n var flyoutCenter = calculatedValues.flyoutCenter,\n style = calculatedValues.style,\n labelSize = calculatedValues.labelSize,\n _calculatedValues$dy = calculatedValues.dy,\n dy = _calculatedValues$dy === void 0 ? 0 : _calculatedValues$dy,\n _calculatedValues$dx = calculatedValues.dx,\n dx = _calculatedValues$dx === void 0 ? 0 : _calculatedValues$dx;\n var text = props.text,\n datum = props.datum,\n activePoints = props.activePoints,\n labelComponent = props.labelComponent,\n index = props.index,\n flyoutPadding = props.flyoutPadding;\n var textAnchor = (Array.isArray(style) && style.length ? style[0].textAnchor : style.textAnchor) || \"middle\";\n\n var getLabelX = function () {\n if (!textAnchor || textAnchor === \"middle\") {\n return flyoutCenter.x;\n }\n\n var sign = textAnchor === \"end\" ? -1 : 1;\n return flyoutCenter.x - sign * (labelSize.width / 2);\n };\n\n return _defaults({}, labelComponent.props, {\n key: \"\".concat(this.id, \"-label-\").concat(index),\n text: text,\n datum: datum,\n activePoints: activePoints,\n textAnchor: textAnchor,\n dy: dy,\n dx: dx,\n style: style,\n x: getLabelX() + (flyoutPadding.left - flyoutPadding.right) / 2,\n y: flyoutCenter.y + (flyoutPadding.top - flyoutPadding.bottom) / 2,\n verticalAnchor: \"middle\",\n angle: style.angle\n });\n }\n }, {\n key: \"getPointerOrientation\",\n value: function getPointerOrientation(point, center, flyoutDimensions) {\n var edges = {\n bottom: center.y + flyoutDimensions.height / 2,\n top: center.y - flyoutDimensions.height / 2,\n left: center.x - flyoutDimensions.width / 2,\n right: center.x + flyoutDimensions.width / 2\n };\n var gaps = [{\n side: \"top\",\n val: edges.top > point.y ? edges.top - point.y : -1\n }, {\n side: \"bottom\",\n val: edges.bottom < point.y ? point.y - edges.bottom : -1\n }, {\n side: \"right\",\n val: edges.right < point.x ? point.x - edges.right : -1\n }, {\n side: \"left\",\n val: edges.left > point.x ? edges.left - point.x : -1\n }];\n return _orderBy(gaps, \"val\", \"desc\")[0].side;\n }\n }, {\n key: \"getFlyoutProps\",\n value: function getFlyoutProps(props, calculatedValues) {\n var flyoutDimensions = calculatedValues.flyoutDimensions,\n flyoutStyle = calculatedValues.flyoutStyle,\n flyoutCenter = calculatedValues.flyoutCenter;\n var x = props.x,\n y = props.y,\n dx = props.dx,\n dy = props.dy,\n datum = props.datum,\n activePoints = props.activePoints,\n index = props.index,\n pointerLength = props.pointerLength,\n pointerWidth = props.pointerWidth,\n cornerRadius = props.cornerRadius,\n events = props.events,\n flyoutComponent = props.flyoutComponent;\n var pointerOrientation = Helpers.evaluateProp(props.pointerOrientation, props);\n return _defaults({}, flyoutComponent.props, {\n x: x,\n y: y,\n dx: dx,\n dy: dy,\n datum: datum,\n activePoints: activePoints,\n index: index,\n pointerLength: pointerLength,\n pointerWidth: pointerWidth,\n cornerRadius: cornerRadius,\n events: events,\n orientation: pointerOrientation || this.getPointerOrientation({\n x: x,\n y: y\n }, flyoutCenter, flyoutDimensions),\n key: \"\".concat(this.id, \"-tooltip-\").concat(index),\n width: flyoutDimensions.width,\n height: flyoutDimensions.height,\n style: flyoutStyle,\n center: flyoutCenter\n });\n } // Overridden in victory-core-native\n\n }, {\n key: \"renderTooltip\",\n value: function renderTooltip(props) {\n var active = Helpers.evaluateProp(props.active, props);\n var renderInPortal = props.renderInPortal;\n\n if (!active) {\n return renderInPortal ? /*#__PURE__*/React.createElement(VictoryPortal, null, null) : null;\n }\n\n var evaluatedProps = this.getEvaluatedProps(props);\n var flyoutComponent = evaluatedProps.flyoutComponent,\n labelComponent = evaluatedProps.labelComponent,\n groupComponent = evaluatedProps.groupComponent;\n var calculatedValues = this.getCalculatedValues(evaluatedProps);\n var children = [/*#__PURE__*/React.cloneElement(flyoutComponent, this.getFlyoutProps(evaluatedProps, calculatedValues)), /*#__PURE__*/React.cloneElement(labelComponent, this.getLabelProps(evaluatedProps, calculatedValues))];\n var tooltip = /*#__PURE__*/React.cloneElement(groupComponent, {\n role: \"presentation\",\n transform: calculatedValues.transform\n }, children);\n return renderInPortal ? /*#__PURE__*/React.createElement(VictoryPortal, null, tooltip) : tooltip;\n }\n }, {\n key: \"render\",\n value: function render() {\n var props = Helpers.modifyProps(this.props, fallbackProps, \"tooltip\");\n return this.renderTooltip(props);\n }\n }]);\n\n return VictoryTooltip;\n}(React.Component);\n\nVictoryTooltip.displayName = \"VictoryTooltip\";\nVictoryTooltip.role = \"tooltip\";\nVictoryTooltip.propTypes = {\n activateData: PropTypes.bool,\n active: PropTypes.oneOfType([PropTypes.bool, PropTypes.func]),\n activePoints: PropTypes.array,\n angle: PropTypes.number,\n center: PropTypes.shape({\n x: CustomPropTypes.nonNegative,\n y: CustomPropTypes.nonNegative\n }),\n centerOffset: PropTypes.shape({\n x: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n y: PropTypes.oneOfType([PropTypes.number, PropTypes.func])\n }),\n constrainToVisibleArea: PropTypes.bool,\n cornerRadius: PropTypes.oneOfType([CustomPropTypes.nonNegative, PropTypes.func]),\n data: PropTypes.array,\n datum: PropTypes.object,\n dx: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n dy: PropTypes.oneOfType([PropTypes.number, PropTypes.func]),\n events: PropTypes.object,\n flyoutComponent: PropTypes.element,\n flyoutHeight: PropTypes.oneOfType([CustomPropTypes.nonNegative, PropTypes.func]),\n flyoutPadding: PropTypes.oneOfType([PropTypes.func, PropTypes.number, PropTypes.shape({\n top: PropTypes.number,\n bottom: PropTypes.number,\n left: PropTypes.number,\n right: PropTypes.number\n })]),\n flyoutStyle: PropTypes.object,\n flyoutWidth: PropTypes.oneOfType([CustomPropTypes.nonNegative, PropTypes.func]),\n groupComponent: PropTypes.element,\n height: PropTypes.number,\n horizontal: PropTypes.bool,\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n index: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n labelComponent: PropTypes.element,\n orientation: PropTypes.oneOfType([PropTypes.oneOf([\"top\", \"bottom\", \"left\", \"right\"]), PropTypes.func]),\n pointerLength: PropTypes.oneOfType([CustomPropTypes.nonNegative, PropTypes.func]),\n pointerOrientation: PropTypes.oneOfType([PropTypes.oneOf([\"top\", \"bottom\", \"left\", \"right\"]), PropTypes.func]),\n pointerWidth: PropTypes.oneOfType([CustomPropTypes.nonNegative, PropTypes.func]),\n polar: PropTypes.bool,\n renderInPortal: PropTypes.bool,\n scale: PropTypes.shape({\n x: CustomPropTypes.scale,\n y: CustomPropTypes.scale\n }),\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.array]),\n text: PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.func, PropTypes.array]),\n theme: PropTypes.object,\n width: PropTypes.number,\n x: PropTypes.number,\n y: PropTypes.number\n};\nVictoryTooltip.defaultProps = {\n active: false,\n renderInPortal: true,\n labelComponent: /*#__PURE__*/React.createElement(VictoryLabel, null),\n flyoutComponent: /*#__PURE__*/React.createElement(Flyout, null),\n groupComponent: /*#__PURE__*/React.createElement(\"g\", null)\n};\n\nVictoryTooltip.defaultEvents = function (props) {\n var activate = props.activateData ? [{\n target: \"labels\",\n mutation: function () {\n return {\n active: true\n };\n }\n }, {\n target: \"data\",\n mutation: function () {\n return {\n active: true\n };\n }\n }] : [{\n target: \"labels\",\n mutation: function () {\n return {\n active: true\n };\n }\n }];\n var deactivate = props.activateData ? [{\n target: \"labels\",\n mutation: function () {\n return {\n active: undefined\n };\n }\n }, {\n target: \"data\",\n mutation: function () {\n return {\n active: undefined\n };\n }\n }] : [{\n target: \"labels\",\n mutation: function () {\n return {\n active: undefined\n };\n }\n }];\n return [{\n target: \"data\",\n eventHandlers: {\n onMouseOver: function () {\n return activate;\n },\n onFocus: function () {\n return activate;\n },\n onTouchStart: function () {\n return activate;\n },\n onMouseOut: function () {\n return deactivate;\n },\n onBlur: function () {\n return deactivate;\n },\n onTouchEnd: function () {\n return deactivate;\n }\n }\n }];\n};\n\nexport { VictoryTooltip as default };","import * as Collection from \"./collection\";\n\n// Private Functions\nfunction transformTarget(target, matrix, dimension) {\n var a = matrix.a,\n d = matrix.d,\n e = matrix.e,\n f = matrix.f;\n return dimension === \"y\" ? d * target + f : a * target + e;\n}\n\nfunction getTransformationMatrix(svg) {\n return svg.getScreenCTM().inverse();\n}\n\nfunction isNativeTouchEvent(nativeEvent) {\n return !!(nativeEvent && nativeEvent.identifier !== undefined);\n}\n\nfunction isReactTouchEvent(evt) {\n return evt.changedTouches && evt.changedTouches.length > 0;\n} // Exported Functions\n\n\nexport function getParentSVG(evt) {\n if (isNativeTouchEvent(evt.nativeEvent)) {\n // @ts-expect-error Seems like a superfluous check.\n return undefined;\n }\n\n var getParent = function (target) {\n if (target.nodeName === \"svg\") {\n return target;\n }\n\n return target.parentNode ? getParent(target.parentNode) : target;\n };\n\n return getParent(evt.target);\n}\nexport function getSVGEventCoordinates(evt, svg) {\n if (isNativeTouchEvent(evt.nativeEvent)) {\n // react-native override. relies on the RN.View being the _exact_ same size as its child SVG.\n // this should be fine: the svg is the only child of View and the View shirks to its children\n return {\n x: evt.nativeEvent.locationX,\n y: evt.nativeEvent.locationY\n };\n }\n\n var location = isReactTouchEvent(evt) ? evt.changedTouches[0] : evt;\n svg = svg || getParentSVG(location);\n var matrix = getTransformationMatrix(svg);\n return {\n x: transformTarget(location.clientX, matrix, \"x\"),\n y: transformTarget(location.clientY, matrix, \"y\")\n };\n}\nexport function getDomainCoordinates(props, domain) {\n var horizontal = props.horizontal;\n var scale = props.scale; // FIXME: add support for DomainTuple: [number, number]\n\n var domainObj = domain || {\n x: scale.x.domain(),\n y: scale.y.domain()\n };\n return {\n x: horizontal ? [scale.y(domainObj.y[0]), scale.y(domainObj.y[1])] : [scale.x(domainObj.x[0]), scale.x(domainObj.x[1])],\n y: horizontal ? [scale.x(domainObj.x[0]), scale.x(domainObj.x[1])] : [scale.y(domainObj.y[0]), scale.y(domainObj.y[1])]\n };\n} // eslint-disable-next-line max-params\n\nexport function getDataCoordinates(props, scale, x, y) {\n var polar = props.polar,\n horizontal = props.horizontal;\n\n if (!polar) {\n return {\n x: horizontal ? scale.x.invert(y) : scale.x.invert(x),\n y: horizontal ? scale.y.invert(x) : scale.y.invert(y)\n };\n }\n\n var origin = props.origin || {\n x: 0,\n y: 0\n };\n var baseX = x - origin.x;\n var baseY = y - origin.y;\n var radius = Math.abs(baseX * Math.sqrt(1 + Math.pow(-baseY / baseX, 2)));\n var angle = (-Math.atan2(baseY, baseX) + Math.PI * 2) % (Math.PI * 2);\n return {\n x: scale.x.invert(angle),\n y: scale.y.invert(radius)\n };\n}\nexport function getBounds(props) {\n var x1 = props.x1,\n x2 = props.x2,\n y1 = props.y1,\n y2 = props.y2,\n scale = props.scale;\n var point1 = getDataCoordinates(props, scale, x1, y1);\n var point2 = getDataCoordinates(props, scale, x2, y2);\n\n var makeBound = function (a, b) {\n return [Collection.getMinValue([a, b]), Collection.getMaxValue([a, b])];\n };\n\n return {\n x: makeBound(point1.x, point2.x),\n y: makeBound(point1.y, point2.y)\n };\n}","import _isRegExp from \"lodash/isRegExp\";\nimport _isString from \"lodash/isString\";\nimport _includes from \"lodash/includes\";\nimport _isEmpty from \"lodash/isEmpty\";\nimport _isFunction from \"lodash/isFunction\";\nimport _throttle from \"lodash/throttle\";\nimport _assign from \"lodash/assign\";\n\nfunction _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\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) 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\nimport { Collection, Selection, Data, Helpers } from \"victory-core\";\nimport isEqual from \"react-fast-compare\";\nimport Delaunay from \"delaunay-find/lib/index.js\";\nimport React from \"react\";\nvar VoronoiHelpers = {\n withinBounds: function (props, point) {\n var width = props.width,\n height = props.height,\n polar = props.polar,\n origin = props.origin,\n scale = props.scale;\n var padding = Helpers.getPadding(props, \"voronoiPadding\");\n var x = point.x,\n y = point.y;\n\n if (polar) {\n var distanceSquared = Math.pow(x - origin.x, 2) + Math.pow(y - origin.y, 2);\n var radius = Math.max.apply(Math, _toConsumableArray(scale.y.range()));\n return distanceSquared < Math.pow(radius, 2);\n }\n\n return x >= padding.left && x <= width - padding.right && y >= padding.top && y <= height - padding.bottom;\n },\n getDatasets: function (props) {\n var minDomain = {\n x: Collection.getMinValue(props.domain.x),\n y: Collection.getMinValue(props.domain.y)\n };\n var children = React.Children.toArray(props.children);\n\n var addMeta = function (data, name, child) {\n var continuous = child && child.type && child.type.continuous;\n var style = child ? child.props && child.props.style : props.style;\n return data.map(function (datum, index) {\n var _Helpers$getPoint = Helpers.getPoint(datum),\n x = _Helpers$getPoint.x,\n y = _Helpers$getPoint.y,\n y0 = _Helpers$getPoint.y0,\n x0 = _Helpers$getPoint.x0;\n\n var voronoiX = (Number(x) + Number(x0)) / 2;\n var voronoiY = (Number(y) + Number(y0)) / 2;\n return _assign({\n _voronoiX: props.voronoiDimension === \"y\" ? minDomain.x : voronoiX,\n _voronoiY: props.voronoiDimension === \"x\" ? minDomain.y : voronoiY,\n eventKey: index,\n childName: name,\n continuous: continuous,\n style: style\n }, datum);\n });\n };\n\n if (props.data) {\n return addMeta(props.data);\n }\n\n var getData = function (childProps) {\n var data = Data.getData(childProps);\n return Array.isArray(data) && data.length > 0 ? data : undefined;\n };\n\n var iteratee = function (child, childName) {\n var childProps = child.props || {};\n var name = childProps.name || childName;\n var blacklist = props.voronoiBlacklist || [];\n var blacklistStr = blacklist.filter(_isString);\n var blacklistRegExp = blacklist.filter(_isRegExp);\n var isRegExpMatch = blacklistRegExp.some(function (regExp) {\n return regExp.test(name);\n });\n\n if (!Data.isDataComponent(child) || _includes(blacklistStr, name) || isRegExpMatch) {\n return null;\n }\n\n var getChildData = child.type && _isFunction(child.type.getData) ? child.type.getData : getData;\n var childData = getChildData(child.props);\n return childData ? addMeta(childData, name, child) : null;\n };\n\n return Helpers.reduceChildren(children, iteratee, props);\n },\n findPoints: function (datasets, point) {\n return datasets.filter(function (d) {\n return point._voronoiX === d._voronoiX && point._voronoiY === d._voronoiY;\n });\n },\n withinRadius: function (point, mousePosition, radius) {\n if (!point) {\n return false;\n }\n\n if (!radius) {\n return true;\n }\n\n var x = mousePosition.x,\n y = mousePosition.y;\n var distanceSquared = Math.pow(x - point[0], 2) + Math.pow(y - point[1], 2);\n return distanceSquared < Math.pow(radius, 2);\n },\n getVoronoiPoints: function (props, mousePosition) {\n var datasets = this.getDatasets(props);\n var scaledData = datasets.map(function (d) {\n var _Helpers$scalePoint = Helpers.scalePoint(props, d),\n x = _Helpers$scalePoint.x,\n y = _Helpers$scalePoint.y;\n\n return [x, y];\n });\n var delaunay = Delaunay.from(scaledData);\n var index = delaunay.find(mousePosition.x, mousePosition.y);\n var withinRadius = this.withinRadius(scaledData[index], mousePosition, props.radius);\n var points = withinRadius ? this.findPoints(datasets, datasets[index]) : [];\n return {\n points: points,\n index: index\n };\n },\n getActiveMutations: function (props, point) {\n var childName = point.childName,\n continuous = point.continuous;\n var activateData = props.activateData,\n activateLabels = props.activateLabels,\n labels = props.labels;\n\n if (!activateData && !activateLabels) {\n return [];\n }\n\n var defaultTarget = activateData ? [\"data\"] : [];\n var targets = labels && !activateLabels ? defaultTarget : defaultTarget.concat(\"labels\");\n\n if (_isEmpty(targets)) {\n return [];\n }\n\n return targets.map(function (target) {\n var eventKey = continuous === true && target === \"data\" ? \"all\" : point.eventKey;\n return {\n childName: childName,\n eventKey: eventKey,\n target: target,\n mutation: function () {\n return {\n active: true\n };\n }\n };\n });\n },\n getInactiveMutations: function (props, point) {\n var childName = point.childName,\n continuous = point.continuous;\n var activateData = props.activateData,\n activateLabels = props.activateLabels,\n labels = props.labels;\n\n if (!activateData && !activateLabels) {\n return [];\n }\n\n var defaultTarget = activateData ? [\"data\"] : [];\n var targets = labels && !activateLabels ? defaultTarget : defaultTarget.concat(\"labels\");\n\n if (_isEmpty(targets)) {\n return [];\n }\n\n return targets.map(function (target) {\n var eventKey = continuous && target === \"data\" ? \"all\" : point.eventKey;\n return {\n childName: childName,\n eventKey: eventKey,\n target: target,\n mutation: function () {\n return null;\n }\n };\n });\n },\n // eslint-disable-next-line max-params\n getParentMutation: function (activePoints, mousePosition, parentSVG, vIndex) {\n return [{\n target: \"parent\",\n eventKey: \"parent\",\n mutation: function () {\n return {\n activePoints: activePoints,\n mousePosition: mousePosition,\n parentSVG: parentSVG,\n vIndex: vIndex\n };\n }\n }];\n },\n onActivated: function (props, points) {\n if (_isFunction(props.onActivated)) {\n props.onActivated(points, props);\n }\n },\n onDeactivated: function (props, points) {\n if (_isFunction(props.onDeactivated)) {\n props.onDeactivated(points, props);\n }\n },\n onMouseLeave: function (evt, targetProps) {\n var _this = this,\n _this$getParentMutati;\n\n var activePoints = targetProps.activePoints || [];\n this.onDeactivated(targetProps, activePoints);\n var inactiveMutations = activePoints.length ? activePoints.map(function (point) {\n return _this.getInactiveMutations(targetProps, point);\n }) : [];\n return (_this$getParentMutati = this.getParentMutation([])).concat.apply(_this$getParentMutati, _toConsumableArray(inactiveMutations));\n },\n onMouseMove: function (evt, targetProps) {\n var _this2 = this;\n\n // eslint-disable-line max-statements\n var activePoints = targetProps.activePoints || [];\n var parentSVG = targetProps.parentSVG || Selection.getParentSVG(evt);\n var mousePosition = Selection.getSVGEventCoordinates(evt, parentSVG);\n\n if (!this.withinBounds(targetProps, mousePosition)) {\n var _this$getParentMutati2;\n\n this.onDeactivated(targetProps, activePoints);\n\n var _inactiveMutations = activePoints.length ? activePoints.map(function (point) {\n return _this2.getInactiveMutations(targetProps, point);\n }) : [];\n\n return (_this$getParentMutati2 = this.getParentMutation([], mousePosition, parentSVG)).concat.apply(_this$getParentMutati2, _toConsumableArray(_inactiveMutations));\n }\n\n var _this$getVoronoiPoint = this.getVoronoiPoints(targetProps, mousePosition),\n _this$getVoronoiPoint2 = _this$getVoronoiPoint.points,\n points = _this$getVoronoiPoint2 === void 0 ? [] : _this$getVoronoiPoint2,\n index = _this$getVoronoiPoint.index;\n\n var parentMutations = this.getParentMutation(points, mousePosition, parentSVG, index);\n\n if (activePoints.length && isEqual(points, activePoints)) {\n return parentMutations;\n }\n\n this.onActivated(targetProps, points);\n this.onDeactivated(targetProps, activePoints);\n var activeMutations = points.length ? points.map(function (point) {\n return _this2.getActiveMutations(targetProps, point);\n }) : [];\n var inactiveMutations = activePoints.length ? activePoints.map(function (point) {\n return _this2.getInactiveMutations(targetProps, point);\n }) : [];\n return parentMutations.concat.apply(parentMutations, _toConsumableArray(inactiveMutations).concat(_toConsumableArray(activeMutations)));\n }\n};\nexport default {\n onMouseLeave: VoronoiHelpers.onMouseLeave.bind(VoronoiHelpers),\n onMouseMove: _throttle(VoronoiHelpers.onMouseMove.bind(VoronoiHelpers), 32, // eslint-disable-line no-magic-numbers\n {\n leading: true,\n trailing: false\n })\n};","import _pick from \"lodash/pick\";\nimport _isFunction from \"lodash/isFunction\";\nimport _defaults from \"lodash/defaults\";\nvar _excluded = [\"childName\", \"eventKey\", \"style\", \"continuous\"];\n\nfunction _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\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) 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\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); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\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); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\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 } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\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 _possibleConstructorReturn(self, call) { if (call && (typeof call === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\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 _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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/* eslint-disable react/no-multi-comp */\nimport PropTypes from \"prop-types\";\nimport React from \"react\";\nimport { VictoryTooltip } from \"victory-tooltip\";\nimport { VictoryContainer, Helpers, PropTypes as CustomPropTypes } from \"victory-core\";\nimport VoronoiHelpers from \"./voronoi-helpers\";\nexport var voronoiContainerMixin = function (base) {\n var _class;\n\n return _class = /*#__PURE__*/function (_base) {\n _inherits(VictoryVoronoiContainer, _base);\n\n var _super = _createSuper(VictoryVoronoiContainer);\n\n function VictoryVoronoiContainer() {\n _classCallCheck(this, VictoryVoronoiContainer);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(VictoryVoronoiContainer, [{\n key: \"getDimension\",\n value: function getDimension(props) {\n var horizontal = props.horizontal,\n voronoiDimension = props.voronoiDimension;\n\n if (!horizontal || !voronoiDimension) {\n return voronoiDimension;\n }\n\n return voronoiDimension === \"x\" ? \"y\" : \"x\";\n }\n }, {\n key: \"getPoint\",\n value: function getPoint(point) {\n var whitelist = [\"_x\", \"_x1\", \"_x0\", \"_y\", \"_y1\", \"_y0\"];\n return _pick(point, whitelist);\n }\n }, {\n key: \"getLabelPosition\",\n value: function getLabelPosition(props, labelProps, points) {\n var mousePosition = props.mousePosition,\n mouseFollowTooltips = props.mouseFollowTooltips;\n var voronoiDimension = this.getDimension(props);\n var point = this.getPoint(points[0]);\n var basePosition = Helpers.scalePoint(props, point);\n var center = mouseFollowTooltips ? mousePosition : undefined;\n\n if (!voronoiDimension || points.length < 2) {\n return _objectSpread(_objectSpread({}, basePosition), {}, {\n center: _defaults({}, labelProps.center, center)\n });\n }\n\n var x = voronoiDimension === \"y\" ? mousePosition.x : basePosition.x;\n var y = voronoiDimension === \"x\" ? mousePosition.y : basePosition.y;\n center = mouseFollowTooltips ? mousePosition : {\n x: x,\n y: y\n };\n return {\n x: x,\n y: y,\n center: _defaults({}, labelProps.center, center)\n };\n }\n }, {\n key: \"getStyle\",\n value: function getStyle(props, points, type) {\n var labels = props.labels,\n labelComponent = props.labelComponent,\n theme = props.theme;\n var componentProps = labelComponent.props || {};\n var themeStyles = theme && theme.voronoi && theme.voronoi.style ? theme.voronoi.style : {};\n var componentStyleArray = type === \"flyout\" ? componentProps.flyoutStyle : componentProps.style;\n return points.reduce(function (memo, datum, index) {\n var labelProps = _defaults({}, componentProps, {\n datum: datum,\n active: true\n });\n\n var text = _isFunction(labels) ? labels(labelProps) : undefined;\n var textArray = text !== undefined ? \"\".concat(text).split(\"\\n\") : [];\n var baseStyle = datum.style && datum.style[type] || {};\n var componentStyle = Array.isArray(componentStyleArray) ? componentStyleArray[index] : componentStyleArray;\n var style = Helpers.evaluateStyle(_defaults({}, componentStyle, baseStyle, themeStyles[type]), labelProps);\n var styleArray = textArray.length ? textArray.map(function () {\n return style;\n }) : [style];\n memo = memo.concat(styleArray);\n return memo;\n }, []);\n }\n }, {\n key: \"getDefaultLabelProps\",\n value: function getDefaultLabelProps(props, points) {\n var voronoiDimension = props.voronoiDimension,\n horizontal = props.horizontal,\n mouseFollowTooltips = props.mouseFollowTooltips;\n var point = this.getPoint(points[0]);\n var multiPoint = voronoiDimension && points.length > 1;\n var y = point._y1 !== undefined ? point._y1 : point._y;\n var defaultHorizontalOrientation = y < 0 ? \"left\" : \"right\";\n var defaultOrientation = y < 0 ? \"bottom\" : \"top\";\n var labelOrientation = horizontal ? defaultHorizontalOrientation : defaultOrientation;\n var orientation = mouseFollowTooltips ? undefined : labelOrientation;\n return {\n orientation: orientation,\n pointerLength: multiPoint ? 0 : undefined,\n constrainToVisibleArea: multiPoint || mouseFollowTooltips ? true : undefined\n };\n }\n }, {\n key: \"getLabelProps\",\n value: function getLabelProps(props, points) {\n var labels = props.labels,\n scale = props.scale,\n labelComponent = props.labelComponent,\n theme = props.theme,\n width = props.width,\n height = props.height;\n var componentProps = labelComponent.props || {};\n var text = points.reduce(function (memo, datum) {\n var labelProps = _defaults({}, componentProps, {\n datum: datum,\n active: true\n });\n\n var t = _isFunction(labels) ? labels(labelProps) : null;\n\n if (t === null || t === undefined) {\n return memo;\n }\n\n memo = memo.concat(\"\".concat(t).split(\"\\n\"));\n return memo;\n }, []); // remove properties from first point to make datum\n // eslint-disable-next-line no-unused-vars\n\n var _points$ = points[0],\n childName = _points$.childName,\n eventKey = _points$.eventKey,\n style = _points$.style,\n continuous = _points$.continuous,\n datum = _objectWithoutProperties(_points$, _excluded);\n\n var name = props.name === childName ? childName : \"\".concat(props.name, \"-\").concat(childName);\n\n var labelProps = _defaults({\n key: \"\".concat(name, \"-\").concat(eventKey, \"-voronoi-tooltip\"),\n id: \"\".concat(name, \"-\").concat(eventKey, \"-voronoi-tooltip\"),\n active: true,\n renderInPortal: false,\n activePoints: points,\n datum: datum,\n scale: scale,\n theme: theme\n }, componentProps, {\n text: text,\n width: width,\n height: height,\n style: this.getStyle(props, points, \"labels\"),\n flyoutStyle: this.getStyle(props, points, \"flyout\")[0]\n }, this.getDefaultLabelProps(props, points));\n\n var labelPosition = this.getLabelPosition(props, labelProps, points);\n return _defaults({}, labelPosition, labelProps);\n }\n }, {\n key: \"getTooltip\",\n value: function getTooltip(props) {\n var labels = props.labels,\n activePoints = props.activePoints,\n labelComponent = props.labelComponent;\n\n if (!labels) {\n return null;\n }\n\n if (Array.isArray(activePoints) && activePoints.length) {\n var labelProps = this.getLabelProps(props, activePoints);\n var text = labelProps.text;\n var showLabel = Array.isArray(text) ? text.filter(Boolean).length : text;\n return showLabel ? /*#__PURE__*/React.cloneElement(labelComponent, labelProps) : null;\n }\n\n return null;\n } // Overrides method in VictoryContainer\n\n }, {\n key: \"getChildren\",\n value: function getChildren(props) {\n return [].concat(_toConsumableArray(React.Children.toArray(props.children)), [this.getTooltip(props)]);\n }\n }]);\n\n return VictoryVoronoiContainer;\n }(base), _class.displayName = \"VictoryVoronoiContainer\", _class.propTypes = _objectSpread(_objectSpread({}, VictoryContainer.propTypes), {}, {\n activateData: PropTypes.bool,\n activateLabels: PropTypes.bool,\n disable: PropTypes.bool,\n labelComponent: PropTypes.element,\n labels: PropTypes.func,\n mouseFollowTooltips: PropTypes.bool,\n onActivated: PropTypes.func,\n onDeactivated: PropTypes.func,\n radius: PropTypes.number,\n voronoiBlacklist: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, CustomPropTypes.regExp])),\n voronoiDimension: PropTypes.oneOf([\"x\", \"y\"]),\n voronoiPadding: PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n top: PropTypes.number,\n bottom: PropTypes.number,\n left: PropTypes.number,\n right: PropTypes.number\n })])\n }), _class.defaultProps = _objectSpread(_objectSpread({}, VictoryContainer.defaultProps), {}, {\n activateData: true,\n activateLabels: true,\n labelComponent: /*#__PURE__*/React.createElement(VictoryTooltip, null),\n voronoiPadding: 5\n }), _class.defaultEvents = function (props) {\n return [{\n target: \"parent\",\n eventHandlers: {\n onMouseLeave: function (evt, targetProps) {\n return props.disable ? {} : VoronoiHelpers.onMouseLeave(evt, targetProps);\n },\n onTouchCancel: function (evt, targetProps) {\n return props.disable ? {} : VoronoiHelpers.onMouseLeave(evt, targetProps);\n },\n onMouseMove: function (evt, targetProps) {\n return props.disable ? {} : VoronoiHelpers.onMouseMove(evt, targetProps);\n },\n onTouchMove: function (evt, targetProps) {\n return props.disable ? {} : VoronoiHelpers.onMouseMove(evt, targetProps);\n }\n }\n }, {\n target: \"data\",\n eventHandlers: props.disable ? {} : {\n onMouseOver: function () {\n return null;\n },\n onMouseOut: function () {\n return null;\n },\n onMouseMove: function () {\n return null;\n }\n }\n }];\n }, _class;\n};\nexport default voronoiContainerMixin(VictoryContainer); // @ts-expect-error IMPORTANT: when converting this file to TypeScript, you must export the type as well:\n// export const VictoryVoronoiContainer = voronoiContainerMixin(VictoryContainer);\n// export type VictoryVoronoiContainer = typeof VictoryVoronoiContainer;","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export 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 x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","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","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","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","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 {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","import constant from \"./constant.js\";\nimport {abs, acos, asin, atan2, cos, epsilon, halfPi, max, min, pi, sin, sqrt, tau} from \"./math.js\";\nimport {withPath} from \"./path.js\";\n\nfunction arcInnerRadius(d) {\n return d.innerRadius;\n}\n\nfunction arcOuterRadius(d) {\n return d.outerRadius;\n}\n\nfunction arcStartAngle(d) {\n return d.startAngle;\n}\n\nfunction arcEndAngle(d) {\n return d.endAngle;\n}\n\nfunction arcPadAngle(d) {\n return d && d.padAngle; // Note: optional!\n}\n\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n var x10 = x1 - x0, y10 = y1 - y0,\n x32 = x3 - x2, y32 = y3 - y2,\n t = y32 * x10 - x32 * y10;\n if (t * t < epsilon) return;\n t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n return [x0 + t * x10, y0 + t * y10];\n}\n\n// Compute perpendicular offset line of length rc.\n// http://mathworld.wolfram.com/Circle-LineIntersection.html\nfunction cornerTangents(x0, y0, x1, y1, r1, rc, cw) {\n var x01 = x0 - x1,\n y01 = y0 - y1,\n lo = (cw ? rc : -rc) / sqrt(x01 * x01 + y01 * y01),\n ox = lo * y01,\n oy = -lo * x01,\n x11 = x0 + ox,\n y11 = y0 + oy,\n x10 = x1 + ox,\n y10 = y1 + oy,\n x00 = (x11 + x10) / 2,\n y00 = (y11 + y10) / 2,\n dx = x10 - x11,\n dy = y10 - y11,\n d2 = dx * dx + dy * dy,\n r = r1 - rc,\n D = x11 * y10 - x10 * y11,\n d = (dy < 0 ? -1 : 1) * sqrt(max(0, r * r * d2 - D * D)),\n cx0 = (D * dy - dx * d) / d2,\n cy0 = (-D * dx - dy * d) / d2,\n cx1 = (D * dy + dx * d) / d2,\n cy1 = (-D * dx + dy * d) / d2,\n dx0 = cx0 - x00,\n dy0 = cy0 - y00,\n dx1 = cx1 - x00,\n dy1 = cy1 - y00;\n\n // Pick the closer of the two intersection points.\n // TODO Is there a faster way to determine which intersection to use?\n if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1;\n\n return {\n cx: cx0,\n cy: cy0,\n x01: -ox,\n y01: -oy,\n x11: cx0 * (r1 / r - 1),\n y11: cy0 * (r1 / r - 1)\n };\n}\n\nexport default function() {\n var innerRadius = arcInnerRadius,\n outerRadius = arcOuterRadius,\n cornerRadius = constant(0),\n padRadius = null,\n startAngle = arcStartAngle,\n endAngle = arcEndAngle,\n padAngle = arcPadAngle,\n context = null,\n path = withPath(arc);\n\n function arc() {\n var buffer,\n r,\n r0 = +innerRadius.apply(this, arguments),\n r1 = +outerRadius.apply(this, arguments),\n a0 = startAngle.apply(this, arguments) - halfPi,\n a1 = endAngle.apply(this, arguments) - halfPi,\n da = abs(a1 - a0),\n cw = a1 > a0;\n\n if (!context) context = buffer = path();\n\n // Ensure that the outer radius is always larger than the inner radius.\n if (r1 < r0) r = r1, r1 = r0, r0 = r;\n\n // Is it a point?\n if (!(r1 > epsilon)) context.moveTo(0, 0);\n\n // Or is it a circle or annulus?\n else if (da > tau - epsilon) {\n context.moveTo(r1 * cos(a0), r1 * sin(a0));\n context.arc(0, 0, r1, a0, a1, !cw);\n if (r0 > epsilon) {\n context.moveTo(r0 * cos(a1), r0 * sin(a1));\n context.arc(0, 0, r0, a1, a0, cw);\n }\n }\n\n // Or is it a circular or annular sector?\n else {\n var a01 = a0,\n a11 = a1,\n a00 = a0,\n a10 = a1,\n da0 = da,\n da1 = da,\n ap = padAngle.apply(this, arguments) / 2,\n rp = (ap > epsilon) && (padRadius ? +padRadius.apply(this, arguments) : sqrt(r0 * r0 + r1 * r1)),\n rc = min(abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments)),\n rc0 = rc,\n rc1 = rc,\n t0,\n t1;\n\n // Apply padding? Note that since r1 ≥ r0, da1 ≥ da0.\n if (rp > epsilon) {\n var p0 = asin(rp / r0 * sin(ap)),\n p1 = asin(rp / r1 * sin(ap));\n if ((da0 -= p0 * 2) > epsilon) p0 *= (cw ? 1 : -1), a00 += p0, a10 -= p0;\n else da0 = 0, a00 = a10 = (a0 + a1) / 2;\n if ((da1 -= p1 * 2) > epsilon) p1 *= (cw ? 1 : -1), a01 += p1, a11 -= p1;\n else da1 = 0, a01 = a11 = (a0 + a1) / 2;\n }\n\n var x01 = r1 * cos(a01),\n y01 = r1 * sin(a01),\n x10 = r0 * cos(a10),\n y10 = r0 * sin(a10);\n\n // Apply rounded corners?\n if (rc > epsilon) {\n var x11 = r1 * cos(a11),\n y11 = r1 * sin(a11),\n x00 = r0 * cos(a00),\n y00 = r0 * sin(a00),\n oc;\n\n // Restrict the corner radius according to the sector angle. If this\n // intersection fails, it’s probably because the arc is too small, so\n // disable the corner radius entirely.\n if (da < pi) {\n if (oc = intersect(x01, y01, x00, y00, x11, y11, x10, y10)) {\n var ax = x01 - oc[0],\n ay = y01 - oc[1],\n bx = x11 - oc[0],\n by = y11 - oc[1],\n kc = 1 / sin(acos((ax * bx + ay * by) / (sqrt(ax * ax + ay * ay) * sqrt(bx * bx + by * by))) / 2),\n lc = sqrt(oc[0] * oc[0] + oc[1] * oc[1]);\n rc0 = min(rc, (r0 - lc) / (kc - 1));\n rc1 = min(rc, (r1 - lc) / (kc + 1));\n } else {\n rc0 = rc1 = 0;\n }\n }\n }\n\n // Is the sector collapsed to a line?\n if (!(da1 > epsilon)) context.moveTo(x01, y01);\n\n // Does the sector’s outer ring have rounded corners?\n else if (rc1 > epsilon) {\n t0 = cornerTangents(x00, y00, x01, y01, r1, rc1, cw);\n t1 = cornerTangents(x11, y11, x10, y10, r1, rc1, cw);\n\n context.moveTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc1 < rc) context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc1, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r1, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), !cw);\n context.arc(t1.cx, t1.cy, rc1, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the outer ring just a circular arc?\n else context.moveTo(x01, y01), context.arc(0, 0, r1, a01, a11, !cw);\n\n // Is there no inner ring, and it’s a circular sector?\n // Or perhaps it’s an annular sector collapsed due to padding?\n if (!(r0 > epsilon) || !(da0 > epsilon)) context.lineTo(x10, y10);\n\n // Does the sector’s inner ring (or point) have rounded corners?\n else if (rc0 > epsilon) {\n t0 = cornerTangents(x10, y10, x11, y11, r0, -rc0, cw);\n t1 = cornerTangents(x01, y01, x00, y00, r0, -rc0, cw);\n\n context.lineTo(t0.cx + t0.x01, t0.cy + t0.y01);\n\n // Have the corners merged?\n if (rc0 < rc) context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t1.y01, t1.x01), !cw);\n\n // Otherwise, draw the two corners and the ring.\n else {\n context.arc(t0.cx, t0.cy, rc0, atan2(t0.y01, t0.x01), atan2(t0.y11, t0.x11), !cw);\n context.arc(0, 0, r0, atan2(t0.cy + t0.y11, t0.cx + t0.x11), atan2(t1.cy + t1.y11, t1.cx + t1.x11), cw);\n context.arc(t1.cx, t1.cy, rc0, atan2(t1.y11, t1.x11), atan2(t1.y01, t1.x01), !cw);\n }\n }\n\n // Or is the inner ring just a circular arc?\n else context.arc(0, 0, r0, a10, a00, cw);\n }\n\n context.closePath();\n\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n arc.centroid = function() {\n var r = (+innerRadius.apply(this, arguments) + +outerRadius.apply(this, arguments)) / 2,\n a = (+startAngle.apply(this, arguments) + +endAngle.apply(this, arguments)) / 2 - pi / 2;\n return [cos(a) * r, sin(a) * r];\n };\n\n arc.innerRadius = function(_) {\n return arguments.length ? (innerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : innerRadius;\n };\n\n arc.outerRadius = function(_) {\n return arguments.length ? (outerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : outerRadius;\n };\n\n arc.cornerRadius = function(_) {\n return arguments.length ? (cornerRadius = typeof _ === \"function\" ? _ : constant(+_), arc) : cornerRadius;\n };\n\n arc.padRadius = function(_) {\n return arguments.length ? (padRadius = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), arc) : padRadius;\n };\n\n arc.startAngle = function(_) {\n return arguments.length ? (startAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : startAngle;\n };\n\n arc.endAngle = function(_) {\n return arguments.length ? (endAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : endAngle;\n };\n\n arc.padAngle = function(_) {\n return arguments.length ? (padAngle = typeof _ === \"function\" ? _ : constant(+_), arc) : padAngle;\n };\n\n arc.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), arc) : context;\n };\n\n return arc;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport line from \"./line.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x0, y0, y1) {\n var x1 = null,\n defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(area);\n\n x0 = typeof x0 === \"function\" ? x0 : (x0 === undefined) ? pointX : constant(+x0);\n y0 = typeof y0 === \"function\" ? y0 : (y0 === undefined) ? constant(0) : constant(+y0);\n y1 = typeof y1 === \"function\" ? y1 : (y1 === undefined) ? pointY : constant(+y1);\n\n function area(data) {\n var i,\n j,\n k,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer,\n x0z = new Array(n),\n y0z = new Array(n);\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) {\n j = i;\n output.areaStart();\n output.lineStart();\n } else {\n output.lineEnd();\n output.lineStart();\n for (k = i - 1; k >= j; --k) {\n output.point(x0z[k], y0z[k]);\n }\n output.lineEnd();\n output.areaEnd();\n }\n }\n if (defined0) {\n x0z[i] = +x0(d, i, data), y0z[i] = +y0(d, i, data);\n output.point(x1 ? +x1(d, i, data) : x0z[i], y1 ? +y1(d, i, data) : y0z[i]);\n }\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n function arealine() {\n return line().defined(defined).curve(curve).context(context);\n }\n\n area.x = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), x1 = null, area) : x0;\n };\n\n area.x0 = function(_) {\n return arguments.length ? (x0 = typeof _ === \"function\" ? _ : constant(+_), area) : x0;\n };\n\n area.x1 = function(_) {\n return arguments.length ? (x1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : x1;\n };\n\n area.y = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), y1 = null, area) : y0;\n };\n\n area.y0 = function(_) {\n return arguments.length ? (y0 = typeof _ === \"function\" ? _ : constant(+_), area) : y0;\n };\n\n area.y1 = function(_) {\n return arguments.length ? (y1 = _ == null ? null : typeof _ === \"function\" ? _ : constant(+_), area) : y1;\n };\n\n area.lineX0 =\n area.lineY0 = function() {\n return arealine().x(x0).y(y0);\n };\n\n area.lineY1 = function() {\n return arealine().x(x0).y(y1);\n };\n\n area.lineX1 = function() {\n return arealine().x(x1).y(y0);\n };\n\n area.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), area) : defined;\n };\n\n area.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), area) : curve;\n };\n\n area.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), area) : context;\n };\n\n return area;\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport area from \"./area.js\";\nimport {lineRadial} from \"./lineRadial.js\";\n\nexport default function() {\n var a = area().curve(curveRadialLinear),\n c = a.curve,\n x0 = a.lineX0,\n x1 = a.lineX1,\n y0 = a.lineY0,\n y1 = a.lineY1;\n\n a.angle = a.x, delete a.x;\n a.startAngle = a.x0, delete a.x0;\n a.endAngle = a.x1, delete a.x1;\n a.radius = a.y, delete a.y;\n a.innerRadius = a.y0, delete a.y0;\n a.outerRadius = a.y1, delete a.y1;\n a.lineStartAngle = function() { return lineRadial(x0()); }, delete a.lineX0;\n a.lineEndAngle = function() { return lineRadial(x1()); }, delete a.lineX1;\n a.lineInnerRadius = function() { return lineRadial(y0()); }, delete a.lineY0;\n a.lineOuterRadius = function() { return lineRadial(y1()); }, delete a.lineY1;\n\n a.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return a;\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","function Linear(context) {\n this._context = context;\n}\n\nLinear.prototype = {\n areaStart: function() {\n this._line = 0;\n },\n areaEnd: function() {\n this._line = NaN;\n },\n lineStart: function() {\n this._point = 0;\n },\n lineEnd: function() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n },\n point: function(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: this._point = 1; this._line ? this._context.lineTo(x, y) : this._context.moveTo(x, y); break;\n case 1: this._point = 2; // falls through\n default: this._context.lineTo(x, y); break;\n }\n }\n};\n\nexport default function(context) {\n return new Linear(context);\n}\n","import curveLinear from \"./linear.js\";\n\nexport var curveRadialLinear = curveRadial(curveLinear);\n\nfunction Radial(curve) {\n this._curve = curve;\n}\n\nRadial.prototype = {\n areaStart: function() {\n this._curve.areaStart();\n },\n areaEnd: function() {\n this._curve.areaEnd();\n },\n lineStart: function() {\n this._curve.lineStart();\n },\n lineEnd: function() {\n this._curve.lineEnd();\n },\n point: function(a, r) {\n this._curve.point(r * Math.sin(a), r * -Math.cos(a));\n }\n};\n\nexport default function curveRadial(curve) {\n\n function radial(context) {\n return new Radial(curve(context));\n }\n\n radial._curve = curve;\n\n return radial;\n}\n","import array from \"./array.js\";\nimport constant from \"./constant.js\";\nimport curveLinear from \"./curve/linear.js\";\nimport {withPath} from \"./path.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nexport default function(x, y) {\n var defined = constant(true),\n context = null,\n curve = curveLinear,\n output = null,\n path = withPath(line);\n\n x = typeof x === \"function\" ? x : (x === undefined) ? pointX : constant(x);\n y = typeof y === \"function\" ? y : (y === undefined) ? pointY : constant(y);\n\n function line(data) {\n var i,\n n = (data = array(data)).length,\n d,\n defined0 = false,\n buffer;\n\n if (context == null) output = curve(buffer = path());\n\n for (i = 0; i <= n; ++i) {\n if (!(i < n && defined(d = data[i], i, data)) === defined0) {\n if (defined0 = !defined0) output.lineStart();\n else output.lineEnd();\n }\n if (defined0) output.point(+x(d, i, data), +y(d, i, data));\n }\n\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n line.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), line) : x;\n };\n\n line.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), line) : y;\n };\n\n line.defined = function(_) {\n return arguments.length ? (defined = typeof _ === \"function\" ? _ : constant(!!_), line) : defined;\n };\n\n line.curve = function(_) {\n return arguments.length ? (curve = _, context != null && (output = curve(context)), line) : curve;\n };\n\n line.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), line) : context;\n };\n\n return line;\n}\n","import curveRadial, {curveRadialLinear} from \"./curve/radial.js\";\nimport line from \"./line.js\";\n\nexport function lineRadial(l) {\n var c = l.curve;\n\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n\n l.curve = function(_) {\n return arguments.length ? c(curveRadial(_)) : c()._curve;\n };\n\n return l;\n}\n\nexport default function() {\n return lineRadial(line().curve(curveRadialLinear));\n}\n","export const abs = Math.abs;\nexport const atan2 = Math.atan2;\nexport const cos = Math.cos;\nexport const max = Math.max;\nexport const min = Math.min;\nexport const sin = Math.sin;\nexport const sqrt = Math.sqrt;\n\nexport const epsilon = 1e-12;\nexport const pi = Math.PI;\nexport const halfPi = pi / 2;\nexport const tau = 2 * pi;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x >= 1 ? halfPi : x <= -1 ? -halfPi : Math.asin(x);\n}\n","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction append(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += arguments[i] + strings[i];\n }\n}\n\nfunction appendRound(digits) {\n let d = Math.floor(digits);\n if (!(d >= 0)) throw new Error(`invalid digits: ${digits}`);\n if (d > 15) return append;\n const k = 10 ** d;\n return function(strings) {\n this._ += strings[0];\n for (let i = 1, n = strings.length; i < n; ++i) {\n this._ += Math.round(arguments[i] * k) / k + strings[i];\n }\n };\n}\n\nexport class Path {\n constructor(digits) {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n this._append = digits == null ? append : appendRound(digits);\n }\n moveTo(x, y) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}`;\n }\n closePath() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._append`Z`;\n }\n }\n lineTo(x, y) {\n this._append`L${this._x1 = +x},${this._y1 = +y}`;\n }\n quadraticCurveTo(x1, y1, x, y) {\n this._append`Q${+x1},${+y1},${this._x1 = +x},${this._y1 = +y}`;\n }\n bezierCurveTo(x1, y1, x2, y2, x, y) {\n this._append`C${+x1},${+y1},${+x2},${+y2},${this._x1 = +x},${this._y1 = +y}`;\n }\n arcTo(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._append`M${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._append`L${this._x1 = x1},${this._y1 = y1}`;\n }\n\n // Otherwise, draw an arc!\n else {\n let x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._append`L${x1 + t01 * x01},${y1 + t01 * y01}`;\n }\n\n this._append`A${r},${r},0,0,${+(y01 * x20 > x01 * y20)},${this._x1 = x1 + t21 * x21},${this._y1 = y1 + t21 * y21}`;\n }\n }\n arc(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(`negative radius: ${r}`);\n\n let dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._append`M${x0},${y0}`;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._append`L${x0},${y0}`;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._append`A${r},${r},0,1,${cw},${x - dx},${y - dy}A${r},${r},0,1,${cw},${this._x1 = x0},${this._y1 = y0}`;\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._append`A${r},${r},0,${+(da >= pi)},${cw},${this._x1 = x + r * Math.cos(a1)},${this._y1 = y + r * Math.sin(a1)}`;\n }\n }\n rect(x, y, w, h) {\n this._append`M${this._x0 = this._x1 = +x},${this._y0 = this._y1 = +y}h${w = +w}v${+h}h${-w}Z`;\n }\n toString() {\n return this._;\n }\n}\n\nexport function path() {\n return new Path;\n}\n\n// Allow instanceof d3.path\npath.prototype = Path.prototype;\n\nexport function pathRound(digits = 3) {\n return new Path(+digits);\n}\n","import {Path} from \"d3-path\";\n\nexport function withPath(shape) {\n let digits = 3;\n\n shape.digits = function(_) {\n if (!arguments.length) return digits;\n if (_ == null) {\n digits = null;\n } else {\n const d = Math.floor(_);\n if (!(d >= 0)) throw new RangeError(`invalid digits: ${_}`);\n digits = d;\n }\n return shape;\n };\n\n return () => new Path(digits);\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n"],"names":["startOfDay","dirtyDate","requiredArgs","arguments","date","toDate","setHours","MILLISECONDS_IN_DAY","differenceInCalendarDays","dirtyDateLeft","dirtyDateRight","startOfDayLeft","startOfDayRight","timestampLeft","getTime","getTimezoneOffsetInMilliseconds","timestampRight","Math","round","module","exports","EPSILON","pow","EDGE_STACK","Uint32Array","Delaunator","coords","n","length","Error","this","maxTriangles","max","_triangles","_halfedges","Int32Array","_hashSize","ceil","sqrt","_hullPrev","_hullNext","_hullTri","_hullHash","fill","_ids","_dists","Float64Array","update","pseudoAngle","dx","dy","p","abs","dist","ax","ay","bx","by","orientIfSure","px","py","rx","ry","qx","qy","l","r","orient","inCircle","cx","cy","ex","ey","fx","fy","bp","cp","circumradius","bl","cl","d","x","y","circumcenter","quicksort","ids","dists","left","right","i","temp","tempDist","j","i$1","j$1","swap","temp$1","tempDist$1","arr","tmp","defaultGetX","defaultGetY","from","points","getX","getY","prototype","ref","hullPrev","hullNext","hullTri","hullHash","minX","Infinity","minY","maxX","maxY","i0","i1","i2","minDist","i0x","i0y","i$2","d$1","i1x","i1y","minRadius","i$3","i2x","i2y","i$4","hull","i$5","d0","id","subarray","triangles","halfedges","i$6","x$1","y$1","center","_cx","_cy","i$7","_hullStart","hullSize","_hashKey","trianglesLen","_addTriangle","k","xp","yp","i$8","x$2","y$2","start","key","e","q","t","_legalize","n$1","i$9","e$1","floor","a","ar","b","a0","b0","al","p0","pr","pl","p1","hbl","_link","br","c","factory","obj","_delaunator","require","__esModule","pointX","pointY","jitter","sin","cos","Delaunay","delaunator","inedges","_hullIndex","_init","_proto","collinear","_","sort","f","bounds","hullIndex","_e","_n","_p","_i","_n2","neighbors","results","e0","push","find","_step","dc","_iterator","_isArray","Array","isArray","_i2","Symbol","iterator","_ref","next","done","value","dt","that","array","call","flatArray","serializer","replacer","cycleReplacer","stack","keys","slice","indexOf","join","thisPos","splice","spaces","JSON","stringify","getSerialize","DataView","getNative","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","entries","index","clear","entry","set","get","has","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","Map","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","Promise","Set","setCacheAdd","setCacheHas","SetCache","values","__data__","add","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","data","size","Uint8Array","WeakMap","func","thisArg","args","apply","setter","iteratee","accumulator","predicate","resIndex","result","baseIndexOf","comparator","baseTimes","isArguments","isBuffer","isIndex","isTypedArray","hasOwnProperty","Object","inherited","isArr","isArg","isBuff","isType","skipIndexes","String","offset","baseAssignValue","eq","object","objValue","undefined","baseEach","collection","defineProperty","arrayIncludes","arrayIncludesWith","arrayMap","baseUnary","cacheHas","includes","isCommon","valuesLength","outer","computed","valuesIndex","baseForOwn","createBaseEach","fromIndex","fromRight","arrayPush","isFlattenable","baseFlatten","depth","isStrict","baseFor","createBaseFor","castPath","toKey","path","keysFunc","symbolsFunc","getRawTag","objectToString","symToStringTag","toStringTag","baseFindIndex","baseIsNaN","strictIndexOf","baseGetTag","isObjectLike","baseIsEqualDeep","baseIsEqual","other","bitmask","customizer","equalArrays","equalByTag","equalObjects","getTag","argsTag","arrayTag","objectTag","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","source","matchData","noCustomizer","srcValue","COMPARE_PARTIAL_FLAG","isFunction","isMasked","isObject","toSource","reIsHostCtor","funcProto","Function","objectProto","funcToString","toString","reIsNative","RegExp","replace","test","isLength","typedArrayTags","baseMatches","baseMatchesProperty","identity","property","isPrototype","nativeKeys","nativeKeysIn","isProto","isArrayLike","baseIsMatch","getMatchData","matchesStrictComparable","hasIn","isKey","isStrictComparable","baseGet","baseIteratee","baseMap","baseSortBy","compareMultiple","iteratees","orders","basePickBy","paths","baseSet","nativeCeil","nativeMax","end","step","overRest","setToString","assignValue","lastIndex","nested","newValue","constant","baseSetToString","string","comparer","seen","isSymbol","symbolProto","symbolToString","baseToString","trimmedEndIndex","reTrimStart","createSet","setToArray","seenIndex","props","cache","stringToPath","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","compareAscending","objCriteria","criteria","othCriteria","ordersLength","isNew","coreJsData","arrayAggregator","baseAggregator","initializer","baseRest","isIterateeCall","assigner","sources","guard","eachFunc","iterable","findIndexFunc","baseInverter","toIteratee","baseRange","toFinite","noop","arraySome","isPartial","arrLength","othLength","arrStacked","othStacked","arrValue","othValue","compared","othIndex","mapToArray","symbolValueOf","valueOf","tag","byteLength","byteOffset","buffer","name","message","convert","stacked","getAllKeys","objProps","objLength","objStacked","skipCtor","objCtor","constructor","othCtor","flatten","freeGlobal","global","baseGetAllKeys","getSymbols","getSymbolsIn","keysIn","isKeyable","map","baseIsNative","getValue","getPrototype","overArg","getPrototypeOf","nativeObjectToString","isOwn","unmasked","arrayFilter","stubArray","propertyIsEnumerable","nativeGetSymbols","getOwnPropertySymbols","symbol","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ArrayBuffer","resolve","Ctor","ctorString","hasFunc","nativeCreate","spreadableSymbol","isConcatSpreadable","reIsUint","type","reIsDeepProp","reIsPlainProp","maskSrcKey","uid","exec","IE_PROTO","assocIndexOf","pop","getMapData","forEach","memoize","freeExports","nodeType","freeModule","freeProcess","process","nodeUtil","types","binding","transform","arg","otherArgs","freeSelf","self","root","shortOut","nativeNow","Date","now","count","lastCalled","stamp","remaining","pairs","LARGE_ARRAY_SIZE","memoizeCapped","rePropName","reEscapeChar","charCodeAt","match","number","quote","subString","reWhitespace","charAt","copyObject","createAssigner","assign","toNumber","nativeMin","min","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","setTimeout","timeWaiting","remainingWait","debounced","isInvoking","leadingEdge","clearTimeout","cancel","flush","defaults","propsIndex","propsLength","baseDifference","isArrayLikeObject","difference","createFind","toInteger","pair","defaultValue","createAggregator","groupBy","baseHasIn","hasPath","isString","createInverter","invert","baseIsArguments","stubFalse","Buffer","baseIsDate","nodeIsDate","isDate","baseKeys","objectCtorString","proto","baseIsRegExp","nodeIsRegExp","isRegExp","baseIsTypedArray","nodeIsTypedArray","arrayLikeKeys","baseKeysIn","resolver","memoized","Cache","negate","pickBy","baseOrderBy","basePick","pick","flatRest","getAllKeysIn","prop","baseProperty","basePropertyDeep","range","createRange","baseSome","baseSortedUniq","debounce","INFINITY","remainder","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","isBinary","baseUniq","idCounter","prefix","baseValues","without","hasElementType","Element","hasMap","hasSet","hasArrayBuffer","isView","equal","it","flags","$$typeof","error","console","warn","getCalculatedValues","polar","defaultStyles","Helpers","style","domain","Domain","scale","Scale","horizontal","origin","Data","getDefaultMin","axis","defaultZero","Number","MAX_SAFE_INTEGER","Collection","defaultMin","datum","_y1","_y","_y0","_x1","_x","_x0","_assign","getDataWithBaseline","ownKeys","enumerableOnly","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","_objectSpread","target","_defineProperty","getOwnPropertyDescriptors","defineProperties","configurable","writable","defined","getXAccessor","getYAccessor","getY0Accessor","getAreaFunction","interpolationFunction","LineHelpers","d3Shape","curve","angle","PI","getAngleAccessor","outerRadius","innerRadius","x0","x1","y1","y0","getCartesianArea","Area","ariaLabel","desc","tabIndex","evaluateProps","_props","role","shapeRendering","className","pathComponent","events","groupComponent","clipPath","userProps","UserProps","defaultTransform","concat","renderLine","stroke","areaFunction","lineFunction","areaStroke","sharedProps","area","React","line","propTypes","CommonProps","PropTypes","interpolation","defaultProps","Path","_defineProperties","descriptor","_setPrototypeOf","o","setPrototypeOf","bind","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","ReferenceError","_assertThisInitialized","_possibleConstructorReturn","fallbackProps","width","height","padding","VictoryAreaBase","_React$Component","subClass","superClass","create","_inherits","Constructor","protoProps","staticProps","_super","instance","_classCallCheck","animate","animationWhitelist","shouldAnimate","animateComponent","children","renderContinuousData","component","standalone","renderContainer","containerComponent","label","CustomPropTypes","VictoryContainer","dataComponent","VictoryClipContainer","labelComponent","VictoryLabel","renderInPortal","samples","sortKey","sortOrder","theme","VictoryTheme","displayName","continuous","defaultTransitions","DefaultTransitions","defaultPolarTransitions","getDomain","getData","getBaseProps","modifiedProps","sharedEvents","labels","disableInlineStyles","initialChildProps","parent","all","reduce","childProps","text","LabelHelpers","_isNil","eventKey","expectedComponents","VictoryArea","addEvents","components","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","_iterableToArray","minLen","_unsupportedIterableToArray","_nonIterableSpread","len","arr2","orientationSign","top","bottom","exists","val","getStyles","styleObject","_defaults","axisLabel","grid","ticks","tickLabels","getTickProps","layout","position","x2","y2","getTickLabelProps","anchors","verticalAnchor","textAnchor","getGridProps","edge","getDefaultOrientations","originSign","sign","positive","negative","getTransform","calculatedValues","orientation","axisValue","Axis","getTickPosition","isVertical","tickStyle","labelStyle","tickSpacing","getTickTransform","tick","globalTransform","getGridEdge","getGridOffset","crossAxis","xPadding","yPadding","getLayoutProps","orientations","calculatedOrientation","orientationOffset","originOffset","originPosition","offsetX","offsetY","getHorizontalOffset","getOffset","stringTicks","labelPadding","fontSize","tickSizes","tickValues","totalPadding","minimumPadding","getStandaloneOffset","gridOffset","gridEdge","dependentAxis","generalAxisStyle","axisType","specificAxisStyle","memo","curr","getStyleObject","getLabelPadding","axisDomain","axisScale","currentAxis","getCurrentAxis","getScale","xAxisDomain","yAxisDomain","xAxisScale","yAxisScale","tickFormat","defaultOrientations","dependent","independent","getOrientation","anchor","getAnchors","otherAxis","_getLayoutProps","axisProps","getAxisProps","axisLabelProps","hPadding","vPadding","getAxisLabelProps","gridProps","dimension","tickValue","_scale$axis","_scale$axis2","_scale$axis3","styles","gridStyle","getEvaluatedStyles","tickLayout","gridLayout","VictoryAxisBase","axisComponent","getComponentProps","axisLabelComponent","_this","tickComponent","tickLabelComponent","gridComponent","shouldRender","componentProps","_componentProps$style","_componentProps$event","strokeWidth","_isEmpty","dataKeys","tickProps","BaseTickComponent","TickComponent","BaseGridComponent","GridComponent","tickLabelProps","gridAndTicks","isVictoryLabel","child","gridAndTick","childArr","labelsSumSize","sum","paddingToObject","labelSize","TextSize","letterSpacing","fontFamily","availiableLabelCount","divider","getLabelCoord","prev","VictoryAxis","renderGridAndTicks","modifiedGridAndTicks","fixLabelOverlap","renderLabel","container","onExit","duration","onEnter","categories","eventHandlers","invertAxis","stringMap","tickCount","LineSegment","getAxis","alignment","barRatio","cornerRadius","barWidth","getPath","_getBarPosition","getBarPosition","dataProps","getCornerRadius","realCornerRadius","topLeft","topRight","bottomLeft","bottomRight","_isPlainObject","updateCornerRadius","corner","fallback","getCornerRadiusFromObject","point","distance","subtract","scalarMult","scalarDivide","equals","circle","radius","hasIntersection","circle1","P0","P1","r0","r1","intersection","h","P2","P3s","Point1","Point2","solveX","solveY","getPosition","getAngle","transformAngle","mapPointsToPath","direction","topLeftPath","topRightPath","bottomLeftPath","bottomRightPath","acc","command","getVerticalBarPath","cr","getHalfPoints","side","isLeft","signL","bottomPoint","bottomMiddlePoint","topMiddlePoint","topPoint","topCenter","topCircle","bottomCenter","bottomCircle","circleIntersection","arcIntersection","newX","_newX","reverse","getVerticalBarPoints","getHorizontalBarPath","isTop","leftPoint","leftMiddlePoint","rightMiddlePoint","rightPoint","leftCenter","leftCircle","rightCenter","rightCircle","newY","_newY","topPoints","bottomPoints","getHorizontalBarPoints","getVerticalPolarBarPath","r2","currentAngle","angularRange","getAngularWidth","previousAngle","getStartAngle","lastAngle","nextAngle","getEndAngle","startAngle","endAngle","pathFunction","getPathData","rightPath","rightMoves","rightCoords","split","rightMiddle","leftPath","leftMoves","leftCoords","leftMiddle","topPath","moves","arcLength","_getPathData","leftOffset","isShort","middle","rightOffset","defaultOffset","_defaultOffset","subMoves","subCoords","m","getTopPath","bottomPath","_getPathData2","getBottomPath","move","getBarPath","getCustomBarPath","baseStyle","getStyle","defaultBarWidth","extent","bars","defaultWidth","getBarWidth","Bar","getPolarBarPath","VictoryBar","renderData","onLoad","before","after","yOffset","Background","circleComponent","rectComponent","Circle","Rect","getArcPath","closedPath","halfAngle","x3","y3","largerArcFlag1","largerArcFlag2","arcStart","arc1","arc2","arcEnd","Arc","getAxisType","typicalType","invertedType","getRadius","_Helpers$getPadding","getRange","getAxisAngle","axisAngle","tickPadding","padAngle","tickAngle","tickRadius","labelPlacement","labelAngle","textAngle","labelRadius","_props$innerRadius","_props$theme","polarAxis","polarAxisType","standardAxisType","initialTicks","_uniqBy","filterTicks","_modifiedProps$innerR","VictoryPolarAxis","circularAxisComponent","circularGridComponent","tickComponents","gridComponents","tickLabelComponents","renderAxisLine","renderGroup","renderAxis","getCalculatedProps","childComponents","styleProps","userSelect","allStrings","Wrapper","createStringMap","baseScale","getChildren","calculatedProps","getChildComponents","_calculatedProps","parentName","axisChild","getChildProps","newProps","defaultAxes","newChildComponents","axisComponents","prependDefaultAxes","VictoryChartImpl","initialProps","_Hooks$useAnimationSt","Hooks","getAnimationProps","setAnimationState","getProps","externalEventMutations","title","axes","defaultPolarAxes","newChildren","mappedChildren","background","backgroundComponent","backgroundElement","xScale","yScale","xCoordinate","yCoordinate","backgroundProps","getBackgroundWithProps","unshift","containerProps","defaultContainerProps","previousProps","VictorySharedEvents","VictoryChart","isEqual","ClipPath","clipId","_isObject","_uniqueId","_props$clipWidth","clipWidth","_props$clipHeight","clipHeight","_props$translateX","translateX","_props$translateY","translateY","clipPadding","clipComponent","renderClipComponent","groupProps","_props$clipWidth2","_props$clipHeight2","_props$translateX2","_props$translateY2","clipPathComponent","circleProps","rectProps","clipValues","translateValues","getClipValue","getTranslateValue","clipProps","renderClippedGroup","Portal","portalRegister","portalUpdate","element","forceUpdate","portalDeregister","_this2","_keys","el","viewBox","_extends","containerId","portalRef","containerRef","shouldHandleWheel","savePortalRef","portal","saveContainerRef","_isFunction","handleWheel","preventDefault","onWheel","addEventListener","removeEventListener","elementName","ouiaId","ouiaSafe","ouiaType","svgProps","portalComponent","portalZIndex","responsive","dimensions","divStyle","pointerEvents","touchAction","portalDivStyle","zIndex","svgStyle","portalSvgStyle","overflow","portalProps","preserveAspectRatio","PortalContext","getOUIAProps","getIdForElement","_this$props","contextType","TimerContext","_excluded","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","Text","rest","TSpan","getFontSize","baseSize","isNaN","Log","getSingleValue","shouldUseMultilineBackgrounds","backgroundStyle","backgroundPadding","getXCoordinate","labelSizeWidth","getYCoordinate","textHeight","_calculatedProps$orig","originalDy","getBackgroundElement","tspanValues","inline","textElements","current","previous","textSize","totalLineHeight","lineHeight","prevPadding","xOffset","childDy","capHeight","heightWithPadding","widthWithPadding","textElement","xCoord","widths","centerOffset","getInlineXOffset","yCoord","getChildBackgrounds","_calculatedProps$dx","textSizes","tspan","capHeightAdjustment","getFullBackground","getTSpanDy","previousHeight","currentHeight","previousCaps","currentCaps","calculateSpanDy","getContent","baseStyles","getSingleStyle","s","getBackgroundStyles","getBackgroundPadding","getLineHeight","fontSizes","lineHeights","allHeights","getDy","defaultAngle","baseAngle","transformPart","rotatePart","rotate","Style","currentStyle","capHeightPx","currentLineHeight","tspanComponent","textComponent","textProps","tspans","tspanProps","backgroundWithLabel","VictoryPortal","active","_len","_key","checkedContext","renderInPlace","portalKey","context","standardProps","renderPortal","vectorEffect","Line","lineComponent","colors","charcoal","grey","baseProps","colorScale","baseLabelStyles","centeredLabelStyles","grayscale","strokeLinecap","strokeLinejoin","bar","boxplot","maxLabels","median","medianLabels","minLabels","q1","q1Labels","q3","q3Labels","boxWidth","candlestick","candleColors","chart","errorbar","borderWidth","group","histogram","legend","gutter","titleOrientation","pie","scatter","tooltip","flyoutStyle","flyoutPadding","pointerLength","voronoi","flyout","blueGrey50","blueGrey300","blueGrey700","grey900","material","strokeDasharray","polarDependentAxis","opacity","linear","quadIn","quadOut","quadInOut","cubicIn","cubicOut","cubicInOut","polyIn","custom","exponent","polyOut","polyInOut","pi","halfPi","sinIn","sinOut","sinInOut","tpmt","expIn","expOut","expInOut","circleIn","circleOut","circleInOut","b1","b2","b3","b4","b5","b6","b7","b8","b9","bounceIn","bounceOut","bounceInOut","overshoot","backIn","backOut","backInOut","tau","elasticIn","asin","amplitude","period","elasticOut","elasticInOut","isInterpolatable","POSITIVE_INFINITY","NEGATIVE_INFINITY","interpolateImmediate","when","interpolateFunction","aval","bval","interpolate","interpolateObject","keyData","_orderBy","victoryInterpolator","format","interpolateString","VictoryAnimation","interpolator","queue","ease","timer","loopID","functionToBeRunEachFrame","elapsed","setState","animationInfo","progress","animating","terminating","unsubscribe","shift","traverseQueue","state","d3Ease","toNewName","easing","animationTimer","prevProps","_this$queue","stop","toUpperCase","delay","subscribe","onEnd","VictoryTransition","transitionProps","nodesShouldLoad","nodesDoneLoad","transitionTimer","nextProps","bypassAnimation","getTransitionState","resumeAnimation","parentState","oldProps","nodesWillExit","oldChildren","nextChildren","_Transitions$getIniti","Transitions","nodesWillEnter","childrenTransitions","nodesShouldEnter","getChildDomains","childDomain","childDomains","_props$animate","getDefaultClipWidth","_this$props$animate","_this3","pickProps","getTransitionProps","getTransitions","newState","getDomainFromChildren","pickDomainProps","getClipWidth","combinedProps","whitelist","propsToAnimate","_pick","datumHasXandY","defaultComponents","WrappedComponent","AddEventsMixin","_WrappedComponent","getEventState","Events","getScopedEvents","getEvents","externalMutations","getExternalMutations","calculatedState","getStateChanges","globalEvents","prevGlobalEventKeys","boundGlobalEvents","cacheValues","newMutation","applyExternalMutations","globalEventKeys","addGlobalListener","_difference","removeGlobalListener","_this4","_this5","boundListener","event","listener","window","_this6","hasEvents","getState","getSharedEventState","callbacks","mutation","callback","compiledCallbacks","componentEvents","getAllEvents","_this7","sharedParentState","baseParentProps","parentPropsList","parentControlledProps","parentProps","_this$componentEvents","baseEvents","defaultAnimationWhitelist","Comp","_this8","labelComponents","_without","labelProps","_this9","shouldRenderDatum","dataComponents","validDataComponents","_dataKey","findAxisComponents","_identity","findAxes","getAxisComponent","getAxisComponentsWithParent","findComponents","matchesType","getOrigin","getSingleOrigin","domainMin","domainMax","getOriginSign","getTickArray","ticksFromCategories","ticksFromStringMap","_values","getStringTicks","_range","tickArray","_uniq","getTicksFromFormat","newTickArray","buildTickArray","getTickFormat","defaultTickFormat","fallbackFormat","invertedStringMap","_invert","dataNames","dataTicks","getDefaultTickFormat","scaleTickFormat","tickArrayIndices","v","filteredTickFormat","stringTickArray","downsampleTicks","getTicks","filterZero","defaultTickCount","scaleTicks","filteredTicks","_includes","getDomainFromData","_props$startAngle","_props$endAngle","minDomain","maxDomain","tickStrings","defaultMax","initialDomain","inherentAxis","getAxisValue","scaleAxis","stringMapAxis","modifyProps","independentAxis","axisTheme","isNonEmptyArray","containsStrings","some","containsDates","containsOnlyStrings","every","isArrayOfArrays","removeUndefined","getMaxValue","getMinValue","_len2","_key2","domainPadding","childName","singleQuadrantDomainPadding","primitiveProps","IMMUTABLE_ITERABLE","IMMUTABLE_RECORD","IMMUTABLE_LIST","isIterable","isImmutable","isRecord","shallowToJS","isList","parseDatum","Immutable","errorX","errorY","getLength","generateDataArray","_last","sortData","dataset","order","cleanData","smallNumber","scaleType","rules","sanitize","addEventKeys","hasEventKeyAccessor","eventKeyAccessor","_property","formatDataFromDomain","defaultBaseline","minDomainX","maxDomainX","minDomainY","maxDomainY","underMin","overMax","isUnderMinX","isUnderMinY","isOverMaxX","isOverMaxY","baseline","_omitBy","_isUndefined","stringsFromAxes","getStringsFromAxes","stringsFromCategories","getStringsFromCategories","stringsFromData","isArrayOrIterable","accessor","sortedData","dataArr","getStringsFromData","formatData","expectedKeys","defaultKeys","preformattedData","_isEqual","cleanedData","fallbackValues","processedValues","processedValue","formattedDatum","getCategories","xValues","yValues","generateData","categoryStrings","isDataComponent","getRole","continuousTransitions","continuousPolarTransitions","adjacent","attr","getExtremeFromData","getExtreme","initialValue","containsDate","_flatten","current0","current1","padDomain","getMinFromProps","getMaxFromProps","formatPadding","getDomainPadding","rangeExtent","paddedRangeExtent","paddedDomainExtent","simplePadding","paddedDomain","adjust","initialPadding","adjustedDomain","finalPadding","finalDomain","getDomainFromMinMax","createDomainFunction","getDomainFromDataFunction","formatDomainFunction","formatDomain","propsDomain","getDomainFromProps","stringArray","categoryValues","categoryDomain","getSymmetricDomain","getDomainFromCategories","dom","almostZero","cleanDomain","_props$startAngle2","_props$endAngle2","axisKey","getFlatData","verySmallNumber","minVal","maxVal","getSinglePointDomain","getDomainWithZero","y0Min","maxDomainProp","minDomainProp","ensureZero","_isDate","processedData","_sortedUniq","isDomainComponent","GLOBAL_EVENT_REGEX","getEventsByTarget","selectedEvents","targetEvents","targetKeys","useKey","getSelectedEvents","allEvents","ownEvents","getSharedEvents","namespace","childType","getTargetProps","identifier","baseType","base","parseEvent","eventReturn","childNames","getMutationObject","baseState","mutationTargetProps","mutationTargetState","mutatedProps","childState","updateState","extendState","filterState","getReturnByChild","mutationKeys","getKeys","allChildNames","onEvent","evt","eventName","getCallback","callbackArray","evtObj","compileCallbacks","parseEventReturn","getPartialEvents","getExternalMutationsWithChildren","mutations","_pickBy","keyState","keyProps","getExternalMutation","targets","filterMutations","scopedMutations","targetMutations","keyMutations","currentMutation","getComponentEvents","componentName","_memo","defaultEvents","getGlobalEventNameFromKey","toLowerCase","getGlobalEvents","omitGlobalEvents","emulateReactEvent","nativeEvent","omit","originalObject","ks","newObject","getPoint","_voronoiX","_voronoiY","defaultX","defaultY","scalePoint","getPadding","paddingVal","paddingObj","isTooltip","getDefaultStyles","tooltipStyle","defaultParent","defaultLabels","defaultData","evaluateProp","evaluateStyle","degreesToRadians","degrees","radiansToDegrees","radians","_getPadding","getPolarOrigin","_getPadding2","offsetWidth","offsetHeight","getPolarRange","vertical","getCartesianRange","createAccessor","themeProps","traverseChildren","childArray","isHorizontal","defaultObject","reduceChildren","initialMemo","combine","item","names","childRole","nestedChildren","nestedChildProps","_childNames","nestedResults","_slicedToArray","_arrayWithHoles","_s","_arr","_d","err","_iterableToArrayLimit","_nonIterableRest","INITIAL_STATE","useAnimationState","initialState","_React$useState2","_setState","oldState","filteredState","getFilteredState","childComponent","isContinuous","check","_some","_nodesWillExit","usePreviousProps","defaultPadding","_Helpers$scalePoint","polarPadding","getDegrees","getPolarPadding","getLabelPlacement","defaultLabelPlacement","getText","getPolarTextAnchor","getPolarVerticalAnchor","getPolarOrientation","getPolarAngle","getTextAnchor","getVerticalAnchor","_getPosition","_getOffset","tooltipTheme","NaN","sortValues","descending","a1","arcs","da","pa","Bump","_context","areaStart","_line","areaEnd","lineStart","_point","lineEnd","closePath","lineTo","moveTo","bezierCurveTo","BumpRadial","pointRadial","p2","p3","bumpX","bumpY","bumpRadial","linkSource","linkTarget","link","output","withPath","argv","linkHorizontal","linkVertical","linkRadial","sqrt3","draw","u","arc","tan30","tan30_2","w","rect","kr","kx","ky","symbolsFill","cross","diamond","square","star","triangle","wye","symbolsStroke","plus","times","triangle2","asterisk","square2","diamond2","Basis","BasisClosed","BasisOpen","Bundle","beta","_basis","_beta","_x2","_x3","_x4","_y2","_y3","_y4","bundle","_k","Cardinal","tension","cardinal","CardinalClosed","_x5","_y5","CardinalOpen","_l01_a","epsilon","_l01_2a","_l12_a","_l12_2a","_l23_a","_l23_2a","CatmullRom","alpha","_alpha","x23","y23","catmullRom","CatmullRomClosed","CatmullRomOpen","LinearClosed","slope3","h0","h1","s0","s1","slope2","t0","t1","MonotoneX","MonotoneY","ReflectContext","monotoneX","monotoneY","Natural","controlPoints","Step","_t","stepBefore","stepAfter","series","stackValue","stackSeries","orderNone","offsetNone","oz","sz","none","yn","s2","si","sij0","s3","sk","peaks","peak","vi","vj","sums","ascending","appearance","tops","bottoms","_t0","capitalize","getInterpolationFunction","_props$openCurve","openCurve","interpolationName","toNewNameClosed","getLineFunction","makeChainable","validator","createChainable","isRequired","propName","nullConstructor","undefinedConstructor","getConstructor","getConstructorName","deprecated","propType","explanation","allOfType","validators","nonNegative","integer","greaterThanZero","homogeneousArray","comparisonConstructor","typeMismatchedValue","_find","constructorName","otherConstructorName","regExp","_isRegExp","initRange","initInterpolator","InternMap","keyof","super","_intern","intern_get","intern_set","delete","intern_delete","InternSet","_ref2","_ref3","implicit","ordinal","unknown","copy","band","bandwidth","ordinalRange","paddingInner","paddingOuter","align","rescale","sequence","rangeRound","pointish","e10","e5","e2","tickSpec","power","log10","factor","inc","tickIncrement","tickStep","bisector","compare1","compare2","delta","lo","hi","mid","zero","ascendingBisect","bisectRight","unit","normalize","bimap","d1","polymap","bisect","clamp","transformer","untransform","piecewise","input","interpolateValue","clamper","interpolateNumber","interpolateRound","prefixExponent","re","formatSpecifier","specifier","FormatSpecifier","comma","precision","trim","formatDecimalParts","toExponential","coefficient","%","toFixed","toLocaleString","g","toPrecision","formatRounded","locale","formatPrefix","prefixes","grouping","thousands","substring","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","percent","minus","nan","newFormat","formatTypes","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","out","formatTrim","precisionPrefix","precisionRound","precisionFixed","linearish","nice","prestep","maxIter","interval","transformLog","log","transformExp","exp","transformLogn","transformExpn","pow10","isFinite","reflect","loggish","logs","pows","E","log2","logp","powp","z","transformSymlog","log1p","transformSymexp","expm1","symlogish","symlog","transformPow","transformSqrt","transformSquare","powish","radial","squared","unsquare","valueof","compareDefined","compare","ascendingDefined","quickselect","sd","quantile","numbers","value0","quantileSorted","thresholds","threshold","invertExtent","quantiles","quantize","formatLocale","durationSecond","durationMinute","durationHour","durationDay","durationWeek","durationMonth","durationYear","timeInterval","floori","offseti","field","setTime","millisecond","second","getMilliseconds","getUTCSeconds","timeMinute","getSeconds","getMinutes","utcMinute","setUTCSeconds","getUTCMinutes","timeHour","getHours","utcHour","setUTCMinutes","getUTCHours","timeDay","setDate","getDate","getTimezoneOffset","utcDay","setUTCHours","setUTCDate","getUTCDate","unixDay","timeWeekday","getDay","timeSunday","timeMonday","timeTuesday","timeWednesday","timeThursday","timeFriday","timeSaturday","utcWeekday","getUTCDay","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","timeMonth","setMonth","getMonth","getFullYear","utcMonth","setUTCMonth","getUTCMonth","getUTCFullYear","timeYear","setFullYear","utcYear","setUTCFullYear","ticker","year","month","week","day","hour","minute","tickIntervals","tickInterval","utcTicks","utcTickInterval","timeTicks","timeTickInterval","localDate","H","M","S","L","utcDate","UTC","newDate","timeFormat","utcFormat","pads","numberRe","percentRe","requoteRe","pad","requote","formatRe","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","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","dISO","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYear","formatYearISO","formatFullYear","formatFullYearISO","formatZone","formatUTCDayOfMonth","formatUTCHour24","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","getUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","formatUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","dow","formatUTCWeekNumberSunday","UTCdISO","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCYearISO","formatUTCFullYear","formatUTCFullYearISO","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","calendar","formatMillisecond","formatSecond","formatMinute","formatHour","formatDay","formatWeek","formatMonth","timeWeek","timeSecond","utcTime","utcWeek","utcSecond","k10","sequential","sequentialLog","sequentialSymlog","sequentialPow","sequentialSqrt","sequentialQuantile","t2","k21","I","diverging","divergingLog","divergingSymlog","divergingPow","divergingSqrt","definition","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","days","locale_shortWeekdays","shortDays","locale_months","months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","utcFormats","parses","parseSpecifier","newParse","parse","X","utcParse","defaultLocale","supportedScaleStrings","validScale","isScaleDefined","getScaleTypeFromData","axisData","getScaleFromName","methodName","d3Scale","getBaseScale","getScaleFromProps","getScaleFromDomain","getScaleType","getType","getScaleTypeFromProps","DUCK_TYPES","method","toTransformString","more","currentObj","transforms","getColorScale","scales","qualitative","heatmap","warm","cool","red","blue","green","fonts","avg","Arial","Baskerville","Courier","cursive","fantasy","Geneva","Georgia","Helvetica","monospace","Overpass","Palatino","Seravek","serif","Tahoma","Verdana","absoluteMeasurementUnitsToPixels","mm","sm","pt","pc","in","relativeMeasurementUnitsCoef","em","coefficients","defaultStyle","_splitToLines","_getSizeWithRotate","axisSize","dependentSize","angleInRadian","_degreeToRadian","convertLengthToPixels","_length$match","attribute","_prepareParams","inputStyle","lineStyle","_approximateTextWidthInternal","_prepareParams2","fontData","fontMatch","_getFontData","cur","_approximateDimensionsInternal","total","_approximateTextHeightInternal","_getMeasurementContainer","_memoize","document","createElementNS","setAttribute","containerElement","appendChild","body","styleToKeyComponent","_measureDimensionsInternal","lines","heightAcc","params","textContent","_containerElement$get","getBoundingClientRect","innerHTML","totalText","totalStyle","_approximateTextSizeInternal","__debugForceApproximate","createElement","approximateTextSize","taskHead","taskTail","frame","timeout","pokeDelay","clockLast","clockNow","clockSkew","clock","performance","setFrame","requestAnimationFrame","clearNow","Timer","_call","_time","_next","restart","wake","timerFlush","sleep","nap","poke","clearInterval","setInterval","subscribers","activeSubscriptions","loop","startTime","subscriptionID","getDatumKey","idx","getKeyedData","keyedData","getKeyedDataDifference","hasDifference","getChildData","getInitialTransitionState","getTransition","oldChild","newChild","oldData","nextData","oldDataKeyed","nextDataKeyed","entering","exiting","getNodeTransitions","getTransitionsFromChildren","old","getTransitionPropsFactory","transitionDurations","enter","exit","load","cb","getChildOnLoad","getChildBeforeLoad","nodes","exitingNodes","getChildPropsOnExit","enteringNodes","getChildPropsOnEnter","getChildPropsBeforeEnter","getChildTransitionDuration","animationDuration","childTransitions","animation","_animation","_animation2","getInitialChildProps","USER_PROPS_SAFELIST","startsWith","exactMatch","testIfSafeProp","starterString","doesPropStartWith","isExactMatch","getSafeUserProps","propsToFilter","fromEntries","_ref4","withSafeUserProps","getDataFromChildren","someChildrenAreHistograms","allChildrenAreHistograms","childBins","bins","combinedData","xAccessor","getFormattedHistogramData","getFormattedData","addBinsToParentPropsIfHistogram","datasets","childData","_stack","_group","_groupBy","getWidth","groupLength","seriesLength","_groupComponent$0$pro","firstChild","dataLength","nestedChild","getDefaultDomainPadding","dataDomain","parentData","childScale","getChildStyle","childStyle","defaultFill","color","getColor","defaultColor","dataWidth","dataStyle","labelsStyle","getCategoryAndAxisStringsFromChildren","axisStrings","getStringsFromChildren","xStrings","yStrings","dataStrings","xName","yName","xPropCategories","yPropCategories","xCategories","yCategories","useMemoizedProps","modifiedChildren","withoutSharedEvents","setProps","getX0","totalWidth","pixelsToValue","getPolarX0","colorScaleOptions","getDataWithOffset","defaultDataset","_props2","getLabels","VictoryGroupBase","VictoryGroup","componentConfig","Curve","VictoryLineBase","VictoryLine","sharedEventsCache","prevCacheValues","childBaseProps","getBasePropsFromChildren","parentBaseProps","_baseProps","_fromPairs","alterChildren","childEvents","sharedEventsCacheValues","getCachedSharedEvents","evts","cacheSharedEvents","getNewChildren","parents","boundGetEvents","parentEvents","containerEvents","localEvents","getContainer","getFlyoutPath","pointerWidth","centerX","centerY","pointerEdge","oppositeEdge","bottomEdge","topEdge","getHorizontalPath","rightEdge","leftEdge","getVerticalPath","Flyout","VictoryTooltip","placement","getVerticalOrientations","defaultLabelStyles","baseLabelStyle","defaultFlyoutStyles","baseFlyoutStyle","_this$getStyles","getDefaultOrientation","_this$getDimensions","getDimensions","flyoutHeight","flyoutWidth","evaluatedProps","flyoutDimensions","flyoutCenter","getFlyoutCenter","getDefaultAngle","flyoutExtent","adjustments","constrainToVisibleArea","xSign","ySign","centerWithOffset","constrainTooltip","paddings","calculatedHeight","minHeight","getHeight","calculatedWidth","minWidth","_calculatedValues$dy","_calculatedValues$dx","activePoints","getLabelX","edges","gaps","flyoutComponent","pointerOrientation","getPointerOrientation","getEvaluatedProps","getFlyoutProps","getLabelProps","renderTooltip","activateData","activate","deactivate","onMouseOver","onFocus","onTouchStart","onMouseOut","onBlur","onTouchEnd","transformTarget","matrix","isNativeTouchEvent","getParentSVG","getParent","nodeName","parentNode","VoronoiHelpers","withinBounds","distanceSquared","getDatasets","addMeta","_Helpers$getPoint","voronoiX","voronoiY","voronoiDimension","blacklist","voronoiBlacklist","blacklistStr","_isString","isRegExpMatch","findPoints","withinRadius","mousePosition","getVoronoiPoints","scaledData","getActiveMutations","activateLabels","defaultTarget","getInactiveMutations","getParentMutation","parentSVG","vIndex","onActivated","onDeactivated","onMouseLeave","targetProps","_this$getParentMutati","inactiveMutations","onMouseMove","Selection","svg","locationX","locationY","location","changedTouches","isReactTouchEvent","getScreenCTM","inverse","getTransformationMatrix","clientX","clientY","_this$getParentMutati2","_inactiveMutations","_this$getVoronoiPoint","_this$getVoronoiPoint2","parentMutations","activeMutations","_throttle","_class","_base","VictoryVoronoiContainer","mouseFollowTooltips","getDimension","basePosition","themeStyles","componentStyleArray","textArray","componentStyle","styleArray","multiPoint","_points$","getDefaultLabelProps","labelPosition","getLabelPosition","getTooltip","disable","voronoiPadding","onTouchCancel","onTouchMove","extend","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","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","greenyellow","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","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatRgb","formatRgb","rgbn","Rgb","rgba","hsla","rgb_formatHex","hex","rgb_formatRgb","clampa","clampi","Hsl","hslConvert","clamph","clampt","hsl2rgb","m1","m2","basis","v0","v1","v2","v3","t3","define","channels","displayable","formatHex8","formatHsl","gamma","nogamma","exponential","rgbGamma","colorRgb","rgbSpline","spline","genericArray","nb","na","reA","reB","am","bm","bs","bi","one","numberArray","arcInnerRadius","arcOuterRadius","arcStartAngle","arcEndAngle","arcPadAngle","cornerTangents","rc","cw","x01","y01","ox","oy","x11","y11","x10","y10","x00","y00","d2","D","cx0","cy0","cx1","cy1","dx0","dy0","dx1","dy1","padRadius","a01","a11","a00","a10","da0","da1","ap","rp","rc0","rc1","oc","x32","y32","intersect","kc","acos","lc","atan2","centroid","curveLinear","defined0","x0z","y0z","arealine","lineX0","lineY0","lineY1","lineX1","curveRadialLinear","lineStartAngle","lineRadial","lineEndAngle","lineInnerRadius","lineOuterRadius","curveRadial","_curve","Linear","Radial","tauEpsilon","append","strings","digits","_append","appendRound","quadraticCurveTo","arcTo","x21","y21","l01_2","x20","y20","l21_2","l20_2","l21","l01","t01","t21","ccw","shape","RangeError"],"sourceRoot":""}